
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void write_sections(Sized_relobj_file<64,_true> * this, Layout *
   layout, uchar * pshdrs, Output_file * of, Views * pviews) */

void __thiscall
gold::Sized_relobj_file<64,_true>::write_sections
          (Sized_relobj_file<64,_true> *this,Layout *layout,uchar *pshdrs,Output_file *of,
          Views *pviews)

{
  _Rb_tree_header *p_Var1;
  _Base_ptr *pp_Var2;
  int *piVar3;
  pointer puVar4;
  byte bVar5;
  Output_section *pOVar6;
  Compressed_section_map *pCVar7;
  _Base_ptr p_Var8;
  Input_file *pIVar9;
  Relocatable_relocs *pRVar10;
  Output_data *pOVar11;
  _func_int_varargs **pp_Var12;
  _func_int_varargs *p_Var13;
  uint64_t uVar14;
  undefined **ppuVar15;
  pointer pRVar16;
  pointer pRVar17;
  undefined4 *******pppppppuVar18;
  General_options *pGVar19;
  uchar *puVar20;
  undefined4 uVar21;
  int iVar22;
  uint uVar23;
  _Base_ptr p_Var24;
  _Base_ptr p_Var25;
  int iVar26;
  uint uVar27;
  byte bVar28;
  char cVar29;
  int iVar30;
  undefined1 *puVar31;
  undefined1 *puVar32;
  undefined4 *puVar33;
  byte *pbVar34;
  byte *pbVar35;
  pointer pRVar36;
  bool bVar37;
  bool bVar38;
  bool bVar39;
  byte bVar40;
  ulong auStack_d0 [6];
  _Rb_tree_color a_Stack_b8 [2];
  uint uStack_b0;
  undefined1 auStack_ac [15];
  char local_9d;
  undefined4 ******local_9c;
  undefined4 local_98;
  uint local_94;
  undefined4 local_90;
  undefined4 ******local_8c;
  undefined4 local_88;
  undefined **local_84;
  uint local_80;
  uint local_7c;
  undefined4 ******local_78;
  Parameters **local_74;
  _Rb_tree_color local_70;
  uint local_6c;
  uint local_68;
  uint local_64;
  int local_60;
  uchar *local_5c;
  uchar *local_58;
  pointer local_54;
  _Rb_tree_color local_50;
  section_size_type len;
  Read_multiple rm;
  undefined4 ******local_34;
  uint local_30;
  undefined4 ******local_2c;
  uchar *local_28;
  
  bVar40 = 0;
  puVar33 = (undefined4 *)auStack_ac;
  local_84 = &_GLOBAL_OFFSET_TABLE_;
  rm.
  super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
  ._M_impl._M_start = (pointer)0x0;
  local_70 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_;
  rm.
  super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
  ._M_impl._M_finish = (pointer)0x0;
  rm.
  super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
  ._M_impl._M_end_of_storage = (pointer)0x0;
  local_58 = pshdrs + 0x40;
  if (_S_black < local_70) {
    local_50 = _S_black;
    local_9d = '\x01';
    local_74 = &parameters;
    do {
      while( true ) {
        local_54 = (pviews->
                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>
                   )._M_impl._M_start + local_50;
        local_54->view = (uchar *)0x0;
        pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.
                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
                 _M_impl._M_start[local_50];
        if (pOVar6 != (Output_section *)0x0) break;
LAB_00328950:
        local_50 = local_50 + _S_black;
        local_58 = local_58 + 0x40;
        if (local_50 == local_70) goto LAB_00328964;
      }
      uVar23 = *(uint *)(local_58 + 4);
      uVar23 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18;
      if (uVar23 == 8) goto LAB_00328950;
      pGVar19 = (*local_74)->options_;
      if (pGVar19 == (General_options *)0x0) {
        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;
        *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;
        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e23;
        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                            *(char **)((int)puVar33 + -8));
      }
      if (((((pGVar19->relocatable_).value == false) && ((pGVar19->emit_relocs_).value == false)) ||
          ((uVar23 != 4 && (uVar23 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {
        bVar5 = pOVar6->field_0x90;
        bVar28 = bVar5 >> 5;
        local_5c = (uchar *)(CONCAT31(local_5c._1_3_,bVar28) & 0xffffff01);
        if ((bVar28 & 1) == 0) {
          bVar28 = (pOVar6->super_Output_data).field_0x1c;
          if ((bVar28 & 4) == 0) {
            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;
            *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;
            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f19;
            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                                *(char **)((int)puVar33 + -8));
          }
          local_64 = (uint)(pOVar6->super_Output_data).offset_;
          local_60 = *(int *)((int)&(pOVar6->super_Output_data).offset_ + 4);
          if ((bVar28 & 2) == 0) goto LAB_00328e68;
          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;
          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);
        }
        else {
          local_64 = 0;
          local_60 = 0;
          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;
          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);
        }
        puVar4 = (this->super_Sized_relobj<64,_true>).section_offsets_.
                 super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                 ._M_impl._M_start + local_50;
        local_6c = (uint)*puVar4;
        local_68 = *(uint *)((int)puVar4 + 4);
        if ((local_68 & local_6c) == 0xffffffff) {
          local_88 = 0;
          local_8c = local_78;
          if (local_7c != 0) {
            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;
            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;
            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf;
            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                                *(char **)((int)puVar33 + -8));
          }
          if ((undefined4 *******)local_78 == (undefined4 *******)0x0) goto LAB_00328950;
          pppppppuVar18 = (undefined4 *******)local_78;
          if ((char)local_5c != '\0') {
            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) goto LAB_00328fac;
            local_54->view = pOVar6->postprocessing_buffer_ + local_64;
            if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;
            uVar14 = (pOVar6->super_Output_data).address_;
            *(undefined4 *)((int)&local_54->address + 4) =
                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);
            *(int *)&local_54->address = (int)uVar14;
            uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5);
            pGVar19 = (*local_74)->options_;
            goto LAB_003288fd;
          }
          if (local_60 < 0) {
LAB_00328e86:
            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;
            *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;
            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1;
            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                                *(char **)((int)puVar33 + -8));
          }
          local_6c = *(uint *)((int)&of->file_size_ + 4);
          iVar30 = local_60 + (uint)CARRY4((uint)local_78,local_64);
          uVar23 = (uint)(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)
                         );
          iVar22 = local_6c - iVar30;
          if ((SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)) != (int)(iVar22 - uVar23) < 0)
          goto LAB_00328e86;
          local_54->view = of->base_ + local_64;
          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;
          uVar21 = *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);
          *(int *)&local_54->address = (int)(pOVar6->super_Output_data).address_;
          *(undefined4 *)((int)&local_54->address + 4) = uVar21;
          *(int *)((int)&local_54->offset + 4) = local_60;
          *(uint *)&local_54->offset = local_64;
          local_54->view_size = (section_size_type)local_78;
          local_54->is_input_output_view = true;
          local_54->is_postprocessing_view = false;
        }
        else {
          uVar23 = *(uint *)(local_58 + 0x24);
          pppppppuVar18 =
               (undefined4 *******)
               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)
          ;
          if (*(int *)(local_58 + 0x20) != 0) {
            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;
            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;
            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;
            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                                *(char **)((int)puVar33 + -8));
          }
          pCVar7 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.
                   compressed_sections_;
          if (pCVar7 == (Compressed_section_map *)0x0) {
LAB_00328c60:
            local_80 = local_80 & 0xffffff00;
          }
          else {
            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;
            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;
            p_Var24 = &p_Var1->_M_header;
            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;
            do {
              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {
                pp_Var2 = &p_Var25->_M_right;
                p_Var8 = *pp_Var2;
                p_Var25 = p_Var24;
                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;
              }
              p_Var8 = p_Var25->_M_left;
              p_Var24 = p_Var25;
            } while (p_Var25->_M_left != (_Base_ptr)0x0);
LAB_003287e8:
            local_80 = (uint)p_Var1 & 0xffffff00;
            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&
               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {
              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);
              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);
            }
          }
          if (pppppppuVar18 == (undefined4 *******)0x0) goto LAB_00328950;
          local_9c = pppppppuVar18;
          local_98 = 0;
          uVar23 = local_68 + CARRY4(local_6c,(uint)pppppppuVar18);
          if (local_7c < uVar23 ||
              local_7c - uVar23 <
              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))) {
            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;
            *(undefined4 *)((int)puVar33 + -0xc) = 0x317;
            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;
            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                                *(char **)((int)puVar33 + -8));
          }
          bVar37 = CARRY4(local_64,local_6c);
          local_64 = local_64 + local_6c;
          local_60 = local_60 + local_68 + (uint)bVar37;
          if ((char)local_5c == '\0') {
            if ((local_60 < 0) ||
               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),
               iVar22 = *(int *)((int)&of->file_size_ + 4),
               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <
                              (undefined1 *)((int)pppppppuVar18 + local_64)),
               iVar30 = iVar22 - iVar26,
               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))
            {
              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;
              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;
              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;
              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                                  *(char **)((int)puVar33 + -8));
            }
            local_5c = of->base_ + local_64;
            if ((char)local_80 == '\0') goto LAB_00328869;
LAB_00328baf:
            *(undefined4 *)((int)puVar33 + -4) = 0;
            *(section_size_type **)((int)puVar33 + -8) = &len;
            *(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;
            *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;
            *(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;
            puVar20 = Object::section_contents
                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),
                                 *(section_size_type **)((int)puVar33 + -8),
                                 *(bool *)((int)puVar33 + -4));
            local_78 = *(undefined4 *******)(local_58 + 8);
            uVar23 = *(uint *)(local_58 + 0xc);
            *(uint *)((int)puVar33 + -4) =
                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |
                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;
            *(uint *)((int)puVar33 + -8) =
                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18
            ;
            *(undefined4 *)((int)puVar33 + -0xc) = 1;
            *(undefined4 *)((int)puVar33 + -0x10) = 0x40;
            *(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;
            *(uchar **)((int)puVar33 + -0x18) = local_5c;
            *(section_size_type *)((int)puVar33 + -0x1c) = len;
            *(uchar **)((int)puVar33 + -0x20) = puVar20;
            *(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;
            bVar37 = decompress_input_section
                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),
                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),
                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),
                                *(Elf_Xword *)((int)puVar33 + -8));
            puVar32 = (undefined1 *)puVar33;
            if (!bVar37) {
              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object
              ;
              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;
              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;
              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;
              p_Var13 = pp_Var12[0x10];
              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;
              (*p_Var13)();
              local_78 = local_34;
              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;
              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;
              uVar21 = gettext();
              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;
              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;
              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;
                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */
              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;
              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));
              puVar32 = (undefined1 *)((int)puVar33 + -4);
              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;
              puVar31 = (undefined1 *)((int)puVar33 + -0x14);
              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;
              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;
              operator_delete(*(void **)((int)puVar33 + -0x14));
              goto LAB_003288bb;
            }
          }
          else {
            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {
LAB_00328fac:
              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;
              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;
              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;
              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                                  *(char **)((int)puVar33 + -8));
            }
            local_5c = pOVar6->postprocessing_buffer_ + local_64;
            if ((char)local_80 != '\0') goto LAB_00328baf;
LAB_00328869:
            uVar23 = *(uint *)(local_58 + 0x18);
            uVar27 = *(uint *)(local_58 + 0x1c);
            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |
                       uVar23 << 0x18;
            local_78 = (undefined4 ******)
                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |
                       uVar27 << 0x18);
            if (rm.
                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
                ._M_impl._M_finish !=
                rm.
                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
                ._M_impl._M_start) {
              piVar3 = (int *)((int)&rm.
                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
                                     ._M_impl._M_finish[-1].file_offset + 4);
              uVar23 = (uint)(local_78 <
                             *(undefined4 ********)
                              &rm.
                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
                               ._M_impl._M_finish[-1].file_offset);
              iVar22 = local_30 - *piVar3;
              cVar29 = (char)local_80;
              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==
                  (int)(iVar22 - uVar23) < 0) {
                cVar29 = local_9d;
              }
              local_9d = cVar29;
            }
            local_2c = pppppppuVar18;
            local_28 = local_5c;
            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;
            puVar31 = (undefined1 *)((int)puVar33 + -0x10);
            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;
            local_34 = local_78;
                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */
            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;
            std::
            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
            ::emplace_back<gold::File_read::Read_multiple_entry>
                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));
LAB_003288bb:
            puVar32 = puVar31 + 0x10;
          }
LAB_003288be:
          local_54->view = local_5c;
          puVar33 = (undefined4 *)puVar32;
          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) {
LAB_00328dcc:
            ppuVar15 = local_84;
            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;
            *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;
            *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;
            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                                *(char **)((int)puVar33 + -8));
          }
          uVar27 = (uint)(pOVar6->super_Output_data).address_;
          iVar22 = *(int *)((int)&(pOVar6->super_Output_data).address_ + 4);
          pGVar19 = (*local_74)->options_;
          uVar23 = CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5);
          *(uint *)&local_54->address = uVar27 + local_6c;
          *(uint *)((int)&local_54->address + 4) = iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)
          ;
LAB_003288fd:
          local_5c = (uchar *)(uVar23 & 0xffffff01);
          *(uint *)&local_54->offset = local_64;
          *(int *)((int)&local_54->offset + 4) = local_60;
          local_54->view_size = (section_size_type)pppppppuVar18;
          local_54->is_input_output_view = (local_6c & local_68) == 0xffffffff;
          local_54->is_postprocessing_view = (bool)(char)local_5c;
          if (pGVar19 == (General_options *)0x0) {
            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;
            *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;
            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;
            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                                *(char **)((int)puVar33 + -8));
          }
        }
        bVar38 = false;
        bVar37 = (bool)(((pGVar19->relocatable_).value ^ 1U) & &DAT_00000008 < pppppppuVar18);
        bVar39 = bVar37 == false;
        if (!bVar39) {
          iVar22 = 0xc;
          pbVar34 = (byte *)pOVar6->name_;
          pbVar35 = (byte *)((int)local_84 + -0x15ffb6);
          do {
            if (iVar22 == 0) break;
            iVar22 = iVar22 + -1;
            bVar38 = *pbVar34 < *pbVar35;
            bVar39 = *pbVar34 == *pbVar35;
            pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;
            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
          } while (bVar39);
          bVar37 = false;
          bVar38 = (!bVar38 && !bVar39) == bVar38;
          if (!bVar38) {
            iVar22 = 0xc;
            pbVar34 = (byte *)pOVar6->name_;
            pbVar35 = (byte *)((int)local_84 + -0x15ffaa);
            do {
              if (iVar22 == 0) break;
              iVar22 = iVar22 + -1;
              bVar37 = *pbVar34 < *pbVar35;
              bVar38 = *pbVar34 == *pbVar35;
              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;
              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;
            } while (bVar38);
            if ((!bVar37 && !bVar38) != bVar37) {
              bVar37 = false;
              goto LAB_0032894a;
            }
          }
          *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;
          *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;
          *(Layout **)((int)puVar33 + -0x10) = layout;
                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */
          *(undefined4 *)((int)puVar33 + -0x14) = 0x328d4c;
          bVar37 = Layout::is_ctors_in_init_array
                             (*(Layout **)((int)puVar33 + -0x10),*(Relobj **)((int)puVar33 + -0xc),
                              *(uint *)((int)puVar33 + -8));
        }
LAB_0032894a:
        local_54->is_ctors_reverse_view = bVar37;
        goto LAB_00328950;
      }
      if ((this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_ <= local_50) {
        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f45;
        *(undefined4 *)((int)puVar33 + -0xc) = 0x549;
        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e5c;
        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                            *(char **)((int)puVar33 + -8));
      }
      pRVar10 = (((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->
                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_>
                )._M_impl._M_start[local_50];
      if (pRVar10 == (Relocatable_relocs *)0x0) {
        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;
        *(undefined4 *)((int)puVar33 + -0xc) = 0x2ce;
        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)((int)puVar33 + -0x14) = 0x328efb;
        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                            *(char **)((int)puVar33 + -8));
      }
      pOVar11 = pRVar10->posd_;
      if (pOVar11 == (Output_data *)0x0) {
        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;
        *(undefined4 *)((int)puVar33 + -0xc) = 0x2d0;
        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)((int)puVar33 + -0x14) = 0x328edd;
        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                            *(char **)((int)puVar33 + -8));
      }
      bVar5 = pOVar11->field_0x1c;
      if ((bVar5 & 4) == 0) {
        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;
        *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;
        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)((int)puVar33 + -0x14) = 0x328fac;
        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                            *(char **)((int)puVar33 + -8));
      }
      uVar23 = (uint)pOVar11->offset_;
      iVar22 = *(int *)((int)&pOVar11->offset_ + 4);
      *(uint *)&local_54->offset = uVar23;
      *(int *)((int)&local_54->offset + 4) = iVar22;
      if ((bVar5 & 2) == 0) {
        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;
        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;
        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f8e;
        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                            *(char **)((int)puVar33 + -8));
      }
      uVar27 = (uint)pOVar11->data_size_;
      local_54->view_size = uVar27;
      if (iVar22 < 0) {
LAB_00328f55:
        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;
        *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;
        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f70;
        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                            *(char **)((int)puVar33 + -8));
      }
      local_94 = uVar27;
      local_90 = 0;
      local_60 = iVar22 + (uint)CARRY4(uVar27,uVar23);
      local_64 = uVar27 + uVar23;
      local_6c = *(uint *)((int)&of->file_size_ + 4);
      uVar27 = (uint)((uint)of->file_size_ < uVar27 + uVar23);
      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar27)) !=
          (int)((local_6c - local_60) - uVar27) < 0) goto LAB_00328f55;
      local_54->view = of->base_ + uVar23;
      if ((bVar5 & 1) == 0) {
        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;
        *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;
        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f55;
        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                            *(char **)((int)puVar33 + -8));
      }
      uVar14 = pOVar11->address_;
      local_50 = local_50 + _S_black;
      *(undefined4 *)((int)&local_54->address + 4) = *(undefined4 *)((int)&pOVar11->address_ + 4);
      *(int *)&local_54->address = (int)uVar14;
      local_54->is_input_output_view = false;
      local_54->is_postprocessing_view = false;
      local_54->is_ctors_reverse_view = false;
      local_58 = local_58 + 0x40;
    } while (local_50 != local_70);
LAB_00328964:
    pRVar17 = rm.
              super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
              ._M_impl._M_finish;
    pRVar16 = rm.
              super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
              ._M_impl._M_start;
    if (rm.
        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
        ._M_impl._M_finish !=
        rm.
        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
        ._M_impl._M_start) {
      if (local_9d == '\0') {
        puVar33[-1] = 0;
        uVar27 = (int)pRVar17 - (int)pRVar16 >> 4;
        uVar23 = 0x1f;
        if (uVar27 != 0) {
          for (; uVar27 >> uVar23 == 0; uVar23 = uVar23 - 1) {
          }
        }
        puVar33[-2] = (0x1f - (uVar23 ^ 0x1f)) * 2;
        puVar33[-3] = pRVar17;
        puVar33[-4] = pRVar16;
        puVar33[-5] = 0x328d76;
        std::
        __introsort_loop<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>
                  ();
        if ((int)pRVar17 - (int)pRVar16 < 0x101) {
          puVar33[-2] = 0;
          puVar33[-3] = pRVar17;
          puVar33[-4] = pRVar16;
          puVar33[-5] = 0x328dc4;
          std::
          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>
                    ();
        }
        else {
          pRVar36 = pRVar16 + 0x10;
          puVar33[-2] = 0;
          puVar33[-3] = pRVar36;
          puVar33[-4] = pRVar16;
          puVar33[-5] = 0x328d93;
          std::
          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>
                    ();
          for (; pRVar17 != pRVar36; pRVar36 = pRVar36 + 1) {
            puVar33[-3] = 0;
            puVar33[-4] = pRVar36;
            puVar33[-5] = 0x328dac;
            std::
            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>
                      ();
          }
        }
      }
      pIVar9 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_;
      if (pIVar9 == (Input_file *)0x0) {
        puVar33[-1] = 0x328e61;
        Object::input_file((Object *)*puVar33);
LAB_00328e68:
        ppuVar15 = local_84;
        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;
        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;
        *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e86;
        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),
                            *(char **)((int)puVar33 + -8));
      }
      puVar33[-1] = &rm;
      puVar33[-2] = *(undefined4 *)
                     ((int)&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_ +
                     4);
      puVar33[-3] = (int)(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_;
      puVar33[-4] = &pIVar9->file_;
      puVar33[-5] = 0x3289a2;
      File_read::read_multiple
                ((File_read *)puVar33[-4],*(off_t *)(puVar33 + -3),(Read_multiple *)puVar33[-1]);
    }
    if (rm.
        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
        ._M_impl._M_start != (pointer)0x0) {
      puVar33[-4] = rm.
                    super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>
                    ._M_impl._M_start;
      puVar33[-5] = 0x3289b8;
      operator_delete((void *)puVar33[-4]);
    }
  }
  return;
}



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

void FUN_00328650(int *param_1,undefined4 param_2,int param_3,int param_4,int *param_5)

{
  uint *puVar1;
  int iVar2;
  code *pcVar3;
  undefined **ppuVar4;
  byte bVar5;
  char cVar6;
  undefined4 *****pppppuVar7;
  undefined4 uVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  int iVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  undefined1 *puVar18;
  byte *pbVar19;
  byte *pbVar20;
  int iVar21;
  bool bVar22;
  bool bVar23;
  bool bVar24;
  byte bVar25;
  uint auStack_d0 [9];
  undefined1 auStack_ac [15];
  char local_9d;
  undefined4 ****local_9c;
  undefined4 local_98;
  uint local_94;
  undefined4 local_90;
  undefined4 ****local_8c;
  undefined4 local_88;
  undefined **local_84;
  uint local_80;
  uint local_7c;
  undefined4 ****local_78;
  int *local_74;
  uint local_70;
  uint local_6c;
  uint local_68;
  uint local_64;
  uint local_60;
  uint local_5c;
  int local_58;
  uint *local_54;
  uint local_50;
  undefined4 local_44;
  int local_40;
  int local_3c;
  undefined4 local_38;
  undefined4 ****local_34;
  uint local_30;
  undefined4 ****local_2c;
  uint local_28;
  
  bVar25 = 0;
  local_84 = &__DT_PLTGOT;
  puVar18 = auStack_ac;
  local_40 = 0;
  local_70 = param_1[10];
  local_58 = param_3 + 0x40;
  local_3c = 0;
  local_38 = 0;
  if (1 < local_70) {
    local_74 = &DAT_005ea7c8;
    local_50 = 1;
    local_9d = '\x01';
    do {
      while( true ) {
        local_54 = (uint *)(local_50 * 0x1c + *param_5);
        *local_54 = 0;
        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);
        if (iVar2 != 0) break;
LAB_00328950:
        local_50 = local_50 + 1;
        local_58 = local_58 + 0x40;
        if (local_50 == local_70) goto LAB_00328964;
      }
      uVar10 = *(uint *)(local_58 + 4);
      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;
      if (uVar10 == 8) goto LAB_00328950;
      iVar9 = *(int *)(*local_74 + 8);
      if (iVar9 == 0) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;
        *(undefined4 *)(puVar18 + -0xc) = 0x5c;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;
        FUN_002446e0();
      }
      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||
          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {
        bVar5 = *(byte *)(iVar2 + 0x90);
        bVar14 = bVar5 >> 5;
        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;
        if ((bVar14 & 1) == 0) {
          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;
            *(undefined4 *)(puVar18 + -0xc) = 0xe3;
            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;
            FUN_002446e0();
          }
          local_64 = *(uint *)(iVar2 + 0x14);
          local_60 = *(uint *)(iVar2 + 0x18);
          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;
          local_78 = *(undefined4 *****)(iVar2 + 0xc);
          local_7c = *(uint *)(iVar2 + 0x10);
        }
        else {
          local_78 = *(undefined4 *****)(iVar2 + 0xc);
          local_7c = *(uint *)(iVar2 + 0x10);
          local_64 = 0;
          local_60 = 0;
        }
        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);
        local_6c = *puVar1;
        local_68 = puVar1[1];
        if ((local_68 & local_6c) == 0xffffffff) {
          local_8c = local_78;
          local_88 = 0;
          if (local_7c != 0) {
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;
            *(undefined4 *)(puVar18 + -0xc) = 0xc0;
            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;
            FUN_002446e0();
          }
          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;
          pppppuVar7 = (undefined4 *****)local_78;
          if ((char)local_5c != '\0') {
            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;
            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;
            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;
            uVar10 = *(uint *)(iVar2 + 4);
            local_54[2] = *(uint *)(iVar2 + 8);
            local_54[1] = uVar10;
            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);
            iVar9 = *(int *)(*local_74 + 8);
            goto LAB_003288fd;
          }
          if (((int)local_60 < 0) ||
             (local_6c = *(uint *)(param_4 + 0xc),
             iVar15 = local_60 + CARRY4((uint)local_78,local_64),
             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <
                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,
             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))
          {
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;
            *(undefined4 *)(puVar18 + -0xc) = 0x6f;
            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;
            FUN_002446e0();
          }
          *local_54 = local_64 + *(int *)(param_4 + 0x10);
          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;
          uVar10 = *(uint *)(iVar2 + 8);
          local_54[1] = *(uint *)(iVar2 + 4);
          local_54[2] = uVar10;
          local_54[4] = local_60;
          local_54[3] = local_64;
          local_54[5] = (uint)local_78;
          *(undefined2 *)(local_54 + 6) = 1;
        }
        else {
          uVar10 = *(uint *)(local_58 + 0x24);
          pppppuVar7 = (undefined4 *****)
                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |
                       uVar10 << 0x18);
          if (*(int *)(local_58 + 0x20) != 0) {
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;
            *(undefined4 *)(puVar18 + -0xc) = 0xc0;
            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;
            FUN_002446e0();
          }
          iVar9 = param_1[0xd];
          if (iVar9 == 0) {
LAB_00328c60:
            local_80 = local_80 & 0xffffff00;
          }
          else {
            uVar10 = iVar9 + 4;
            uVar13 = *(uint *)(iVar9 + 8);
            uVar11 = uVar10;
            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;
            do {
              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {
                puVar1 = (uint *)(uVar12 + 0xc);
                uVar13 = *puVar1;
                uVar12 = uVar11;
                if (*puVar1 == 0) goto LAB_003287e8;
              }
              uVar13 = *(uint *)(uVar12 + 8);
              uVar11 = uVar12;
            } while (*(uint *)(uVar12 + 8) != 0);
LAB_003287e8:
            local_80 = uVar10 & 0xffffff00;
            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {
              local_80 = CONCAT31((int3)(uVar10 >> 8),1);
              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);
            }
          }
          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;
          local_98 = 0;
          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);
          local_9c = pppppuVar7;
          if (local_7c < uVar10 ||
              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))
          {
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;
            *(undefined4 *)(puVar18 + -0xc) = 0x317;
            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;
            FUN_002446e0();
          }
          bVar22 = CARRY4(local_64,local_6c);
          local_64 = local_64 + local_6c;
          local_60 = local_60 + local_68 + (uint)bVar22;
          if ((char)local_5c == '\0') {
            if (((int)local_60 < 0) ||
               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),
               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <
                              (undefined1 *)((int)pppppuVar7 + local_64)),
               iVar9 = *(int *)(param_4 + 0xc) - iVar21,
               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=
               (int)(iVar9 - uVar10) < 0)) {
              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;
              *(undefined4 *)(puVar18 + -0xc) = 0x6f;
              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;
              FUN_002446e0();
            }
            local_5c = local_64 + *(int *)(param_4 + 0x10);
            if ((char)local_80 == '\0') goto LAB_00328869;
LAB_00328baf:
            *(undefined4 *)(puVar18 + -4) = 0;
            *(undefined4 **)(puVar18 + -8) = &local_44;
            *(uint *)(puVar18 + -0xc) = local_50;
            *(int **)(puVar18 + -0x10) = param_1;
            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;
            uVar8 = FUN_0028b8b0();
            local_78 = *(undefined4 *****)(local_58 + 8);
            uVar10 = *(uint *)(local_58 + 0xc);
            *(uint *)(puVar18 + -4) =
                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |
                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;
            *(uint *)(puVar18 + -8) =
                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18
            ;
            *(undefined4 *)(puVar18 + -0xc) = 1;
            *(undefined4 *)(puVar18 + -0x10) = 0x40;
            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;
            *(uint *)(puVar18 + -0x18) = local_5c;
            *(undefined4 *)(puVar18 + -0x1c) = local_44;
            *(undefined4 *)(puVar18 + -0x20) = uVar8;
            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;
            cVar6 = FUN_0036f6a0();
            puVar17 = puVar18;
            if (cVar6 == '\0') {
              iVar9 = *param_1;
              *(uint *)(puVar18 + -8) = local_50;
              *(int **)(puVar18 + -0xc) = param_1;
              *(undefined4 ******)(puVar18 + -0x10) = &local_34;
              pcVar3 = *(code **)(iVar9 + 0x40);
              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;
              (*pcVar3)();
              local_78 = local_34;
              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;
              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;
              uVar8 = gettext();
              *(undefined4 *****)(puVar18 + -0xc) = local_78;
              *(undefined4 *)(puVar18 + -0x10) = uVar8;
              *(int **)(puVar18 + -0x14) = param_1;
                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */
              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;
              FUN_0028b750();
              puVar17 = puVar18 + -4;
              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;
              puVar16 = puVar18 + -0x14;
              *(undefined4 *****)(puVar18 + -0x14) = local_34;
              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;
              FUN_003ae080();
              goto LAB_003288bb;
            }
          }
          else {
            if (*(int *)(iVar2 + 0x8c) == 0) {
LAB_00328fac:
              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;
              *(undefined4 *)(puVar18 + -0xc) = 0xe34;
              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;
              FUN_002446e0();
            }
            local_5c = *(int *)(iVar2 + 0x8c) + local_64;
            if ((char)local_80 != '\0') goto LAB_00328baf;
LAB_00328869:
            uVar10 = *(uint *)(local_58 + 0x18);
            uVar13 = *(uint *)(local_58 + 0x1c);
            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |
                       uVar10 << 0x18;
            local_78 = (undefined4 ****)
                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |
                       uVar13 << 0x18);
            cVar6 = local_9d;
            if ((local_3c != local_40) &&
               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),
               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,
               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==
               (int)(iVar9 - uVar10) < 0)) {
              cVar6 = local_9d;
            }
            local_9d = cVar6;
            local_28 = local_5c;
            *(undefined4 ******)(puVar18 + -0xc) = &local_34;
            puVar16 = puVar18 + -0x10;
            *(int **)(puVar18 + -0x10) = &local_40;
                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */
            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;
            local_34 = local_78;
            local_2c = pppppuVar7;
            FUN_00320060();
LAB_003288bb:
            puVar17 = puVar16 + 0x10;
          }
LAB_003288be:
          *local_54 = local_5c;
          puVar18 = puVar17;
          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {
LAB_00328dcc:
            ppuVar4 = local_84;
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;
            *(undefined4 *)(puVar18 + -0xc) = 0xc5;
            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;
            FUN_002446e0();
          }
          uVar13 = *(uint *)(iVar2 + 4);
          iVar21 = *(int *)(iVar2 + 8);
          iVar9 = *(int *)(*local_74 + 8);
          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);
          local_54[1] = uVar13 + local_6c;
          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);
LAB_003288fd:
          local_5c = uVar10 & 0xffffff01;
          local_54[3] = local_64;
          local_54[4] = local_60;
          local_54[5] = (uint)pppppuVar7;
          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;
          *(char *)((int)local_54 + 0x19) = (char)local_5c;
          if (iVar9 == 0) {
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;
            *(undefined4 *)(puVar18 + -0xc) = 0x5c;
            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;
            FUN_002446e0();
          }
        }
        bVar22 = false;
        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;
        bVar24 = bVar5 == 0;
        if (!bVar24) {
          iVar9 = 0xc;
          pbVar19 = *(byte **)(iVar2 + 0x20);
          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);
          do {
            if (iVar9 == 0) break;
            iVar9 = iVar9 + -1;
            bVar22 = *pbVar19 < *pbVar20;
            bVar24 = *pbVar19 == *pbVar20;
            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
          } while (bVar24);
          bVar23 = false;
          bVar22 = (!bVar22 && !bVar24) == bVar22;
          if (!bVar22) {
            iVar9 = 0xc;
            pbVar19 = *(byte **)(iVar2 + 0x20);
            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);
            do {
              if (iVar9 == 0) break;
              iVar9 = iVar9 + -1;
              bVar23 = *pbVar19 < *pbVar20;
              bVar22 = *pbVar19 == *pbVar20;
              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
            } while (bVar22);
            if ((!bVar23 && !bVar22) != bVar23) {
              bVar5 = 0;
              goto LAB_0032894a;
            }
          }
          *(uint *)(puVar18 + -8) = local_50;
          *(int **)(puVar18 + -0xc) = param_1;
          *(undefined4 *)(puVar18 + -0x10) = param_2;
                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */
          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;
          bVar5 = FUN_002790d0();
        }
LAB_0032894a:
        *(byte *)((int)local_54 + 0x1a) = bVar5;
        goto LAB_00328950;
      }
      if ((uint)param_1[10] <= local_50) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;
        *(undefined4 *)(puVar18 + -0xc) = 0x549;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;
        FUN_002446e0();
      }
      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);
      if (iVar2 == 0) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;
        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;
        FUN_002446e0();
      }
      iVar2 = *(int *)(iVar2 + 0x10);
      if (iVar2 == 0) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;
        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;
        FUN_002446e0();
      }
      bVar5 = *(byte *)(iVar2 + 0x1c);
      if ((bVar5 & 4) == 0) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;
        *(undefined4 *)(puVar18 + -0xc) = 0xe3;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;
        FUN_002446e0();
      }
      uVar10 = *(uint *)(iVar2 + 0x14);
      uVar13 = *(uint *)(iVar2 + 0x18);
      local_54[3] = uVar10;
      local_54[4] = uVar13;
      if ((bVar5 & 2) == 0) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;
        *(undefined4 *)(puVar18 + -0xc) = 0xcf;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;
        FUN_002446e0();
      }
      uVar11 = *(uint *)(iVar2 + 0xc);
      local_54[5] = uVar11;
      if ((int)uVar13 < 0) {
LAB_00328f55:
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;
        *(undefined4 *)(puVar18 + -0xc) = 0x6f;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;
        FUN_002446e0();
      }
      local_90 = 0;
      local_64 = uVar11 + uVar10;
      local_60 = uVar13 + CARRY4(uVar11,uVar10);
      local_6c = *(uint *)(param_4 + 0xc);
      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);
      local_94 = uVar11;
      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=
          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;
      *local_54 = *(int *)(param_4 + 0x10) + uVar10;
      if ((bVar5 & 1) == 0) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;
        *(undefined4 *)(puVar18 + -0xc) = 0xc5;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;
        FUN_002446e0();
      }
      uVar10 = *(uint *)(iVar2 + 4);
      local_50 = local_50 + 1;
      local_54[2] = *(uint *)(iVar2 + 8);
      local_54[1] = uVar10;
      *(undefined2 *)(local_54 + 6) = 0;
      *(undefined1 *)((int)local_54 + 0x1a) = 0;
      local_58 = local_58 + 0x40;
    } while (local_50 != local_70);
LAB_00328964:
    iVar9 = local_3c;
    iVar2 = local_40;
    if (local_3c != local_40) {
      if (local_9d == '\0') {
        *(undefined4 *)(puVar18 + -4) = 0;
        uVar13 = iVar9 - iVar2 >> 4;
        uVar10 = 0x1f;
        if (uVar13 != 0) {
          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {
          }
        }
        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;
        *(int *)(puVar18 + -0xc) = iVar9;
        *(int *)(puVar18 + -0x10) = iVar2;
        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;
        FUN_00328410();
        if (iVar9 - iVar2 < 0x101) {
          *(undefined4 *)(puVar18 + -8) = 0;
          *(int *)(puVar18 + -0xc) = iVar9;
          *(int *)(puVar18 + -0x10) = iVar2;
          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;
          FUN_003281a0();
        }
        else {
          iVar21 = iVar2 + 0x100;
          *(undefined4 *)(puVar18 + -8) = 0;
          *(int *)(puVar18 + -0xc) = iVar21;
          *(int *)(puVar18 + -0x10) = iVar2;
          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;
          FUN_003281a0();
          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {
            *(undefined4 *)(puVar18 + -0xc) = 0;
            *(int *)(puVar18 + -0x10) = iVar21;
            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;
            FUN_00328120();
          }
        }
      }
      iVar2 = param_1[7];
      if (iVar2 == 0) {
        *(undefined4 *)(puVar18 + -4) = 0x328e61;
        FUN_00317c50();
LAB_00328e68:
        ppuVar4 = local_84;
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;
        *(undefined4 *)(puVar18 + -0xc) = 0xcf;
        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;
        FUN_002446e0();
      }
      *(int **)(puVar18 + -4) = &local_40;
      *(int *)(puVar18 + -8) = param_1[9];
      *(int *)(puVar18 + -0xc) = param_1[8];
      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;
      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;
      FUN_0023d3d0();
    }
    if (local_40 != 0) {
      *(int *)(puVar18 + -0x10) = local_40;
      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;
      FUN_003ae080();
    }
  }
  return;
}


CALL 0x00074f02
ADD EAX,0x2c19ab
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x9c
MOV ESI,dword ptr [EBP + 0x8]
MOV EDI,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x80],EAX
MOV dword ptr [EBP + -0x3c],0x0
MOV ESI,dword ptr [ESI + 0x28]
ADD EDI,0x40
MOV dword ptr [EBP + -0x38],0x0
MOV dword ptr [EBP + -0x34],0x0
MOV dword ptr [EBP + -0x6c],ESI
MOV dword ptr [EBP + -0x54],EDI
CMP ESI,0x1
JBE 0x003289bb
LEA EAX,[EAX + 0x7c8]
MOV dword ptr [EBP + -0x4c],0x1
MOV byte ptr [EBP + 0xffffff67],0x1
MOV dword ptr [EBP + -0x70],EAX
MOV EDI,dword ptr [EBP + -0x4c]
MOV ESI,dword ptr [EBP + 0x18]
IMUL EAX,EDI,0x1c
ADD EAX,dword ptr [ESI]
LEA ECX,[EDI*0x4 + 0x0]
MOV dword ptr [EBP + -0x50],EAX
MOV dword ptr [EAX],0x0
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x38]
MOV ESI,dword ptr [EAX + EDI*0x4]
TEST ESI,ESI
JZ 0x00328950
MOV EAX,dword ptr [EBP + -0x54]
MOV EDX,dword ptr [EAX + 0x4]
BSWAP EDX
CMP EDX,0x8
JZ 0x00328950
MOV EAX,dword ptr [EBP + -0x70]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x00328e08
CMP byte ptr [EAX + 0x318d],0x0
JNZ 0x0032870f
CMP byte ptr [EAX + 0x3095],0x0
JZ 0x00328721
CMP EDX,0x4
JZ 0x003289c8
CMP EDX,0x9
JZ 0x003289c8
MOVZX EDX,byte ptr [ESI + 0x90]
MOV EBX,EDX
SHR BL,0x5
AND EBX,0x1
MOV byte ptr [EBP + -0x58],BL
JNZ 0x00328ad0
MOVZX EDI,byte ptr [ESI + 0x1c]
TEST EDI,0x4
JZ 0x00328efb
MOV ECX,dword ptr [ESI + 0x14]
MOV EBX,dword ptr [ESI + 0x18]
AND EDI,0x2
MOV dword ptr [EBP + -0x60],ECX
MOV dword ptr [EBP + -0x5c],EBX
JZ 0x00328e68
MOV EBX,dword ptr [ESI + 0xc]
MOV EDI,dword ptr [ESI + 0x10]
MOV dword ptr [EBP + -0x74],EBX
MOV dword ptr [EBP + -0x78],EDI
MOV EBX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EBX + 0x84]
MOV EBX,dword ptr [EBP + -0x4c]
LEA EBX,[ECX + EBX*0x8]
MOV ECX,dword ptr [EBX]
MOV EBX,dword ptr [EBX + 0x4]
MOV EDI,EBX
MOV dword ptr [EBP + -0x68],ECX
AND EDI,ECX
MOV dword ptr [EBP + -0x64],EBX
CMP EDI,-0x1
JZ 0x00328af0
MOV EBX,dword ptr [EBP + -0x54]
MOV EAX,dword ptr [EBX + 0x24]
MOV EBX,dword ptr [EBX + 0x20]
BSWAP EAX
MOV EDI,EAX
TEST EBX,EBX
JNZ 0x00328dea
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x34]
TEST EAX,EAX
JZ 0x00328c60
LEA ECX,[EAX + 0x4]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x00328c60
MOV EDX,ECX
MOVZX EBX,byte ptr [EBP + -0x58]
MOV dword ptr [EBP + -0x7c],ECX
JMP 0x003287d9
MOV EDX,EAX
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x003287e8
MOV ECX,dword ptr [EBP + -0x4c]
CMP ECX,dword ptr [EAX + 0x10]
JBE 0x003287d0
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x003287d9
MOV ECX,dword ptr [EBP + -0x7c]
MOV EAX,dword ptr [EBP + -0x4c]
MOV byte ptr [EBP + -0x58],BL
MOV byte ptr [EBP + -0x7c],0x0
CMP ECX,EDX
JZ 0x00328805
CMP EAX,dword ptr [EDX + 0x10]
JC 0x00328805
MOV byte ptr [EBP + -0x7c],0x1
MOV EDI,dword ptr [EDX + 0x14]
TEST EDI,EDI
JZ 0x00328950
MOV ECX,dword ptr [EBP + -0x68]
MOV EBX,dword ptr [EBP + -0x64]
XOR EDX,EDX
MOV dword ptr [EBP + 0xffffff68],EDI
MOV EAX,dword ptr [EBP + -0x78]
MOV dword ptr [EBP + 0xffffff6c],EDX
ADD ECX,EDI
ADC EBX,EDX
CMP dword ptr [EBP + -0x74],ECX
SBB EAX,EBX
JC 0x00328f19
MOV ECX,dword ptr [EBP + -0x68]
MOV EBX,dword ptr [EBP + -0x64]
ADD dword ptr [EBP + -0x60],ECX
ADC dword ptr [EBP + -0x5c],EBX
CMP byte ptr [EBP + -0x58],0x0
JZ 0x00328b70
MOV EAX,dword ptr [ESI + 0x8c]
TEST EAX,EAX
JZ 0x00328fac
MOVZX EBX,byte ptr [EBP + -0x7c]
ADD EAX,dword ptr [EBP + -0x60]
MOV dword ptr [EBP + -0x58],EAX
TEST BL,BL
JNZ 0x00328baf
MOV EDX,dword ptr [EBP + -0x54]
MOV ECX,dword ptr [EBP + -0x38]
MOV EAX,dword ptr [EDX + 0x18]
MOV EDX,dword ptr [EDX + 0x1c]
BSWAP EAX
BSWAP EDX
MOV dword ptr [EBP + -0x74],EDX
CMP ECX,dword ptr [EBP + -0x3c]
JZ 0x00328899
CMP EDX,dword ptr [ECX + -0x10]
MOV EDX,EAX
SBB EDX,dword ptr [ECX + -0xc]
MOVZX EDX,byte ptr [EBP + 0xffffff67]
CMOVGE EBX,EDX
MOV byte ptr [EBP + 0xffffff67],BL
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EBP + -0x58]
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x74]
MOV dword ptr [EBP + -0x28],EDI
MOV dword ptr [EBP + -0x24],EAX
LEA EAX,[EBP + -0x30]
PUSH EAX
LEA EAX,[EBP + -0x3c]
PUSH EAX
MOV dword ptr [EBP + -0x30],EBX
CALL 0x00320060
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x50]
MOV EDX,dword ptr [EBP + -0x58]
MOV dword ptr [EAX],EDX
TEST byte ptr [ESI + 0x1c],0x1
JZ 0x00328dcc
MOVZX EDX,byte ptr [ESI + 0x90]
MOV EAX,dword ptr [EBP + -0x70]
MOV ECX,dword ptr [ESI + 0x4]
MOV EBX,dword ptr [ESI + 0x8]
SHR DL,0x5
MOV EAX,dword ptr [EAX]
AND EDX,0x1
ADD ECX,dword ptr [EBP + -0x68]
ADC EBX,dword ptr [EBP + -0x64]
MOV EAX,dword ptr [EAX + 0x8]
MOV byte ptr [EBP + -0x58],DL
MOV EDX,dword ptr [EBP + -0x50]
MOV dword ptr [EDX + 0x4],ECX
MOV dword ptr [EDX + 0x8],EBX
MOV EDX,dword ptr [EBP + -0x50]
MOV ECX,dword ptr [EBP + -0x60]
MOV EBX,dword ptr [EBP + -0x5c]
MOV dword ptr [EDX + 0xc],ECX
MOV ECX,dword ptr [EBP + -0x68]
MOV dword ptr [EDX + 0x10],EBX
MOV EBX,dword ptr [EBP + -0x64]
MOV dword ptr [EDX + 0x14],EDI
MOV EDX,ECX
AND EDX,EBX
MOVZX EBX,byte ptr [EBP + -0x58]
CMP EDX,-0x1
MOV EDX,dword ptr [EBP + -0x50]
SETZ byte ptr [EDX + 0x18]
MOV byte ptr [EDX + 0x19],BL
TEST EAX,EAX
JZ 0x00328e23
MOVZX EAX,byte ptr [EAX + 0x318d]
XOR EAX,0x1
CMP EDI,0x8
SETA DL
AND AL,DL
JNZ 0x00328c70
MOV ESI,dword ptr [EBP + -0x50]
MOV byte ptr [ESI + 0x1a],AL
ADD dword ptr [EBP + -0x4c],0x1
MOV EAX,dword ptr [EBP + -0x4c]
ADD dword ptr [EBP + -0x54],0x40
CMP EAX,dword ptr [EBP + -0x6c]
JNZ 0x003286b0
MOV ESI,dword ptr [EBP + -0x38]
MOV EBX,dword ptr [EBP + -0x3c]
CMP ESI,EBX
JZ 0x003289a8
CMP byte ptr [EBP + 0xffffff67],0x0
JZ 0x00328d54
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x1c]
TEST EAX,EAX
JZ 0x00328e5c
MOV ESI,dword ptr [EBP + 0x8]
LEA EDX,[EBP + -0x3c]
ADD EAX,0x1c
MOV EBX,dword ptr [EBP + -0x80]
PUSH EDX
PUSH dword ptr [ESI + 0x24]
PUSH dword ptr [ESI + 0x20]
PUSH EAX
CALL 0x0023d3d0
MOV EBX,dword ptr [EBP + -0x3c]
ADD ESP,0x10
TEST EBX,EBX
JZ 0x003289bb
SUB ESP,0xc
PUSH EBX
MOV EBX,dword ptr [EBP + -0x80]
CALL 0x003ae080
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [EBP + -0x54]
MOV EDX,dword ptr [EDI + 0xc]
BSWAP EDX
AND EDX,0x2
JNZ 0x00328721
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EBP + -0x4c]
CMP ESI,dword ptr [EAX + 0x28]
JNC 0x00328e3e
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x44]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + ECX*0x1]
TEST EAX,EAX
JZ 0x00328edd
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JZ 0x00328ebf
MOVZX EDX,byte ptr [EAX + 0x1c]
TEST DL,0x4
JZ 0x00328f8e
MOV ESI,dword ptr [EAX + 0x14]
MOV EDI,dword ptr [EAX + 0x18]
MOV EBX,dword ptr [EBP + -0x50]
MOV dword ptr [EBX + 0xc],ESI
MOV dword ptr [EBX + 0x10],EDI
TEST DL,0x2
JZ 0x00328f70
MOV ECX,dword ptr [EAX + 0xc]
MOV EBX,dword ptr [EBP + -0x50]
MOV dword ptr [EBX + 0x14],ECX
TEST EDI,EDI
JS 0x00328f55
MOV dword ptr [EBP + 0xffffff70],ECX
MOV ECX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + 0xffffff74],0x0
MOV EBX,dword ptr [EBP + 0xffffff74]
ADD ECX,ESI
ADC EBX,EDI
MOV dword ptr [EBP + -0x60],ECX
MOV ECX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + -0x5c],EBX
MOV EBX,dword ptr [EBP + 0x14]
MOV EBX,dword ptr [EBX + 0xc]
MOV dword ptr [EBP + -0x68],EBX
MOV EBX,dword ptr [EBP + -0x60]
CMP dword ptr [ECX + 0x8],EBX
MOV EBX,dword ptr [EBP + -0x68]
SBB EBX,dword ptr [EBP + -0x5c]
JL 0x00328f55
MOV EBX,dword ptr [EBP + 0x14]
MOV ECX,dword ptr [EBX + 0x10]
ADD ECX,ESI
MOV ESI,dword ptr [EBP + -0x50]
AND EDX,0x1
MOV dword ptr [ESI],ECX
JZ 0x00328f37
MOV EDX,dword ptr [EAX + 0x8]
MOV ESI,dword ptr [EBP + -0x50]
XOR EDI,EDI
MOV EAX,dword ptr [EAX + 0x4]
ADD dword ptr [EBP + -0x4c],0x1
MOV dword ptr [ESI + 0x8],EDX
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EBP + -0x4c]
MOV word ptr [ESI + 0x18],DI
MOV byte ptr [ESI + 0x1a],0x0
ADD dword ptr [EBP + -0x54],0x40
CMP EAX,dword ptr [EBP + -0x6c]
JNZ 0x003286b0
JMP 0x00328964
MOV EBX,dword ptr [ESI + 0xc]
MOV EDI,dword ptr [ESI + 0x10]
MOV dword ptr [EBP + -0x60],0x0
MOV dword ptr [EBP + -0x5c],0x0
MOV dword ptr [EBP + -0x74],EBX
MOV dword ptr [EBP + -0x78],EDI
JMP 0x0032876a
MOV EDI,dword ptr [EBP + -0x74]
MOV EBX,dword ptr [EBP + -0x78]
MOV dword ptr [EBP + 0xffffff7c],0x0
MOV ECX,EDI
MOV dword ptr [EBP + 0xffffff78],EDI
XOR ECX,EDI
OR EBX,ECX
JNZ 0x00328ea1
TEST EDI,EDI
JZ 0x00328950
CMP byte ptr [EBP + -0x58],0x0
JZ 0x00328cb8
MOV EAX,dword ptr [ESI + 0x8c]
TEST EAX,EAX
JZ 0x00328fac
MOV EBX,dword ptr [EBP + -0x50]
ADD EAX,dword ptr [EBP + -0x60]
MOV dword ptr [EBX],EAX
TEST byte ptr [ESI + 0x1c],0x1
JZ 0x00328dcc
MOV EBX,dword ptr [ESI + 0x8]
MOV EAX,dword ptr [EBP + -0x50]
SHR DL,0x5
MOV ECX,dword ptr [ESI + 0x4]
MOV dword ptr [EAX + 0x8],EBX
MOV EBX,EDX
MOV dword ptr [EAX + 0x4],ECX
MOV EAX,dword ptr [EBP + -0x70]
AND EBX,0x1
MOV byte ptr [EBP + -0x58],BL
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
JMP 0x003288fd
MOV EBX,dword ptr [EBP + -0x5c]
MOV ECX,dword ptr [EBP + -0x60]
TEST EBX,EBX
JS 0x00328fca
MOV EAX,EDI
XOR EDX,EDX
ADD EAX,ECX
ADC EDX,EBX
MOV EBX,dword ptr [EBP + 0x14]
MOV ECX,dword ptr [EBX + 0xc]
CMP dword ptr [EBX + 0x8],EAX
SBB ECX,EDX
JL 0x00328fca
MOV EDX,dword ptr [EBP + 0x14]
MOVZX EBX,byte ptr [EBP + -0x7c]
MOV EAX,dword ptr [EBP + -0x60]
ADD EAX,dword ptr [EDX + 0x10]
MOV dword ptr [EBP + -0x58],EAX
TEST BL,BL
JZ 0x00328869
LEA EAX,[EBP + -0x40]
PUSH 0x0
MOV EBX,dword ptr [EBP + -0x80]
PUSH EAX
PUSH dword ptr [EBP + -0x4c]
PUSH dword ptr [EBP + 0x8]
CALL 0x0028b8b0
MOV ECX,dword ptr [EBP + -0x54]
ADD ESP,0x10
MOV EBX,dword ptr [ECX + 0x8]
MOV ECX,dword ptr [ECX + 0xc]
MOV EDX,ECX
MOV dword ptr [EBP + -0x74],EBX
MOV EBX,dword ptr [EBP + -0x80]
BSWAP EDX
MOV ECX,EDX
MOV EDX,dword ptr [EBP + -0x74]
BSWAP EDX
PUSH EDX
PUSH ECX
PUSH 0x1
PUSH 0x40
PUSH EDI
PUSH dword ptr [EBP + -0x58]
PUSH dword ptr [EBP + -0x40]
PUSH EAX
CALL 0x0036f6a0
ADD ESP,0x20
TEST AL,AL
JNZ 0x003288be
MOV EAX,dword ptr [EBP + 0x8]
SUB ESP,0x4
LEA EDX,[EBP + -0x30]
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EBP + -0x4c]
PUSH dword ptr [EBP + 0x8]
PUSH EDX
CALL dword ptr [EAX + 0x40]
MOV EBX,dword ptr [EBP + -0x80]
MOV EDX,dword ptr [EBP + -0x30]
LEA EAX,[EBX + 0xffea1b78]
MOV dword ptr [EBP + -0x74],EDX
PUSH EAX
CALL 0x00039440
MOV EDX,dword ptr [EBP + -0x74]
ADD ESP,0xc
MOV EBX,dword ptr [EBP + -0x80]
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0x8]
CALL 0x0028b750
MOV EAX,dword ptr [EBP + -0x30]
LEA EDX,[EBP + -0x28]
ADD ESP,0x10
CMP EAX,EDX
JZ 0x003288be
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x80]
PUSH EAX
CALL 0x003ae080
JMP 0x003288bb
MOV byte ptr [EBP + -0x7c],0x0
JMP 0x00328805
MOV EDX,dword ptr [ESI + 0x20]
MOV EBX,dword ptr [EBP + -0x80]
MOV ECX,0xc
LEA EDI,[EBX + 0xffea004a]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00328d38
MOV ECX,0xc
LEA EDI,[EBX + 0xffea0056]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00328d38
XOR EAX,EAX
JMP 0x0032894a
MOV ECX,dword ptr [EBP + -0x5c]
TEST ECX,ECX
JS 0x00328e86
MOV EDX,dword ptr [EBP + 0x14]
MOV ECX,dword ptr [EBP + 0xffffff78]
MOV EBX,dword ptr [EBP + 0xffffff7c]
ADD ECX,dword ptr [EBP + -0x60]
MOV EDX,dword ptr [EDX + 0xc]
ADC EBX,dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + -0x68],EDX
MOV EDX,dword ptr [EBP + 0x14]
CMP dword ptr [EDX + 0x8],ECX
MOV EDX,dword ptr [EBP + -0x68]
SBB EDX,EBX
JL 0x00328e86
MOV EBX,dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EBP + -0x60]
ADD EDX,dword ptr [EBX + 0x10]
MOV EBX,dword ptr [EBP + -0x50]
MOV dword ptr [EBX],EDX
TEST byte ptr [ESI + 0x1c],0x1
JZ 0x00328dcc
MOV ECX,dword ptr [ESI + 0x4]
MOV EBX,dword ptr [ESI + 0x8]
MOV EDX,dword ptr [EBP + -0x50]
MOV dword ptr [EDX + 0x4],ECX
MOV ECX,dword ptr [EBP + -0x5c]
MOV dword ptr [EDX + 0x8],EBX
MOV EBX,EDX
MOV EDX,dword ptr [EBP + -0x60]
MOV dword ptr [EBX + 0x10],ECX
MOV dword ptr [EBX + 0xc],EDX
MOV EDX,0x1
MOV dword ptr [EBX + 0x14],EDI
MOV word ptr [EBX + 0x18],DX
JMP 0x00328932
SUB ESP,0x4
PUSH dword ptr [EBP + -0x4c]
MOV EBX,dword ptr [EBP + -0x80]
PUSH dword ptr [EBP + 0x8]
PUSH dword ptr [EBP + 0xc]
CALL 0x002790d0
ADD ESP,0x10
JMP 0x0032894a
MOV EDI,ESI
MOV EAX,0x1f
PUSH 0x0
SUB EDI,EBX
MOV EDX,EDI
SAR EDX,0x4
BSR EDX,EDX
XOR EDX,0x1f
SUB EAX,EDX
ADD EAX,EAX
PUSH EAX
PUSH ESI
PUSH EBX
CALL 0x00328410
ADD ESP,0x10
CMP EDI,0x100
JLE 0x00328db8
SUB ESP,0x4
LEA EDI,[EBX + 0x100]
PUSH 0x0
PUSH EDI
PUSH EBX
CALL 0x003281a0
ADD ESP,0x10
CMP ESI,EDI
JZ 0x0032897b
SUB ESP,0x8
PUSH 0x0
PUSH EDI
ADD EDI,0x10
CALL 0x00328120
ADD ESP,0x10
CMP ESI,EDI
JNZ 0x00328d9e
JMP 0x0032897b
SUB ESP,0x4
PUSH 0x0
PUSH ESI
PUSH EBX
CALL 0x003281a0
ADD ESP,0x10
JMP 0x0032897b
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac1d4]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0xc5
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac1a4]
PUSH EAX
LEA EAX,[EBX + 0xffe634b4]
PUSH 0xc0
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac3f8]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac3f8]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac2ec]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x549
PUSH EAX
CALL 0x002446e0
CALL 0x00317c50
LEA ESI,[ESI]
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac214]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0xcf
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac1dc]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0x6f
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac1a4]
PUSH EAX
LEA EAX,[EBX + 0xffe634b4]
PUSH 0xc0
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac194]
PUSH EAX
LEA EAX,[EBX + 0xffeab827]
PUSH 0x2d0
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac194]
PUSH EAX
LEA EAX,[EBX + 0xffeab827]
PUSH 0x2ce
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac220]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0xe3
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac194]
PUSH EAX
LEA EAX,[EBX + 0xffeab827]
PUSH 0x317
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac1d4]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0xc5
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac1dc]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0x6f
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac214]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0xcf
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac220]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0xe3
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac1ec]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0xe34
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x80]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeac1dc]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0x6f
PUSH EAX
CALL 0x002446e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_00328650(int *param_1,undefined4 param_2,int param_3,int param_4,int *param_5)\n\n{\n  uint *puVar1;\n  int iVar2;\n  code *pcVar3;\n  undefined **ppuVar4;\n  byte bVar5;\n  char cVar6;\n  undefined4 *****pppppuVar7;\n  undefined4 uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  byte bVar14;\n  int iVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint auStack_d0 [9];\n  undefined1 auStack_ac [15];\n  char local_9d;\n  undefined4 ****local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined4 local_90;\n  undefined4 ****local_8c;\n  undefined4 local_88;\n  undefined **local_84;\n  uint local_80;\n  uint local_7c;\n  undefined4 ****local_78;\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  uint local_5c;\n  int local_58;\n  uint *local_54;\n  uint local_50;\n  undefined4 local_44;\n  int local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 ****local_34;\n  uint local_30;\n  undefined4 ****local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_84 = &__DT_PLTGOT;\n  puVar18 = auStack_ac;\n  local_40 = 0;\n  local_70 = param_1[10];\n  local_58 = param_3 + 0x40;\n  local_3c = 0;\n  local_38 = 0;\n  if (1 < local_70) {\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00328650(int *param_1,undefined4 param_2,int param_3,int param_4,int *param_5)\n\n{\n  uint *puVar1;\n  int iVar2;\n  code *pcVar3;\n  undefined **ppuVar4;\n  byte bVar5;\n  char cVar6;\n  undefined4 *****pppppuVar7;\n  undefined4 uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  byte bVar14;\n  int iVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint auStack_d0 [9];\n  undefined1 auStack_ac [15];\n  char local_9d;\n  undefined4 ****local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined4 local_90;\n  undefined4 ****local_8c;\n  undefined4 local_88;\n  undefined **local_84;\n  uint local_80;\n  uint local_7c;\n  undefined4 ****local_78;\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  uint local_5c;\n  int local_58;\n  uint *local_54;\n  uint local_50;\n  undefined4 local_44;\n  int local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 ****local_34;\n  uint local_30;\n  undefined4 ****local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_84 = &__DT_PLTGOT;\n  puVar18 = auStack_ac;\n  local_40 = 0;\n  local_70 = param_1[10];\n  local_58 = param_3 + 0x40;\n  local_3c = 0;\n  local_38 = 0;\n  if (1 < local_70) {\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00328650(int *param_1,undefined4 param_2,int param_3,int param_4,int *param_5)" identifier (parameter_list "(int *param_1,undefined4 param_2,int param_3,int param_4,int *param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * 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 "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  int iVar2;\n  code *pcVar3;\n  undefined **ppuVar4;\n  byte bVar5;\n  char cVar6;\n  undefined4 *****pppppuVar7;\n  undefined4 uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  byte bVar14;\n  int iVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint auStack_d0 [9];\n  undefined1 auStack_ac [15];\n  char local_9d;\n  undefined4 ****local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined4 local_90;\n  undefined4 ****local_8c;\n  undefined4 local_88;\n  undefined **local_84;\n  uint local_80;\n  uint local_7c;\n  undefined4 ****local_78;\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  uint local_5c;\n  int local_58;\n  uint *local_54;\n  uint local_50;\n  undefined4 local_44;\n  int local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 ****local_34;\n  uint local_30;\n  undefined4 ****local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_84 = &__DT_PLTGOT;\n  puVar18 = auStack_ac;\n  local_40 = 0;\n  local_70 = param_1[10];\n  local_58 = param_3 + 0x40;\n  local_3c = 0;\n  local_38 = 0;\n  if (1 < local_70) {\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined **ppuVar4;" type_identifier (pointer_declarator "**ppuVar4" * (pointer_declarator "*ppuVar4" * identifier)) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined4 *****pppppuVar7;" type_identifier (pointer_declarator "*****pppppuVar7" * (pointer_declarator "****pppppuVar7" * (pointer_declarator "***pppppuVar7" * (pointer_declarator "**pppppuVar7" * (pointer_declarator "*pppppuVar7" * identifier))))) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "uint auStack_d0 [9];" type_identifier (array_declarator "auStack_d0 [9]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_ac [15];" type_identifier (array_declarator "auStack_ac [15]" identifier [ number_literal ]) ;) (declaration "char local_9d;" primitive_type identifier ;) (declaration "undefined4 ****local_9c;" type_identifier (pointer_declarator "****local_9c" * (pointer_declarator "***local_9c" * (pointer_declarator "**local_9c" * (pointer_declarator "*local_9c" * identifier)))) ;) (declaration "undefined4 local_98;" type_identifier identifier ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "undefined4 ****local_8c;" type_identifier (pointer_declarator "****local_8c" * (pointer_declarator "***local_8c" * (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)))) ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "undefined **local_84;" type_identifier (pointer_declarator "**local_84" * (pointer_declarator "*local_84" * identifier)) ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "uint local_7c;" type_identifier identifier ;) (declaration "undefined4 ****local_78;" type_identifier (pointer_declarator "****local_78" * (pointer_declarator "***local_78" * (pointer_declarator "**local_78" * (pointer_declarator "*local_78" * identifier)))) ;) (declaration "int *local_74;" primitive_type (pointer_declarator "*local_74" * identifier) ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint local_60;" type_identifier identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "uint *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 ****local_34;" type_identifier (pointer_declarator "****local_34" * (pointer_declarator "***local_34" * (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)))) ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "undefined4 ****local_2c;" type_identifier (pointer_declarator "****local_2c" * (pointer_declarator "***local_2c" * (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)))) ;) (declaration "uint local_28;" type_identifier identifier ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "local_84 = &__DT_PLTGOT;" (assignment_expression "local_84 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "puVar18 = auStack_ac;" (assignment_expression "puVar18 = auStack_ac" identifier = identifier) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_70 = param_1[10];" (assignment_expression "local_70 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "local_58 = param_3 + 0x40;" (assignment_expression "local_58 = param_3 + 0x40" identifier = (binary_expression "param_3 + 0x40" identifier + number_literal)) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (if_statement "if (1 < local_70) {\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }" if (parenthesized_expression "(1 < local_70)" ( (binary_expression "1 < local_70" number_literal < identifier) )) (compound_statement "{\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }" { (expression_statement "local_74 = &DAT_005ea7c8;" (assignment_expression "local_74 = &DAT_005ea7c8" identifier = (pointer_expression "&DAT_005ea7c8" & identifier)) ;) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_9d = '\x01';" (assignment_expression "local_9d = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (do_statement "do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);" do (compound_statement "{\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    }" { (while_statement "while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }" { (expression_statement "local_54 = (uint *)(local_50 * 0x1c + *param_5);" (assignment_expression "local_54 = (uint *)(local_50 * 0x1c + *param_5)" identifier = (cast_expression "(uint *)(local_50 * 0x1c + *param_5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 * 0x1c + *param_5)" ( (binary_expression "local_50 * 0x1c + *param_5" (binary_expression "local_50 * 0x1c" identifier * number_literal) + (pointer_expression "*param_5" * identifier)) )))) ;) (expression_statement "*local_54 = 0;" (assignment_expression "*local_54 = 0" (pointer_expression "*local_54" * identifier) = number_literal) ;) (expression_statement "iVar2 = *(int *)(param_1[0xe] + local_50 * 4);" (assignment_expression "iVar2 = *(int *)(param_1[0xe] + local_50 * 4)" identifier = (pointer_expression "*(int *)(param_1[0xe] + local_50 * 4)" * (cast_expression "(int *)(param_1[0xe] + local_50 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xe] + local_50 * 4)" ( (binary_expression "param_1[0xe] + local_50 * 4" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) + (binary_expression "local_50 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar2 != 0) break;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00328950:\n        local_50 = local_50 + 1;" statement_identifier : (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;)) (expression_statement "local_58 = local_58 + 0x40;" (assignment_expression "local_58 = local_58 + 0x40" identifier = (binary_expression "local_58 + 0x40" identifier + number_literal)) ;) (if_statement "if (local_50 == local_70) goto LAB_00328964;" if (parenthesized_expression "(local_50 == local_70)" ( (binary_expression "local_50 == local_70" identifier == identifier) )) (goto_statement "goto LAB_00328964;" goto statement_identifier ;)) })) (expression_statement "uVar10 = *(uint *)(local_58 + 4);" (assignment_expression "uVar10 = *(uint *)(local_58 + 4)" identifier = (pointer_expression "*(uint *)(local_58 + 4)" * (cast_expression "(uint *)(local_58 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 4)" ( (binary_expression "local_58 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;" (assignment_expression "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" identifier = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar10 == 8) goto LAB_00328950;" if (parenthesized_expression "(uVar10 == 8)" ( (binary_expression "uVar10 == 8" identifier == number_literal) )) (goto_statement "goto LAB_00328950;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(*local_74 + 8);" (assignment_expression "iVar9 = *(int *)(*local_74 + 8)" identifier = (pointer_expression "*(int *)(*local_74 + 8)" * (cast_expression "(int *)(*local_74 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_74 + 8)" ( (binary_expression "*local_74 + 8" (pointer_expression "*local_74" * identifier) + number_literal) ))))) ;) (if_statement "if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f02" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f02" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x1a1d93" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e23;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e23" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }" if (parenthesized_expression "((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0))" ( (binary_expression "(((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)" (parenthesized_expression "(((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9))))" ( (binary_expression "((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))" (parenthesized_expression "((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0'))" ( (binary_expression "(*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')" (parenthesized_expression "(*(char *)(iVar9 + 0x318d) == '\0')" ( (binary_expression "*(char *)(iVar9 + 0x318d) == '\0'" (pointer_expression "*(char *)(iVar9 + 0x318d)" * (cast_expression "(char *)(iVar9 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x318d)" ( (binary_expression "iVar9 + 0x318d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar9 + 0x3095) == '\0')" ( (binary_expression "*(char *)(iVar9 + 0x3095) == '\0'" (pointer_expression "*(char *)(iVar9 + 0x3095)" * (cast_expression "(char *)(iVar9 + 0x3095)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x3095)" ( (binary_expression "iVar9 + 0x3095" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "((uVar10 != 4 && (uVar10 != 9)))" ( (parenthesized_expression "(uVar10 != 4 && (uVar10 != 9))" ( (binary_expression "uVar10 != 4 && (uVar10 != 9)" (binary_expression "uVar10 != 4" identifier != number_literal) && (parenthesized_expression "(uVar10 != 9)" ( (binary_expression "uVar10 != 9" identifier != number_literal) ))) )) ))) )) || (parenthesized_expression "((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)" ( (binary_expression "(*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0" (parenthesized_expression "(*(uint *)(local_58 + 0xc) >> 0x18 & 2)" ( (binary_expression "*(uint *)(local_58 + 0xc) >> 0x18 & 2" (binary_expression "*(uint *)(local_58 + 0xc) >> 0x18" (pointer_expression "*(uint *)(local_58 + 0xc)" * (cast_expression "(uint *)(local_58 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0xc)" ( (binary_expression "local_58 + 0xc" identifier + number_literal) )))) >> number_literal) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }" { (expression_statement "bVar5 = *(byte *)(iVar2 + 0x90);" (assignment_expression "bVar5 = *(byte *)(iVar2 + 0x90)" identifier = (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "bVar14 = bVar5 >> 5;" (assignment_expression "bVar14 = bVar5 >> 5" identifier = (binary_expression "bVar5 >> 5" identifier >> number_literal)) ;) (expression_statement "local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;" (assignment_expression "local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01" identifier = (binary_expression "CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01" (call_expression "CONCAT31(local_5c._1_3_,bVar14)" identifier (argument_list "(local_5c._1_3_,bVar14)" ( (field_expression "local_5c._1_3_" identifier . field_identifier) , identifier ))) & number_literal)) ;) (if_statement "if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }" if (parenthesized_expression "((bVar14 & 1) == 0)" ( (binary_expression "(bVar14 & 1) == 0" (parenthesized_expression "(bVar14 & 1)" ( (binary_expression "bVar14 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }" { (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 4)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 4" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f78" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f78" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xe3;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xe3" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f19;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f19" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_64 = *(uint *)(iVar2 + 0x14);" (assignment_expression "local_64 = *(uint *)(iVar2 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x14)" * (cast_expression "(uint *)(iVar2 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_60 = *(uint *)(iVar2 + 0x18);" (assignment_expression "local_60 = *(uint *)(iVar2 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x18)" * (cast_expression "(uint *)(iVar2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 2)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00328e68;" goto statement_identifier ;)) (expression_statement "local_78 = *(undefined4 *****)(iVar2 + 0xc);" (assignment_expression "local_78 = *(undefined4 *****)(iVar2 + 0xc)" identifier = (pointer_expression "*(undefined4 *****)(iVar2 + 0xc)" * (cast_expression "(undefined4 *****)(iVar2 + 0xc)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_7c = *(uint *)(iVar2 + 0x10);" (assignment_expression "local_7c = *(uint *)(iVar2 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x10)" * (cast_expression "(uint *)(iVar2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }" else (compound_statement "{\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }" { (expression_statement "local_78 = *(undefined4 *****)(iVar2 + 0xc);" (assignment_expression "local_78 = *(undefined4 *****)(iVar2 + 0xc)" identifier = (pointer_expression "*(undefined4 *****)(iVar2 + 0xc)" * (cast_expression "(undefined4 *****)(iVar2 + 0xc)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_7c = *(uint *)(iVar2 + 0x10);" (assignment_expression "local_7c = *(uint *)(iVar2 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x10)" * (cast_expression "(uint *)(iVar2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) }))) (expression_statement "puVar1 = (uint *)(param_1[0x21] + local_50 * 8);" (assignment_expression "puVar1 = (uint *)(param_1[0x21] + local_50 * 8)" identifier = (cast_expression "(uint *)(param_1[0x21] + local_50 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x21] + local_50 * 8)" ( (binary_expression "param_1[0x21] + local_50 * 8" (subscript_expression "param_1[0x21]" identifier [ number_literal ]) + (binary_expression "local_50 * 8" identifier * number_literal)) )))) ;) (expression_statement "local_6c = *puVar1;" (assignment_expression "local_6c = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "local_68 = puVar1[1];" (assignment_expression "local_68 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (if_statement "if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }" if (parenthesized_expression "((local_68 & local_6c) == 0xffffffff)" ( (binary_expression "(local_68 & local_6c) == 0xffffffff" (parenthesized_expression "(local_68 & local_6c)" ( (binary_expression "local_68 & local_6c" identifier & identifier) )) == number_literal) )) (compound_statement "{\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }" { (expression_statement "local_8c = local_78;" (assignment_expression "local_8c = local_78" identifier = identifier) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (if_statement "if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(local_7c != 0)" ( (binary_expression "local_7c != 0" identifier != number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f97" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f97" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;" (assignment_expression "*(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3" (pointer_expression "*(undefined ***)(puVar18 + -0x10)" * (cast_expression "(undefined ***)(puVar18 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "local_84 + -0x672d3" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328ebf;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328ebf" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;" if (parenthesized_expression "((undefined4 *****)local_78 == (undefined4 *****)0x0)" ( (binary_expression "(undefined4 *****)local_78 == (undefined4 *****)0x0" (cast_expression "(undefined4 *****)local_78" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_00328950;" goto statement_identifier ;)) (expression_statement "pppppuVar7 = (undefined4 *****)local_78;" (assignment_expression "pppppuVar7 = (undefined4 *****)local_78" identifier = (cast_expression "(undefined4 *****)local_78" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }" if (parenthesized_expression "((char)local_5c != '\0')" ( (binary_expression "(char)local_5c != '\0'" (cast_expression "(char)local_5c" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }" { (if_statement "if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;" if (parenthesized_expression "(*(int *)(iVar2 + 0x8c) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x8c) == 0" (pointer_expression "*(int *)(iVar2 + 0x8c)" * (cast_expression "(int *)(iVar2 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x8c)" ( (binary_expression "iVar2 + 0x8c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00328fac;" goto statement_identifier ;)) (expression_statement "*local_54 = *(int *)(iVar2 + 0x8c) + local_64;" (assignment_expression "*local_54 = *(int *)(iVar2 + 0x8c) + local_64" (pointer_expression "*local_54" * identifier) = (binary_expression "*(int *)(iVar2 + 0x8c) + local_64" (pointer_expression "*(int *)(iVar2 + 0x8c)" * (cast_expression "(int *)(iVar2 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x8c)" ( (binary_expression "iVar2 + 0x8c" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00328dcc;" goto statement_identifier ;)) (expression_statement "uVar10 = *(uint *)(iVar2 + 4);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 4)" identifier = (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_54[2] = *(uint *)(iVar2 + 8);" (assignment_expression "local_54[2] = *(uint *)(iVar2 + 8)" (subscript_expression "local_54[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_54[1] = uVar10;" (assignment_expression "local_54[1] = uVar10" (subscript_expression "local_54[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);" (assignment_expression "uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5)" identifier = (call_expression "CONCAT31(local_5c._1_3_,bVar5 >> 5)" identifier (argument_list "(local_5c._1_3_,bVar5 >> 5)" ( (field_expression "local_5c._1_3_" identifier . field_identifier) , (binary_expression "bVar5 >> 5" identifier >> number_literal) )))) ;) (expression_statement "iVar9 = *(int *)(*local_74 + 8);" (assignment_expression "iVar9 = *(int *)(*local_74 + 8)" identifier = (pointer_expression "*(int *)(*local_74 + 8)" * (cast_expression "(int *)(*local_74 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_74 + 8)" ( (binary_expression "*local_74 + 8" (pointer_expression "*local_74" * identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_003288fd;" goto statement_identifier ;) })) (if_statement "if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))" ( (binary_expression "((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0)" (parenthesized_expression "((int)local_60 < 0)" ( (binary_expression "(int)local_60 < 0" (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0)" ( (comma_expression "local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (assignment_expression "local_6c = *(uint *)(param_4 + 0xc)" identifier = (pointer_expression "*(uint *)(param_4 + 0xc)" * (cast_expression "(uint *)(param_4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) ))))) , (comma_expression "iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (assignment_expression "iVar15 = local_60 + CARRY4((uint)local_78,local_64)" identifier = (binary_expression "local_60 + CARRY4((uint)local_78,local_64)" identifier + (call_expression "CARRY4((uint)local_78,local_64)" identifier (argument_list "((uint)local_78,local_64)" ( (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))))) , (comma_expression "uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (assignment_expression "uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64))" identifier = (call_expression "(uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64))" ( (binary_expression "*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)" (pointer_expression "*(undefined1 **)(param_4 + 8)" * (cast_expression "(undefined1 **)(param_4 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) < (cast_expression "(undefined1 *)((int)local_78 + local_64)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + local_64)" ( (binary_expression "(int)local_78 + local_64" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) )))) , (comma_expression "iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (assignment_expression "iVar21 = local_6c - iVar15" identifier = (binary_expression "local_6c - iVar15" identifier - identifier)) , (binary_expression "(SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (parenthesized_expression "(SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10))" ( (binary_expression "SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)" (call_expression "SBORROW4(local_6c,iVar15)" identifier (argument_list "(local_6c,iVar15)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar21,uVar10)" identifier (argument_list "(iVar21,uVar10)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar21 - uVar10) < 0" (cast_expression "(int)(iVar21 - uVar10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar21 - uVar10)" ( (binary_expression "iVar21 - uVar10" identifier - identifier) ))) < number_literal)))))) ))) )) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f89" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x6f;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x6f" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328ea1;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328ea1" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*local_54 = local_64 + *(int *)(param_4 + 0x10);" (assignment_expression "*local_54 = local_64 + *(int *)(param_4 + 0x10)" (pointer_expression "*local_54" * identifier) = (binary_expression "local_64 + *(int *)(param_4 + 0x10)" identifier + (pointer_expression "*(int *)(param_4 + 0x10)" * (cast_expression "(int *)(param_4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))))) ;) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00328dcc;" goto statement_identifier ;)) (expression_statement "uVar10 = *(uint *)(iVar2 + 8);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 8)" identifier = (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_54[1] = *(uint *)(iVar2 + 4);" (assignment_expression "local_54[1] = *(uint *)(iVar2 + 4)" (subscript_expression "local_54[1]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_54[2] = uVar10;" (assignment_expression "local_54[2] = uVar10" (subscript_expression "local_54[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_54[4] = local_60;" (assignment_expression "local_54[4] = local_60" (subscript_expression "local_54[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_54[3] = local_64;" (assignment_expression "local_54[3] = local_64" (subscript_expression "local_54[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_54[5] = (uint)local_78;" (assignment_expression "local_54[5] = (uint)local_78" (subscript_expression "local_54[5]" identifier [ number_literal ]) = (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined2 *)(local_54 + 6) = 1;" (assignment_expression "*(undefined2 *)(local_54 + 6) = 1" (pointer_expression "*(undefined2 *)(local_54 + 6)" * (cast_expression "(undefined2 *)(local_54 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 6)" ( (binary_expression "local_54 + 6" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }" else (compound_statement "{\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }" { (expression_statement "uVar10 = *(uint *)(local_58 + 0x24);" (assignment_expression "uVar10 = *(uint *)(local_58 + 0x24)" identifier = (pointer_expression "*(uint *)(local_58 + 0x24)" * (cast_expression "(uint *)(local_58 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x24)" ( (binary_expression "local_58 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);" (assignment_expression "pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18)" identifier = (cast_expression "(undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18)" ( (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(*(int *)(local_58 + 0x20) != 0)" ( (binary_expression "*(int *)(local_58 + 0x20) != 0" (pointer_expression "*(int *)(local_58 + 0x20)" * (cast_expression "(int *)(local_58 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x20)" ( (binary_expression "local_58 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f97" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f97" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;" (assignment_expression "*(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3" (pointer_expression "*(undefined ***)(puVar18 + -0x10)" * (cast_expression "(undefined ***)(puVar18 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "local_84 + -0x672d3" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e08;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e08" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar9 = param_1[0xd];" (assignment_expression "iVar9 = param_1[0xd]" identifier = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) (if_statement "if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }" { (labeled_statement "LAB_00328c60:\n            local_80 = local_80 & 0xffffff00;" statement_identifier : (expression_statement "local_80 = local_80 & 0xffffff00;" (assignment_expression "local_80 = local_80 & 0xffffff00" identifier = (binary_expression "local_80 & 0xffffff00" identifier & number_literal)) ;)) }) (else_clause "else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }" else (compound_statement "{\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }" { (expression_statement "uVar10 = iVar9 + 4;" (assignment_expression "uVar10 = iVar9 + 4" identifier = (binary_expression "iVar9 + 4" identifier + number_literal)) ;) (expression_statement "uVar13 = *(uint *)(iVar9 + 8);" (assignment_expression "uVar13 = *(uint *)(iVar9 + 8)" identifier = (pointer_expression "*(uint *)(iVar9 + 8)" * (cast_expression "(uint *)(iVar9 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) (if_statement "if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;" if (parenthesized_expression "(*(uint *)(iVar9 + 8) == 0)" ( (binary_expression "*(uint *)(iVar9 + 8) == 0" (pointer_expression "*(uint *)(iVar9 + 8)" * (cast_expression "(uint *)(iVar9 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00328c60;" goto statement_identifier ;)) (do_statement "do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);" do (compound_statement "{\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            }" { (while_statement "while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }" while (parenthesized_expression "(uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50)" ( (comma_expression "uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50" (assignment_expression "uVar12 = uVar13" identifier = identifier) , (binary_expression "*(uint *)(uVar12 + 0x10) < local_50" (pointer_expression "*(uint *)(uVar12 + 0x10)" * (cast_expression "(uint *)(uVar12 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x10)" ( (binary_expression "uVar12 + 0x10" identifier + number_literal) )))) < identifier)) )) (compound_statement "{\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }" { (expression_statement "puVar1 = (uint *)(uVar12 + 0xc);" (assignment_expression "puVar1 = (uint *)(uVar12 + 0xc)" identifier = (cast_expression "(uint *)(uVar12 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0xc)" ( (binary_expression "uVar12 + 0xc" identifier + number_literal) )))) ;) (expression_statement "uVar13 = *puVar1;" (assignment_expression "uVar13 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "uVar12 = uVar11;" (assignment_expression "uVar12 = uVar11" identifier = identifier) ;) (if_statement "if (*puVar1 == 0) goto LAB_003287e8;" if (parenthesized_expression "(*puVar1 == 0)" ( (binary_expression "*puVar1 == 0" (pointer_expression "*puVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_003287e8;" goto statement_identifier ;)) })) (expression_statement "uVar13 = *(uint *)(uVar12 + 8);" (assignment_expression "uVar13 = *(uint *)(uVar12 + 8)" identifier = (pointer_expression "*(uint *)(uVar12 + 8)" * (cast_expression "(uint *)(uVar12 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 8)" ( (binary_expression "uVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = uVar12;" (assignment_expression "uVar11 = uVar12" identifier = identifier) ;) }) while (parenthesized_expression "(*(uint *)(uVar12 + 8) != 0)" ( (binary_expression "*(uint *)(uVar12 + 8) != 0" (pointer_expression "*(uint *)(uVar12 + 8)" * (cast_expression "(uint *)(uVar12 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 8)" ( (binary_expression "uVar12 + 8" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;" statement_identifier : (expression_statement "local_80 = uVar10 & 0xffffff00;" (assignment_expression "local_80 = uVar10 & 0xffffff00" identifier = (binary_expression "uVar10 & 0xffffff00" identifier & number_literal)) ;)) (if_statement "if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }" if (parenthesized_expression "((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50))" ( (binary_expression "(uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)" (parenthesized_expression "(uVar10 != uVar12)" ( (binary_expression "uVar10 != uVar12" identifier != identifier) )) && (parenthesized_expression "(*(uint *)(uVar12 + 0x10) <= local_50)" ( (binary_expression "*(uint *)(uVar12 + 0x10) <= local_50" (pointer_expression "*(uint *)(uVar12 + 0x10)" * (cast_expression "(uint *)(uVar12 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x10)" ( (binary_expression "uVar12 + 0x10" identifier + number_literal) )))) <= identifier) ))) )) (compound_statement "{\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }" { (expression_statement "local_80 = CONCAT31((int3)(uVar10 >> 8),1);" (assignment_expression "local_80 = CONCAT31((int3)(uVar10 >> 8),1)" identifier = (call_expression "CONCAT31((int3)(uVar10 >> 8),1)" identifier (argument_list "((int3)(uVar10 >> 8),1)" ( (call_expression "(int3)(uVar10 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar10 >> 8)" ( (binary_expression "uVar10 >> 8" identifier >> number_literal) ))) , number_literal )))) ;) (expression_statement "pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);" (assignment_expression "pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14)" identifier = (pointer_expression "*(undefined4 ******)(uVar12 + 0x14)" * (cast_expression "(undefined4 ******)(uVar12 + 0x14)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(uVar12 + 0x14)" ( (binary_expression "uVar12 + 0x14" identifier + number_literal) ))))) ;) })) }))) (if_statement "if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;" if (parenthesized_expression "(pppppuVar7 == (undefined4 *****)0x0)" ( (binary_expression "pppppuVar7 == (undefined4 *****)0x0" identifier == (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_00328950;" goto statement_identifier ;)) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);" (assignment_expression "uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7)" identifier = (binary_expression "local_68 + CARRY4(local_6c,(uint)pppppuVar7)" identifier + (call_expression "CARRY4(local_6c,(uint)pppppuVar7)" identifier (argument_list "(local_6c,(uint)pppppuVar7)" ( identifier , (cast_expression "(uint)pppppuVar7" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;) (expression_statement "local_9c = pppppuVar7;" (assignment_expression "local_9c = pppppuVar7" identifier = identifier) ;) (if_statement "if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))" ( (binary_expression "local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7))" (binary_expression "local_7c < uVar10" identifier < identifier) || (binary_expression "local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7))" (binary_expression "local_7c - uVar10" identifier - identifier) < (call_expression "(uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7))" ( (binary_expression "local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)" identifier < (cast_expression "(undefined4 *****)(local_6c + (int)pppppuVar7)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(local_6c + (int)pppppuVar7)" ( (binary_expression "local_6c + (int)pppppuVar7" identifier + (cast_expression "(int)pppppuVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))))) )) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f9b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x317;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x317" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x1547d9" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f37;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f37" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar22 = CARRY4(local_64,local_6c);" (assignment_expression "bVar22 = CARRY4(local_64,local_6c)" identifier = (call_expression "CARRY4(local_64,local_6c)" identifier (argument_list "(local_64,local_6c)" ( identifier , identifier )))) ;) (expression_statement "local_64 = local_64 + local_6c;" (assignment_expression "local_64 = local_64 + local_6c" identifier = (binary_expression "local_64 + local_6c" identifier + identifier)) ;) (expression_statement "local_60 = local_60 + local_68 + (uint)bVar22;" (assignment_expression "local_60 = local_60 + local_68 + (uint)bVar22" identifier = (binary_expression "local_60 + local_68 + (uint)bVar22" (binary_expression "local_60 + local_68" identifier + identifier) + (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }" if (parenthesized_expression "((char)local_5c == '\0')" ( (binary_expression "(char)local_5c == '\0'" (cast_expression "(char)local_5c" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }" { (if_statement "if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0))" ( (binary_expression "((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)" (parenthesized_expression "((int)local_60 < 0)" ( (binary_expression "(int)local_60 < 0" (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)" ( (comma_expression "iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64)" identifier = (binary_expression "local_60 + CARRY4((uint)pppppuVar7,local_64)" identifier + (call_expression "CARRY4((uint)pppppuVar7,local_64)" identifier (argument_list "((uint)pppppuVar7,local_64)" ( (cast_expression "(uint)pppppuVar7" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))))) , (comma_expression "uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64))" identifier = (call_expression "(uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64))" ( (binary_expression "*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)" (pointer_expression "*(undefined1 **)(param_4 + 8)" * (cast_expression "(undefined1 **)(param_4 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) < (cast_expression "(undefined1 *)((int)pppppuVar7 + local_64)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppuVar7 + local_64)" ( (binary_expression "(int)pppppuVar7 + local_64" (cast_expression "(int)pppppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) )))) , (comma_expression "iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "iVar9 = *(int *)(param_4 + 0xc) - iVar21" identifier = (binary_expression "*(int *)(param_4 + 0xc) - iVar21" (pointer_expression "*(int *)(param_4 + 0xc)" * (cast_expression "(int *)(param_4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) )))) - identifier)) , (binary_expression "(SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10))" ( (binary_expression "SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)" (call_expression "SBORROW4(*(int *)(param_4 + 0xc),iVar21)" identifier (argument_list "(*(int *)(param_4 + 0xc),iVar21)" ( (pointer_expression "*(int *)(param_4 + 0xc)" * (cast_expression "(int *)(param_4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) )))) , identifier ))) != (call_expression "SBORROW4(iVar9,uVar10)" identifier (argument_list "(iVar9,uVar10)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar9 - uVar10) < 0" (cast_expression "(int)(iVar9 - uVar10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar9 - uVar10)" ( (binary_expression "iVar9 - uVar10" identifier - identifier) ))) < number_literal))))) ))) )) (compound_statement "{\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f89" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x6f;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x6f" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;" (assignment_expression "*(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5" (pointer_expression "*(undefined1 **)(puVar18 + -0x14)" * (cast_expression "(undefined1 **)(puVar18 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = (pointer_expression "&LAB_00328fe5" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = local_64 + *(int *)(param_4 + 0x10);" (assignment_expression "local_5c = local_64 + *(int *)(param_4 + 0x10)" identifier = (binary_expression "local_64 + *(int *)(param_4 + 0x10)" identifier + (pointer_expression "*(int *)(param_4 + 0x10)" * (cast_expression "(int *)(param_4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))))) ;) (if_statement "if ((char)local_80 == '\0') goto LAB_00328869;" if (parenthesized_expression "((char)local_80 == '\0')" ( (binary_expression "(char)local_80 == '\0'" (cast_expression "(char)local_80" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00328869;" goto statement_identifier ;)) (labeled_statement "LAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(puVar18 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -4)" * (cast_expression "(undefined4 *)(puVar18 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "*(undefined4 **)(puVar18 + -8) = &local_44;" (assignment_expression "*(undefined4 **)(puVar18 + -8) = &local_44" (pointer_expression "*(undefined4 **)(puVar18 + -8)" * (cast_expression "(undefined4 **)(puVar18 + -8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "*(uint *)(puVar18 + -0xc) = local_50;" (assignment_expression "*(uint *)(puVar18 + -0xc) = local_50" (pointer_expression "*(uint *)(puVar18 + -0xc)" * (cast_expression "(uint *)(puVar18 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar18 + -0x10) = param_1;" (assignment_expression "*(int **)(puVar18 + -0x10) = param_1" (pointer_expression "*(int **)(puVar18 + -0x10)" * (cast_expression "(int **)(puVar18 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328bc3;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328bc3" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = FUN_0028b8b0();" (assignment_expression "uVar8 = FUN_0028b8b0()" identifier = (call_expression "FUN_0028b8b0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_78 = *(undefined4 *****)(local_58 + 8);" (assignment_expression "local_78 = *(undefined4 *****)(local_58 + 8)" identifier = (pointer_expression "*(undefined4 *****)(local_58 + 8)" * (cast_expression "(undefined4 *****)(local_58 + 8)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(local_58 + 8)" ( (binary_expression "local_58 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(local_58 + 0xc);" (assignment_expression "uVar10 = *(uint *)(local_58 + 0xc)" identifier = (pointer_expression "*(uint *)(local_58 + 0xc)" * (cast_expression "(uint *)(local_58 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0xc)" ( (binary_expression "local_58 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;" (assignment_expression "*(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18" (pointer_expression "*(uint *)(puVar18 + -4)" * (cast_expression "(uint *)(puVar18 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = (binary_expression "(uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18" (binary_expression "(uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8" (binary_expression "(uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8" (binary_expression "(uint)local_78 >> 0x18" (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "((uint)local_78 & 0xff0000) >> 8" (parenthesized_expression "((uint)local_78 & 0xff0000)" ( (binary_expression "(uint)local_78 & 0xff0000" (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((uint)local_78 & 0xff00) << 8" (parenthesized_expression "((uint)local_78 & 0xff00)" ( (binary_expression "(uint)local_78 & 0xff00" (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(int)local_78 << 0x18" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal))) ;) (expression_statement "*(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;" (assignment_expression "*(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (pointer_expression "*(uint *)(puVar18 + -8)" * (cast_expression "(uint *)(puVar18 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x10) = 0x40;" (assignment_expression "*(undefined4 *)(puVar18 + -0x10) = 0x40" (pointer_expression "*(undefined4 *)(puVar18 + -0x10)" * (cast_expression "(undefined4 *)(puVar18 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;" (assignment_expression "*(undefined4 ******)(puVar18 + -0x14) = pppppuVar7" (pointer_expression "*(undefined4 ******)(puVar18 + -0x14)" * (cast_expression "(undefined4 ******)(puVar18 + -0x14)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar18 + -0x18) = local_5c;" (assignment_expression "*(uint *)(puVar18 + -0x18) = local_5c" (pointer_expression "*(uint *)(puVar18 + -0x18)" * (cast_expression "(uint *)(puVar18 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x18)" ( (binary_expression "puVar18 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x1c) = local_44;" (assignment_expression "*(undefined4 *)(puVar18 + -0x1c) = local_44" (pointer_expression "*(undefined4 *)(puVar18 + -0x1c)" * (cast_expression "(undefined4 *)(puVar18 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x1c)" ( (binary_expression "puVar18 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x20) = uVar8;" (assignment_expression "*(undefined4 *)(puVar18 + -0x20) = uVar8" (pointer_expression "*(undefined4 *)(puVar18 + -0x20)" * (cast_expression "(undefined4 *)(puVar18 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x20)" ( (binary_expression "puVar18 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x24) = 0x328bf3;" (assignment_expression "*(undefined4 *)(puVar18 + -0x24) = 0x328bf3" (pointer_expression "*(undefined4 *)(puVar18 + -0x24)" * (cast_expression "(undefined4 *)(puVar18 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x24)" ( (binary_expression "puVar18 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar6 = FUN_0036f6a0();" (assignment_expression "cVar6 = FUN_0036f6a0()" identifier = (call_expression "FUN_0036f6a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar17 = puVar18;" (assignment_expression "puVar17 = puVar18" identifier = identifier) ;) (if_statement "if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }" { (expression_statement "iVar9 = *param_1;" (assignment_expression "iVar9 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*(uint *)(puVar18 + -8) = local_50;" (assignment_expression "*(uint *)(puVar18 + -8) = local_50" (pointer_expression "*(uint *)(puVar18 + -8)" * (cast_expression "(uint *)(puVar18 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar18 + -0xc) = param_1;" (assignment_expression "*(int **)(puVar18 + -0xc) = param_1" (pointer_expression "*(int **)(puVar18 + -0xc)" * (cast_expression "(int **)(puVar18 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 ******)(puVar18 + -0x10) = &local_34;" (assignment_expression "*(undefined4 ******)(puVar18 + -0x10) = &local_34" (pointer_expression "*(undefined4 ******)(puVar18 + -0x10)" * (cast_expression "(undefined4 ******)(puVar18 + -0x10)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "pcVar3 = *(code **)(iVar9 + 0x40);" (assignment_expression "pcVar3 = *(code **)(iVar9 + 0x40)" identifier = (pointer_expression "*(code **)(iVar9 + 0x40)" * (cast_expression "(code **)(iVar9 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328c13;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328c13" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "local_78 = local_34;" (assignment_expression "local_78 = local_34" identifier = identifier) ;) (expression_statement "*(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;" (assignment_expression "*(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922" (pointer_expression "*(undefined ***)(puVar18 + -0x14)" * (cast_expression "(undefined ***)(puVar18 + -0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = (binary_expression "local_84 + -0x57922" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x18) = 0x328c28;" (assignment_expression "*(undefined4 *)(puVar18 + -0x18) = 0x328c28" (pointer_expression "*(undefined4 *)(puVar18 + -0x18)" * (cast_expression "(undefined4 *)(puVar18 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x18)" ( (binary_expression "puVar18 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = gettext();" (assignment_expression "uVar8 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *****)(puVar18 + -0xc) = local_78;" (assignment_expression "*(undefined4 *****)(puVar18 + -0xc) = local_78" (pointer_expression "*(undefined4 *****)(puVar18 + -0xc)" * (cast_expression "(undefined4 *****)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x10) = uVar8;" (assignment_expression "*(undefined4 *)(puVar18 + -0x10) = uVar8" (pointer_expression "*(undefined4 *)(puVar18 + -0x10)" * (cast_expression "(undefined4 *)(puVar18 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar18 + -0x14) = param_1;" (assignment_expression "*(int **)(puVar18 + -0x14) = param_1" (pointer_expression "*(int **)(puVar18 + -0x14)" * (cast_expression "(int **)(puVar18 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x18) = 0x328c3b;" (assignment_expression "*(undefined4 *)(puVar18 + -0x18) = 0x328c3b" (pointer_expression "*(undefined4 *)(puVar18 + -0x18)" * (cast_expression "(undefined4 *)(puVar18 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x18)" ( (binary_expression "puVar18 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0028b750();" (call_expression "FUN_0028b750()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar17 = puVar18 + -4;" (assignment_expression "puVar17 = puVar18 + -4" identifier = (binary_expression "puVar18 + -4" identifier + number_literal)) ;) (if_statement "if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;" if (parenthesized_expression "((undefined4 *****)local_34 == &local_2c)" ( (binary_expression "(undefined4 *****)local_34 == &local_2c" (cast_expression "(undefined4 *****)local_34" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (pointer_expression "&local_2c" & identifier)) )) (goto_statement "goto LAB_003288be;" goto statement_identifier ;)) (expression_statement "puVar16 = puVar18 + -0x14;" (assignment_expression "puVar16 = puVar18 + -0x14" identifier = (binary_expression "puVar18 + -0x14" identifier + number_literal)) ;) (expression_statement "*(undefined4 *****)(puVar18 + -0x14) = local_34;" (assignment_expression "*(undefined4 *****)(puVar18 + -0x14) = local_34" (pointer_expression "*(undefined4 *****)(puVar18 + -0x14)" * (cast_expression "(undefined4 *****)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x18) = 0x328c58;" (assignment_expression "*(undefined4 *)(puVar18 + -0x18) = 0x328c58" (pointer_expression "*(undefined4 *)(puVar18 + -0x18)" * (cast_expression "(undefined4 *)(puVar18 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x18)" ( (binary_expression "puVar18 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_003288bb;" goto statement_identifier ;) })) }) (else_clause "else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }" else (compound_statement "{\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }" { (if_statement "if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x8c) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x8c) == 0" (pointer_expression "*(int *)(iVar2 + 0x8c)" * (cast_expression "(int *)(iVar2 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x8c)" ( (binary_expression "iVar2 + 0x8c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }" { (labeled_statement "LAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;" statement_identifier : (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f85" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f85" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xe34;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xe34" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328fca;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328fca" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = *(int *)(iVar2 + 0x8c) + local_64;" (assignment_expression "local_5c = *(int *)(iVar2 + 0x8c) + local_64" identifier = (binary_expression "*(int *)(iVar2 + 0x8c) + local_64" (pointer_expression "*(int *)(iVar2 + 0x8c)" * (cast_expression "(int *)(iVar2 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x8c)" ( (binary_expression "iVar2 + 0x8c" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((char)local_80 != '\0') goto LAB_00328baf;" if (parenthesized_expression "((char)local_80 != '\0')" ( (binary_expression "(char)local_80 != '\0'" (cast_expression "(char)local_80" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00328baf;" goto statement_identifier ;)) (labeled_statement "LAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);" statement_identifier : (expression_statement "uVar10 = *(uint *)(local_58 + 0x18);" (assignment_expression "uVar10 = *(uint *)(local_58 + 0x18)" identifier = (pointer_expression "*(uint *)(local_58 + 0x18)" * (cast_expression "(uint *)(local_58 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x18)" ( (binary_expression "local_58 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "uVar13 = *(uint *)(local_58 + 0x1c);" (assignment_expression "uVar13 = *(uint *)(local_58 + 0x1c)" identifier = (pointer_expression "*(uint *)(local_58 + 0x1c)" * (cast_expression "(uint *)(local_58 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x1c)" ( (binary_expression "local_58 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;" (assignment_expression "local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" identifier = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) (expression_statement "local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);" (assignment_expression "local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18)" identifier = (cast_expression "(undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18)" ( (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8" (binary_expression "uVar13 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar13 & 0xff0000) >> 8" (parenthesized_expression "(uVar13 & 0xff0000)" ( (binary_expression "uVar13 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar13 & 0xff00) << 8" (parenthesized_expression "(uVar13 & 0xff00)" ( (binary_expression "uVar13 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar13 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "cVar6 = local_9d;" (assignment_expression "cVar6 = local_9d" identifier = identifier) ;) (if_statement "if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }" if (parenthesized_expression "((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0))" ( (binary_expression "(local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)" (parenthesized_expression "(local_3c != local_40)" ( (binary_expression "local_3c != local_40" identifier != identifier) )) && (parenthesized_expression "(uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)" ( (comma_expression "uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10))" identifier = (call_expression "(uint)(local_78 < *(undefined4 ******)(local_3c + -0x10))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_78 < *(undefined4 ******)(local_3c + -0x10))" ( (binary_expression "local_78 < *(undefined4 ******)(local_3c + -0x10)" identifier < (pointer_expression "*(undefined4 ******)(local_3c + -0x10)" * (cast_expression "(undefined4 ******)(local_3c + -0x10)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(local_3c + -0x10)" ( (binary_expression "local_3c + -0x10" identifier + number_literal) ))))) )))) , (comma_expression "iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "iVar9 = local_30 - *(int *)(local_3c + -0xc)" identifier = (binary_expression "local_30 - *(int *)(local_3c + -0xc)" identifier - (pointer_expression "*(int *)(local_3c + -0xc)" * (cast_expression "(int *)(local_3c + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_3c + -0xc)" ( (binary_expression "local_3c + -0xc" identifier + number_literal) )))))) , (comma_expression "cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "cVar6 = (char)local_80" identifier = (cast_expression "(char)local_80" ( (type_descriptor "char" primitive_type) ) identifier)) , (binary_expression "(SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0" (parenthesized_expression "(SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10))" ( (binary_expression "SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)" (call_expression "SBORROW4(local_30,*(int *)(local_3c + -0xc))" identifier (argument_list "(local_30,*(int *)(local_3c + -0xc))" ( identifier , (pointer_expression "*(int *)(local_3c + -0xc)" * (cast_expression "(int *)(local_3c + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_3c + -0xc)" ( (binary_expression "local_3c + -0xc" identifier + number_literal) )))) ))) != (call_expression "SBORROW4(iVar9,uVar10)" identifier (argument_list "(iVar9,uVar10)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar9 - uVar10) < 0" (cast_expression "(int)(iVar9 - uVar10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar9 - uVar10)" ( (binary_expression "iVar9 - uVar10" identifier - identifier) ))) < number_literal))))) ))) )) (compound_statement "{\n              cVar6 = local_9d;\n            }" { (expression_statement "cVar6 = local_9d;" (assignment_expression "cVar6 = local_9d" identifier = identifier) ;) })) (expression_statement "local_9d = cVar6;" (assignment_expression "local_9d = cVar6" identifier = identifier) ;) (expression_statement "local_28 = local_5c;" (assignment_expression "local_28 = local_5c" identifier = identifier) ;) (expression_statement "*(undefined4 ******)(puVar18 + -0xc) = &local_34;" (assignment_expression "*(undefined4 ******)(puVar18 + -0xc) = &local_34" (pointer_expression "*(undefined4 ******)(puVar18 + -0xc)" * (cast_expression "(undefined4 ******)(puVar18 + -0xc)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "puVar16 = puVar18 + -0x10;" (assignment_expression "puVar16 = puVar18 + -0x10" identifier = (binary_expression "puVar18 + -0x10" identifier + number_literal)) ;) (expression_statement "*(int **)(puVar18 + -0x10) = &local_40;" (assignment_expression "*(int **)(puVar18 + -0x10) = &local_40" (pointer_expression "*(int **)(puVar18 + -0x10)" * (cast_expression "(int **)(puVar18 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_40" & identifier)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x3288bb;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x3288bb" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = local_78;" (assignment_expression "local_34 = local_78" identifier = identifier) ;) (expression_statement "local_2c = pppppuVar7;" (assignment_expression "local_2c = pppppuVar7" identifier = identifier) ;) (expression_statement "FUN_00320060();" (call_expression "FUN_00320060()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_003288bb:\n            puVar17 = puVar16 + 0x10;" statement_identifier : (expression_statement "puVar17 = puVar16 + 0x10;" (assignment_expression "puVar17 = puVar16 + 0x10" identifier = (binary_expression "puVar16 + 0x10" identifier + number_literal)) ;)) }))) (labeled_statement "LAB_003288be:\n          *local_54 = local_5c;" statement_identifier : (expression_statement "*local_54 = local_5c;" (assignment_expression "*local_54 = local_5c" (pointer_expression "*local_54" * identifier) = identifier) ;)) (expression_statement "puVar18 = puVar17;" (assignment_expression "puVar18 = puVar17" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }" { (labeled_statement "LAB_00328dcc:\n            ppuVar4 = local_84;" statement_identifier : (expression_statement "ppuVar4 = local_84;" (assignment_expression "ppuVar4 = local_84" identifier = identifier) ;)) (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f8b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)ppuVar4 + -0x19cca3" (cast_expression "(int)ppuVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328dea;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328dea" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar13 = *(uint *)(iVar2 + 4);" (assignment_expression "uVar13 = *(uint *)(iVar2 + 4)" identifier = (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = *(int *)(iVar2 + 8);" (assignment_expression "iVar21 = *(int *)(iVar2 + 8)" identifier = (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(*local_74 + 8);" (assignment_expression "iVar9 = *(int *)(*local_74 + 8)" identifier = (pointer_expression "*(int *)(*local_74 + 8)" * (cast_expression "(int *)(*local_74 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_74 + 8)" ( (binary_expression "*local_74 + 8" (pointer_expression "*local_74" * identifier) + number_literal) ))))) ;) (expression_statement "uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);" (assignment_expression "uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5)" identifier = (call_expression "CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5)" identifier (argument_list "(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5)" ( (field_expression "local_5c._1_3_" identifier . field_identifier) , (binary_expression "*(byte *)(iVar2 + 0x90) >> 5" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "local_54[1] = uVar13 + local_6c;" (assignment_expression "local_54[1] = uVar13 + local_6c" (subscript_expression "local_54[1]" identifier [ number_literal ]) = (binary_expression "uVar13 + local_6c" identifier + identifier)) ;) (expression_statement "local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);" (assignment_expression "local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c)" (subscript_expression "local_54[2]" identifier [ number_literal ]) = (binary_expression "iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c)" (binary_expression "iVar21 + local_68" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar13,local_6c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar13,local_6c)" identifier (argument_list "(uVar13,local_6c)" ( identifier , identifier )))))) ;) (labeled_statement "LAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;" statement_identifier : (expression_statement "local_5c = uVar10 & 0xffffff01;" (assignment_expression "local_5c = uVar10 & 0xffffff01" identifier = (binary_expression "uVar10 & 0xffffff01" identifier & number_literal)) ;)) (expression_statement "local_54[3] = local_64;" (assignment_expression "local_54[3] = local_64" (subscript_expression "local_54[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_54[4] = local_60;" (assignment_expression "local_54[4] = local_60" (subscript_expression "local_54[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_54[5] = (uint)pppppuVar7;" (assignment_expression "local_54[5] = (uint)pppppuVar7" (subscript_expression "local_54[5]" identifier [ number_literal ]) = (cast_expression "(uint)pppppuVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;" (assignment_expression "*(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff" (pointer_expression "*(bool *)(local_54 + 6)" * (cast_expression "(bool *)(local_54 + 6)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 6)" ( (binary_expression "local_54 + 6" identifier + number_literal) )))) = (binary_expression "(local_6c & local_68) == 0xffffffff" (parenthesized_expression "(local_6c & local_68)" ( (binary_expression "local_6c & local_68" identifier & identifier) )) == number_literal)) ;) (expression_statement "*(char *)((int)local_54 + 0x19) = (char)local_5c;" (assignment_expression "*(char *)((int)local_54 + 0x19) = (char)local_5c" (pointer_expression "*(char *)((int)local_54 + 0x19)" * (cast_expression "(char *)((int)local_54 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x19)" ( (binary_expression "(int)local_54 + 0x19" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)local_5c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f02" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f02" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x1a1d93" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e3e;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e3e" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;" (assignment_expression "bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7" identifier = (binary_expression "(*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7" (parenthesized_expression "(*(byte *)(iVar9 + 0x318d) ^ 1)" ( (binary_expression "*(byte *)(iVar9 + 0x318d) ^ 1" (pointer_expression "*(byte *)(iVar9 + 0x318d)" * (cast_expression "(byte *)(iVar9 + 0x318d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x318d)" ( (binary_expression "iVar9 + 0x318d" identifier + number_literal) )))) ^ number_literal) )) & (binary_expression "&DAT_00000008 < pppppuVar7" (pointer_expression "&DAT_00000008" & identifier) < identifier))) ;) (expression_statement "bVar24 = bVar5 == 0;" (assignment_expression "bVar24 = bVar5 == 0" identifier = (binary_expression "bVar5 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }" { (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar19 = *(byte **)(iVar2 + 0x20);" (assignment_expression "pbVar19 = *(byte **)(iVar2 + 0x20)" identifier = (pointer_expression "*(byte **)(iVar2 + 0x20)" * (cast_expression "(byte **)(iVar2 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pbVar20 = (byte *)((int)local_84 + -0x15ffb6);" (assignment_expression "pbVar20 = (byte *)((int)local_84 + -0x15ffb6)" identifier = (cast_expression "(byte *)((int)local_84 + -0x15ffb6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + -0x15ffb6)" ( (binary_expression "(int)local_84 + -0x15ffb6" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);" do (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar19 < *pbVar20;" (assignment_expression "bVar22 = *pbVar19 < *pbVar20" identifier = (binary_expression "*pbVar19 < *pbVar20" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar24 = *pbVar19 == *pbVar20;" (assignment_expression "bVar24 = *pbVar19 == *pbVar20" identifier = (binary_expression "*pbVar19 == *pbVar20" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }" { (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar19 = *(byte **)(iVar2 + 0x20);" (assignment_expression "pbVar19 = *(byte **)(iVar2 + 0x20)" identifier = (pointer_expression "*(byte **)(iVar2 + 0x20)" * (cast_expression "(byte **)(iVar2 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pbVar20 = (byte *)((int)local_84 + -0x15ffaa);" (assignment_expression "pbVar20 = (byte *)((int)local_84 + -0x15ffaa)" identifier = (cast_expression "(byte *)((int)local_84 + -0x15ffaa)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + -0x15ffaa)" ( (binary_expression "(int)local_84 + -0x15ffaa" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);" do (compound_statement "{\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar19 < *pbVar20;" (assignment_expression "bVar23 = *pbVar19 < *pbVar20" identifier = (binary_expression "*pbVar19 < *pbVar20" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar19 == *pbVar20;" (assignment_expression "bVar22 = *pbVar19 == *pbVar20" identifier = (binary_expression "*pbVar19 == *pbVar20" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }" if (parenthesized_expression "((!bVar23 && !bVar22) != bVar23)" ( (binary_expression "(!bVar23 && !bVar22) != bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) != identifier) )) (compound_statement "{\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }" { (expression_statement "bVar5 = 0;" (assignment_expression "bVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0032894a;" goto statement_identifier ;) })) })) (expression_statement "*(uint *)(puVar18 + -8) = local_50;" (assignment_expression "*(uint *)(puVar18 + -8) = local_50" (pointer_expression "*(uint *)(puVar18 + -8)" * (cast_expression "(uint *)(puVar18 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar18 + -0xc) = param_1;" (assignment_expression "*(int **)(puVar18 + -0xc) = param_1" (pointer_expression "*(int **)(puVar18 + -0xc)" * (cast_expression "(int **)(puVar18 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)(puVar18 + -0x10) = param_2" (pointer_expression "*(undefined4 *)(puVar18 + -0x10)" * (cast_expression "(undefined4 *)(puVar18 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328d4c;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328d4c" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar5 = FUN_002790d0();" (assignment_expression "bVar5 = FUN_002790d0()" identifier = (call_expression "FUN_002790d0()" identifier (argument_list "()" ( )))) ;) })) (labeled_statement "LAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;" statement_identifier : (expression_statement "*(byte *)((int)local_54 + 0x1a) = bVar5;" (assignment_expression "*(byte *)((int)local_54 + 0x1a) = bVar5" (pointer_expression "*(byte *)((int)local_54 + 0x1a)" * (cast_expression "(byte *)((int)local_54 + 0x1a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x1a)" ( (binary_expression "(int)local_54 + 0x1a" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (goto_statement "goto LAB_00328950;" goto statement_identifier ;) })) (if_statement "if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }" if (parenthesized_expression "((uint)param_1[10] <= local_50)" ( (binary_expression "(uint)param_1[10] <= local_50" (cast_expression "(uint)param_1[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[10]" identifier [ number_literal ])) <= identifier) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f45" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f45" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x549;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x549" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cc7b" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e5c;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e5c" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);" (assignment_expression "iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4)" identifier = (pointer_expression "*(int *)(*(int *)param_1[0x11] + local_50 * 4)" * (cast_expression "(int *)(*(int *)param_1[0x11] + local_50 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1[0x11] + local_50 * 4)" ( (binary_expression "*(int *)param_1[0x11] + local_50 * 4" (pointer_expression "*(int *)param_1[0x11]" * (cast_expression "(int *)param_1[0x11]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x11]" identifier [ number_literal ]))) + (binary_expression "local_50 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f9b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x2ce;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x2ce" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x1547d9" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328efb;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328efb" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = *(int *)(iVar2 + 0x10);" (assignment_expression "iVar2 = *(int *)(iVar2 + 0x10)" identifier = (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f9b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x2d0;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x2d0" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x1547d9" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328edd;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328edd" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar5 = *(byte *)(iVar2 + 0x1c);" (assignment_expression "bVar5 = *(byte *)(iVar2 + 0x1c)" identifier = (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }" if (parenthesized_expression "((bVar5 & 4) == 0)" ( (binary_expression "(bVar5 & 4) == 0" (parenthesized_expression "(bVar5 & 4)" ( (binary_expression "bVar5 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f78" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f78" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xe3;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xe3" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328fac;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328fac" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar10 = *(uint *)(iVar2 + 0x14);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x14)" * (cast_expression "(uint *)(iVar2 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(iVar2 + 0x18);" (assignment_expression "uVar13 = *(uint *)(iVar2 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x18)" * (cast_expression "(uint *)(iVar2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_54[3] = uVar10;" (assignment_expression "local_54[3] = uVar10" (subscript_expression "local_54[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_54[4] = uVar13;" (assignment_expression "local_54[4] = uVar13" (subscript_expression "local_54[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }" if (parenthesized_expression "((bVar5 & 2) == 0)" ( (binary_expression "(bVar5 & 2) == 0" (parenthesized_expression "(bVar5 & 2)" ( (binary_expression "bVar5 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f7b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xcf;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xcf" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f8e;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f8e" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar11 = *(uint *)(iVar2 + 0xc);" (assignment_expression "uVar11 = *(uint *)(iVar2 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar2 + 0xc)" * (cast_expression "(uint *)(iVar2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_54[5] = uVar11;" (assignment_expression "local_54[5] = uVar11" (subscript_expression "local_54[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }" if (parenthesized_expression "((int)uVar13 < 0)" ( (binary_expression "(int)uVar13 < 0" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }" { (labeled_statement "LAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;" statement_identifier : (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f89" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x6f;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x6f" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f70;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f70" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "local_64 = uVar11 + uVar10;" (assignment_expression "local_64 = uVar11 + uVar10" identifier = (binary_expression "uVar11 + uVar10" identifier + identifier)) ;) (expression_statement "local_60 = uVar13 + CARRY4(uVar11,uVar10);" (assignment_expression "local_60 = uVar13 + CARRY4(uVar11,uVar10)" identifier = (binary_expression "uVar13 + CARRY4(uVar11,uVar10)" identifier + (call_expression "CARRY4(uVar11,uVar10)" identifier (argument_list "(uVar11,uVar10)" ( identifier , identifier ))))) ;) (expression_statement "local_6c = *(uint *)(param_4 + 0xc);" (assignment_expression "local_6c = *(uint *)(param_4 + 0xc)" identifier = (pointer_expression "*(uint *)(param_4 + 0xc)" * (cast_expression "(uint *)(param_4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);" (assignment_expression "uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64)" identifier = (call_expression "(uint)(*(uint *)(param_4 + 8) < local_64)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_4 + 8) < local_64)" ( (binary_expression "*(uint *)(param_4 + 8) < local_64" (pointer_expression "*(uint *)(param_4 + 8)" * (cast_expression "(uint *)(param_4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) < identifier) )))) ;) (expression_statement "local_94 = uVar11;" (assignment_expression "local_94 = uVar11" identifier = identifier) ;) (if_statement "if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;" if (parenthesized_expression "((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0)" ( (binary_expression "(SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0" (parenthesized_expression "(SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13))" ( (binary_expression "SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)" (call_expression "SBORROW4(local_6c,local_60)" identifier (argument_list "(local_6c,local_60)" ( identifier , identifier ))) != (call_expression "SBORROW4(local_6c - local_60,uVar13)" identifier (argument_list "(local_6c - local_60,uVar13)" ( (binary_expression "local_6c - local_60" identifier - identifier) , identifier )))) )) != (binary_expression "(int)((local_6c - local_60) - uVar13) < 0" (cast_expression "(int)((local_6c - local_60) - uVar13)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((local_6c - local_60) - uVar13)" ( (binary_expression "(local_6c - local_60) - uVar13" (parenthesized_expression "(local_6c - local_60)" ( (binary_expression "local_6c - local_60" identifier - identifier) )) - identifier) ))) < number_literal)) )) (goto_statement "goto LAB_00328f55;" goto statement_identifier ;)) (expression_statement "*local_54 = *(int *)(param_4 + 0x10) + uVar10;" (assignment_expression "*local_54 = *(int *)(param_4 + 0x10) + uVar10" (pointer_expression "*local_54" * identifier) = (binary_expression "*(int *)(param_4 + 0x10) + uVar10" (pointer_expression "*(int *)(param_4 + 0x10)" * (cast_expression "(int *)(param_4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }" if (parenthesized_expression "((bVar5 & 1) == 0)" ( (binary_expression "(bVar5 & 1) == 0" (parenthesized_expression "(bVar5 & 1)" ( (binary_expression "bVar5 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f8b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f55;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f55" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar10 = *(uint *)(iVar2 + 4);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 4)" identifier = (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (expression_statement "local_54[2] = *(uint *)(iVar2 + 8);" (assignment_expression "local_54[2] = *(uint *)(iVar2 + 8)" (subscript_expression "local_54[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_54[1] = uVar10;" (assignment_expression "local_54[1] = uVar10" (subscript_expression "local_54[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined2 *)(local_54 + 6) = 0;" (assignment_expression "*(undefined2 *)(local_54 + 6) = 0" (pointer_expression "*(undefined2 *)(local_54 + 6)" * (cast_expression "(undefined2 *)(local_54 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 6)" ( (binary_expression "local_54 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)local_54 + 0x1a) = 0;" (assignment_expression "*(undefined1 *)((int)local_54 + 0x1a) = 0" (pointer_expression "*(undefined1 *)((int)local_54 + 0x1a)" * (cast_expression "(undefined1 *)((int)local_54 + 0x1a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x1a)" ( (binary_expression "(int)local_54 + 0x1a" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_58 = local_58 + 0x40;" (assignment_expression "local_58 = local_58 + 0x40" identifier = (binary_expression "local_58 + 0x40" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_50 != local_70)" ( (binary_expression "local_50 != local_70" identifier != identifier) )) ;) (labeled_statement "LAB_00328964:\n    iVar9 = local_3c;" statement_identifier : (expression_statement "iVar9 = local_3c;" (assignment_expression "iVar9 = local_3c" identifier = identifier) ;)) (expression_statement "iVar2 = local_40;" (assignment_expression "iVar2 = local_40" identifier = identifier) ;) (if_statement "if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }" if (parenthesized_expression "(local_3c != local_40)" ( (binary_expression "local_3c != local_40" identifier != identifier) )) (compound_statement "{\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }" { (if_statement "if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }" if (parenthesized_expression "(local_9d == '\0')" ( (binary_expression "local_9d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }" { (expression_statement "*(undefined4 *)(puVar18 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -4)" * (cast_expression "(undefined4 *)(puVar18 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = iVar9 - iVar2 >> 4;" (assignment_expression "uVar13 = iVar9 - iVar2 >> 4" identifier = (binary_expression "iVar9 - iVar2 >> 4" (binary_expression "iVar9 - iVar2" identifier - identifier) >> number_literal)) ;) (expression_statement "uVar10 = 0x1f;" (assignment_expression "uVar10 = 0x1f" identifier = number_literal) ;) (if_statement "if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }" { (for_statement "for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }" for ( ; (binary_expression "uVar13 >> uVar10 == 0" (binary_expression "uVar13 >> uVar10" identifier >> identifier) == number_literal) ; (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ) (compound_statement "{\n          }" { })) })) (expression_statement "*(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;" (assignment_expression "*(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2" (pointer_expression "*(uint *)(puVar18 + -8)" * (cast_expression "(uint *)(puVar18 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "(0x1f - (uVar10 ^ 0x1f)) * 2" (parenthesized_expression "(0x1f - (uVar10 ^ 0x1f))" ( (binary_expression "0x1f - (uVar10 ^ 0x1f)" number_literal - (parenthesized_expression "(uVar10 ^ 0x1f)" ( (binary_expression "uVar10 ^ 0x1f" identifier ^ number_literal) ))) )) * number_literal)) ;) (expression_statement "*(int *)(puVar18 + -0xc) = iVar9;" (assignment_expression "*(int *)(puVar18 + -0xc) = iVar9" (pointer_expression "*(int *)(puVar18 + -0xc)" * (cast_expression "(int *)(puVar18 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar18 + -0x10) = iVar2;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar2" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328d76;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328d76" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00328410();" (call_expression "FUN_00328410()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }" if (parenthesized_expression "(iVar9 - iVar2 < 0x101)" ( (binary_expression "iVar9 - iVar2 < 0x101" (binary_expression "iVar9 - iVar2" identifier - identifier) < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }" { (expression_statement "*(undefined4 *)(puVar18 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -8)" * (cast_expression "(undefined4 *)(puVar18 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0xc) = iVar9;" (assignment_expression "*(int *)(puVar18 + -0xc) = iVar9" (pointer_expression "*(int *)(puVar18 + -0xc)" * (cast_expression "(int *)(puVar18 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar18 + -0x10) = iVar2;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar2" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328dc4;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328dc4" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003281a0();" (call_expression "FUN_003281a0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }" else (compound_statement "{\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }" { (expression_statement "iVar21 = iVar2 + 0x100;" (assignment_expression "iVar21 = iVar2 + 0x100" identifier = (binary_expression "iVar2 + 0x100" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -8)" * (cast_expression "(undefined4 *)(puVar18 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0xc) = iVar21;" (assignment_expression "*(int *)(puVar18 + -0xc) = iVar21" (pointer_expression "*(int *)(puVar18 + -0xc)" * (cast_expression "(int *)(puVar18 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar18 + -0x10) = iVar2;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar2" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328d93;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328d93" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003281a0();" (call_expression "FUN_003281a0()" identifier (argument_list "()" ( ))) ;) (for_statement "for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }" for ( ; (binary_expression "iVar9 != iVar21" identifier != identifier) ; (assignment_expression "iVar21 = iVar21 + 0x10" identifier = (binary_expression "iVar21 + 0x10" identifier + number_literal)) ) (compound_statement "{\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }" { (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = iVar21;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar21" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328dac;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328dac" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00328120();" (call_expression "FUN_00328120()" identifier (argument_list "()" ( ))) ;) })) }))) })) (expression_statement "iVar2 = param_1[7];" (assignment_expression "iVar2 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined4 *)(puVar18 + -4) = 0x328e61;" (assignment_expression "*(undefined4 *)(puVar18 + -4) = 0x328e61" (pointer_expression "*(undefined4 *)(puVar18 + -4)" * (cast_expression "(undefined4 *)(puVar18 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00317c50();" (call_expression "FUN_00317c50()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00328e68:\n        ppuVar4 = local_84;" statement_identifier : (expression_statement "ppuVar4 = local_84;" (assignment_expression "ppuVar4 = local_84" identifier = identifier) ;)) (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f7b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xcf;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xcf" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)ppuVar4 + -0x19cca3" (cast_expression "(int)ppuVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e86;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e86" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(int **)(puVar18 + -4) = &local_40;" (assignment_expression "*(int **)(puVar18 + -4) = &local_40" (pointer_expression "*(int **)(puVar18 + -4)" * (cast_expression "(int **)(puVar18 + -4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "*(int *)(puVar18 + -8) = param_1[9];" (assignment_expression "*(int *)(puVar18 + -8) = param_1[9]" (pointer_expression "*(int *)(puVar18 + -8)" * (cast_expression "(int *)(puVar18 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(puVar18 + -0xc) = param_1[8];" (assignment_expression "*(int *)(puVar18 + -0xc) = param_1[8]" (pointer_expression "*(int *)(puVar18 + -0xc)" * (cast_expression "(int *)(puVar18 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(puVar18 + -0x10) = iVar2 + 0x1c;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar2 + 0x1c" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "iVar2 + 0x1c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x3289a2;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x3289a2" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0023d3d0();" (call_expression "FUN_0023d3d0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }" { (expression_statement "*(int *)(puVar18 + -0x10) = local_40;" (assignment_expression "*(int *)(puVar18 + -0x10) = local_40" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x3289b8;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x3289b8" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: void write_sections(Sized_relobj_file<64,_true> * this, Layout *\n   layout, uchar * pshdrs, Output_file * of, Views * pviews) */\n\nvoid __thiscall\ngold::Sized_relobj_file<64,_true>::write_sections\n          (Sized_relobj_file<64,_true> *this,Layout *layout,uchar *pshdrs,Output_file *of,\n          Views *pviews)\n\n{\n  _Rb_tree_header *p_Var1;\n  _Base_ptr *pp_Var2;\n  int *piVar3;\n  pointer puVar4;\n  byte bVar5;\n  Output_section *pOVar6;\n  Compressed_section_map *pCVar7;\n  _Base_ptr p_Var8;\n  Input_file *pIVar9;\n  Relocatable_relocs *pRVar10;\n  Output_data *pOVar11;\n  _func_int_varargs **pp_Var12;\n  _func_int_varargs *p_Var13;\n  uint64_t uVar14;\n  undefined **ppuVar15;\n  pointer pRVar16;\n  pointer pRVar17;\n  undefined4 *******pppppppuVar18;\n  General_options *pGVar19;\n  uchar *puVar20;\n  undefined4 uVar21;\n  int iVar22;\n  uint uVar23;\n  _Base_ptr p_Var24;\n  _Base_ptr p_Var25;\n  int iVar26;\n  uint uVar27;\n  byte bVar28;\n  char cVar29;\n  int iVar30;\n  undefined1 *puVar31;\n  undefined1 *puVar32;\n  undefined4 *puVar33;\n  byte *pbVar34;\n  byte *pbVar35;\n  pointer pRVar36;\n  bool bVar37;\n  bool bVar38;\n  bool bVar39;\n  byte bVar40;\n  ulong auStack_d0 [6];\n  _Rb_tree_color a_Stack_b8 [2];\n  uint uStack_b0;\n  undefined1 auStack_ac [15];\n  char local_9d;\n  undefined4 ******local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined4 local_90;\n  undefined4 ******local_8c;\n  undefined4 local_88;\n  undefined **local_84;\n  uint local_80;\n  uint local_7c;\n  undefined4 ******local_78;\n  Parameters **local_74;\n  _Rb_tree_color local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_64;\n  int local_60;\n  uchar *local_5c;\n  uchar *local_58;\n  pointer local_54;\n  _Rb_tree_color local_50;\n  section_size_type len;\n  Read_multiple rm;\n  undefined4 ******local_34;\n  uint local_30;\n  undefined4 ******local_2c;\n  uchar *local_28;\n  \n  bVar40 = 0;\n  puVar33 = (undefined4 *)auStack_ac;\n  local_84 = &_GLOBAL_OFFSET_TABLE_;\n  rm.\n  super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n  ._M_impl._M_start = (pointer)0x0;\n  local_70 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_;\n  rm.\n  super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n  ._M_impl._M_finish = (pointer)0x0;\n  rm.\n  super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;\n  local_58 = pshdrs + 0x40;\n  if (_S_black < local_70) {\n    local_50 = _S_black;\n    local_9d = '\x01';\n    local_74 = &parameters;\n    do {\n      while( true ) {\n        local_54 = (pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>\n                   )._M_impl._M_start + local_50;\n        local_54->view = (uchar *)0x0;\n        pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start[local_50];\n        if (pOVar6 != (Output_section *)0x0) break;\nLAB_00328950:\n        local_50 = local_50 + _S_black;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar23 = *(uint *)(local_58 + 4);\n      uVar23 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18;\n      if (uVar23 == 8) goto LAB_00328950;\n      pGVar19 = (*local_74)->options_;\n      if (pGVar19 == (General_options *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e23;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      if (((((pGVar19->relocatable_).value == false) && ((pGVar19->emit_relocs_).value == false)) ||\n          ((uVar23 != 4 && (uVar23 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = pOVar6->field_0x90;\n        bVar28 = bVar5 >> 5;\n        local_5c = (uchar *)(CONCAT31(local_5c._1_3_,bVar28) & 0xffffff01);\n        if ((bVar28 & 1) == 0) {\n          bVar28 = (pOVar6->super_Output_data).field_0x1c;\n          if ((bVar28 & 4) == 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f19;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_64 = (uint)(pOVar6->super_Output_data).offset_;\n          local_60 = *(int *)((int)&(pOVar6->super_Output_data).offset_ + 4);\n          if ((bVar28 & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        else {\n          local_64 = 0;\n          local_60 = 0;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        puVar4 = (this->super_Sized_relobj<64,_true>).section_offsets_.\n                 super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                 ._M_impl._M_start + local_50;\n        local_6c = (uint)*puVar4;\n        local_68 = *(uint *)((int)puVar4 + 4);\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_88 = 0;\n          local_8c = local_78;\n          if (local_7c != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          if ((undefined4 *******)local_78 == (undefined4 *******)0x0) goto LAB_00328950;\n          pppppppuVar18 = (undefined4 *******)local_78;\n          if ((char)local_5c != '\0') {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) goto LAB_00328fac;\n            local_54->view = pOVar6->postprocessing_buffer_ + local_64;\n            if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n            uVar14 = (pOVar6->super_Output_data).address_;\n            *(undefined4 *)((int)&local_54->address + 4) =\n                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n            *(int *)&local_54->address = (int)uVar14;\n            uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            pGVar19 = (*local_74)->options_;\n            goto LAB_003288fd;\n          }\n          if (local_60 < 0) {\nLAB_00328e86:\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_6c = *(uint *)((int)&of->file_size_ + 4);\n          iVar30 = local_60 + (uint)CARRY4((uint)local_78,local_64);\n          uVar23 = (uint)(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)\n                         );\n          iVar22 = local_6c - iVar30;\n          if ((SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)) != (int)(iVar22 - uVar23) < 0)\n          goto LAB_00328e86;\n          local_54->view = of->base_ + local_64;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n          uVar21 = *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          *(int *)&local_54->address = (int)(pOVar6->super_Output_data).address_;\n          *(undefined4 *)((int)&local_54->address + 4) = uVar21;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          *(uint *)&local_54->offset = local_64;\n          local_54->view_size = (section_size_type)local_78;\n          local_54->is_input_output_view = true;\n          local_54->is_postprocessing_view = false;\n        }\n        else {\n          uVar23 = *(uint *)(local_58 + 0x24);\n          pppppppuVar18 =\n               (undefined4 *******)\n               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)\n          ;\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          pCVar7 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                   compressed_sections_;\n          if (pCVar7 == (Compressed_section_map *)0x0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;\n            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n            p_Var24 = &p_Var1->_M_header;\n            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;\n            do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);\nLAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;\n            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }\n          }\n          if (pppppppuVar18 == (undefined4 *******)0x0) goto LAB_00328950;\n          local_9c = pppppppuVar18;\n          local_98 = 0;\n          uVar23 = local_68 + CARRY4(local_6c,(uint)pppppppuVar18);\n          if (local_7c < uVar23 ||\n              local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x317;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          bVar37 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar37;\n          if ((char)local_5c == '\0') {\n            if ((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))\n            {\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = of->base_ + local_64;\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)((int)puVar33 + -4) = 0;\n            *(section_size_type **)((int)puVar33 + -8) = &len;\n            *(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;\n            *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;\n            puVar20 = Object::section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4));\n            local_78 = *(undefined4 *******)(local_58 + 8);\n            uVar23 = *(uint *)(local_58 + 0xc);\n            *(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            *(undefined4 *)((int)puVar33 + -0xc) = 1;\n            *(undefined4 *)((int)puVar33 + -0x10) = 0x40;\n            *(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;\n            *(uchar **)((int)puVar33 + -0x18) = local_5c;\n            *(section_size_type *)((int)puVar33 + -0x1c) = len;\n            *(uchar **)((int)puVar33 + -0x20) = puVar20;\n            *(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;\n            bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8));\n            puVar32 = (undefined1 *)puVar33;\n            if (!bVar37) {\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = pOVar6->postprocessing_buffer_ + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);\n            uVar27 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;\n            local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);\n            if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }\n            local_2c = pppppppuVar18;\n            local_28 = local_5c;\n            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;\n            puVar31 = (undefined1 *)((int)puVar33 + -0x10);\n            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;\n            local_34 = local_78;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;\n            std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));\nLAB_003288bb:\n            puVar32 = puVar31 + 0x10;\n          }\nLAB_003288be:\n          local_54->view = local_5c;\n          puVar33 = (undefined4 *)puVar32;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) {\nLAB_00328dcc:\n            ppuVar15 = local_84;\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n            *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          uVar27 = (uint)(pOVar6->super_Output_data).address_;\n          iVar22 = *(int *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          pGVar19 = (*local_74)->options_;\n          uVar23 = CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5);\n          *(uint *)&local_54->address = uVar27 + local_6c;\n          *(uint *)((int)&local_54->address + 4) = iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)\n          ;\nLAB_003288fd:\n          local_5c = (uchar *)(uVar23 & 0xffffff01);\n          *(uint *)&local_54->offset = local_64;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          local_54->view_size = (section_size_type)pppppppuVar18;\n          local_54->is_input_output_view = (local_6c & local_68) == 0xffffffff;\n          local_54->is_postprocessing_view = (bool)(char)local_5c;\n          if (pGVar19 == (General_options *)0x0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n        }\n        bVar38 = false;\n        bVar37 = (bool)(((pGVar19->relocatable_).value ^ 1U) & &DAT_00000008 < pppppppuVar18);\n        bVar39 = bVar37 == false;\n        if (!bVar39) {\n          iVar22 = 0xc;\n          pbVar34 = (byte *)pOVar6->name_;\n          pbVar35 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar22 == 0) break;\n            iVar22 = iVar22 + -1;\n            bVar38 = *pbVar34 < *pbVar35;\n            bVar39 = *pbVar34 == *pbVar35;\n            pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n          } while (bVar39);\n          bVar37 = false;\n          bVar38 = (!bVar38 && !bVar39) == bVar38;\n          if (!bVar38) {\n            iVar22 = 0xc;\n            pbVar34 = (byte *)pOVar6->name_;\n            pbVar35 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar22 == 0) break;\n              iVar22 = iVar22 + -1;\n              bVar37 = *pbVar34 < *pbVar35;\n              bVar38 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) {\n              bVar37 = false;\n              goto LAB_0032894a;\n            }\n          }\n          *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n          *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n          *(Layout **)((int)puVar33 + -0x10) = layout;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)((int)puVar33 + -0x14) = 0x328d4c;\n          bVar37 = Layout::is_ctors_in_init_array\n                             (*(Layout **)((int)puVar33 + -0x10),*(Relobj **)((int)puVar33 + -0xc),\n                              *(uint *)((int)puVar33 + -8));\n        }\nLAB_0032894a:\n        local_54->is_ctors_reverse_view = bVar37;\n        goto LAB_00328950;\n      }\n      if ((this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_ <= local_50) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x549;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e5c;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      pRVar10 = (((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_>\n                )._M_impl._M_start[local_50];\n      if (pRVar10 == (Relocatable_relocs *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2ce;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328efb;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      pOVar11 = pRVar10->posd_;\n      if (pOVar11 == (Output_data *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2d0;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328edd;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      bVar5 = pOVar11->field_0x1c;\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328fac;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar23 = (uint)pOVar11->offset_;\n      iVar22 = *(int *)((int)&pOVar11->offset_ + 4);\n      *(uint *)&local_54->offset = uVar23;\n      *(int *)((int)&local_54->offset + 4) = iVar22;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f8e;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar27 = (uint)pOVar11->data_size_;\n      local_54->view_size = uVar27;\n      if (iVar22 < 0) {\nLAB_00328f55:\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f70;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      local_94 = uVar27;\n      local_90 = 0;\n      local_60 = iVar22 + (uint)CARRY4(uVar27,uVar23);\n      local_64 = uVar27 + uVar23;\n      local_6c = *(uint *)((int)&of->file_size_ + 4);\n      uVar27 = (uint)((uint)of->file_size_ < uVar27 + uVar23);\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar27)) !=\n          (int)((local_6c - local_60) - uVar27) < 0) goto LAB_00328f55;\n      local_54->view = of->base_ + uVar23;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f55;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar14 = pOVar11->address_;\n      local_50 = local_50 + _S_black;\n      *(undefined4 *)((int)&local_54->address + 4) = *(undefined4 *)((int)&pOVar11->address_ + 4);\n      *(int *)&local_54->address = (int)uVar14;\n      local_54->is_input_output_view = false;\n      local_54->is_postprocessing_view = false;\n      local_54->is_ctors_reverse_view = false;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    pRVar17 = rm.\n              super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n              ._M_impl._M_finish;\n    pRVar16 = rm.\n              super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n              ._M_impl._M_start;\n    if (rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_finish !=\n        rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_start) {\n      if (local_9d == '\0') {\n        puVar33[-1] = 0;\n        uVar27 = (int)pRVar17 - (int)pRVar16 >> 4;\n        uVar23 = 0x1f;\n        if (uVar27 != 0) {\n          for (; uVar27 >> uVar23 == 0; uVar23 = uVar23 - 1) {\n          }\n        }\n        puVar33[-2] = (0x1f - (uVar23 ^ 0x1f)) * 2;\n        puVar33[-3] = pRVar17;\n        puVar33[-4] = pRVar16;\n        puVar33[-5] = 0x328d76;\n        std::\n        __introsort_loop<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                  ();\n        if ((int)pRVar17 - (int)pRVar16 < 0x101) {\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar17;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328dc4;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n        }\n        else {\n          pRVar36 = pRVar16 + 0x10;\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar36;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328d93;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n          for (; pRVar17 != pRVar36; pRVar36 = pRVar36 + 1) {\n            puVar33[-3] = 0;\n            puVar33[-4] = pRVar36;\n            puVar33[-5] = 0x328dac;\n            std::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();\n          }\n        }\n      }\n      pIVar9 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_;\n      if (pIVar9 == (Input_file *)0x0) {\n        puVar33[-1] = 0x328e61;\n        Object::input_file((Object *)*puVar33);\nLAB_00328e68:\n        ppuVar15 = local_84;\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e86;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      puVar33[-1] = &rm;\n      puVar33[-2] = *(undefined4 *)\n                     ((int)&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_ +\n                     4);\n      puVar33[-3] = (int)(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_;\n      puVar33[-4] = &pIVar9->file_;\n      puVar33[-5] = 0x3289a2;\n      File_read::read_multiple\n                ((File_read *)puVar33[-4],*(off_t *)(puVar33 + -3),(Read_multiple *)puVar33[-1]);\n    }\n    if (rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      puVar33[-4] = rm.\n                    super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                    ._M_impl._M_start;\n      puVar33[-5] = 0x3289b8;\n      operator_delete((void *)puVar33[-4]);\n    }\n  }\n  return;\n}\n\n" comment comment comment comment (declaration "void __thiscall\ngold::Sized_relobj_file<64,_true>::write_sections\n          (Sized_relobj_file<64,_true> *this,Layout *layout,uchar *pshdrs,Output_file *of,\n          Views *pviews)\n\n{\n  _Rb_tree_header *p_Var1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>::write_sections\n          (Sized_relobj_file<64,_true> *this,Layout *layout,uchar *pshdrs,Output_file *of,\n          Views *pviews)\n\n{\n  _Rb_tree_header" identifier > : : (function_declarator "write_sections\n          (Sized_relobj_file<64,_true> *this,Layout *layout,uchar *pshdrs,Output_file *of,\n          Views *pviews)" identifier (parameter_list "(Sized_relobj_file<64,_true> *this,Layout *layout,uchar *pshdrs,Output_file *of,\n          Views *pviews)" ( (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "uchar *pshdrs" type_identifier (pointer_declarator "*pshdrs" * identifier)) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * identifier)) , (parameter_declaration "Views *pviews" type_identifier (pointer_declarator "*pviews" * identifier)) ))) { identifier) (pointer_declarator "*p_Var1" * identifier) ;) (declaration "_Base_ptr *pp_Var2;" type_identifier (pointer_declarator "*pp_Var2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "pointer puVar4;" type_identifier identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "Output_section *pOVar6;" type_identifier (pointer_declarator "*pOVar6" * identifier) ;) (declaration "Compressed_section_map *pCVar7;" type_identifier (pointer_declarator "*pCVar7" * identifier) ;) (declaration "_Base_ptr p_Var8;" type_identifier identifier ;) (declaration "Input_file *pIVar9;" type_identifier (pointer_declarator "*pIVar9" * identifier) ;) (declaration "Relocatable_relocs *pRVar10;" type_identifier (pointer_declarator "*pRVar10" * identifier) ;) (declaration "Output_data *pOVar11;" type_identifier (pointer_declarator "*pOVar11" * identifier) ;) (declaration "_func_int_varargs **pp_Var12;" type_identifier (pointer_declarator "**pp_Var12" * (pointer_declarator "*pp_Var12" * identifier)) ;) (declaration "_func_int_varargs *p_Var13;" type_identifier (pointer_declarator "*p_Var13" * identifier) ;) (declaration "uint64_t uVar14;" primitive_type identifier ;) (declaration "undefined **ppuVar15;" type_identifier (pointer_declarator "**ppuVar15" * (pointer_declarator "*ppuVar15" * identifier)) ;) (declaration "pointer pRVar16;" type_identifier identifier ;) (declaration "pointer pRVar17;" type_identifier identifier ;) (declaration "undefined4 *******pppppppuVar18;" type_identifier (pointer_declarator "*******pppppppuVar18" * (pointer_declarator "******pppppppuVar18" * (pointer_declarator "*****pppppppuVar18" * (pointer_declarator "****pppppppuVar18" * (pointer_declarator "***pppppppuVar18" * (pointer_declarator "**pppppppuVar18" * (pointer_declarator "*pppppppuVar18" * identifier))))))) ;) (declaration "General_options *pGVar19;" type_identifier (pointer_declarator "*pGVar19" * identifier) ;) (declaration "uchar *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "_Base_ptr p_Var24;" type_identifier identifier ;) (declaration "_Base_ptr p_Var25;" type_identifier identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "byte bVar28;" type_identifier identifier ;) (declaration "char cVar29;" primitive_type identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "undefined1 *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "undefined1 *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "undefined4 *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "byte *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "byte *pbVar35;" type_identifier (pointer_declarator "*pbVar35" * identifier) ;) (declaration "pointer pRVar36;" type_identifier identifier ;) (declaration "bool bVar37;" primitive_type identifier ;) (declaration "bool bVar38;" primitive_type identifier ;) (declaration "bool bVar39;" primitive_type identifier ;) (declaration "byte bVar40;" type_identifier identifier ;) (declaration "ulong auStack_d0 [6];" type_identifier (array_declarator "auStack_d0 [6]" identifier [ number_literal ]) ;) (declaration "_Rb_tree_color a_Stack_b8 [2];" type_identifier (array_declarator "a_Stack_b8 [2]" identifier [ number_literal ]) ;) (declaration "uint uStack_b0;" type_identifier identifier ;) (declaration "undefined1 auStack_ac [15];" type_identifier (array_declarator "auStack_ac [15]" identifier [ number_literal ]) ;) (declaration "char local_9d;" primitive_type identifier ;) (declaration "undefined4 ******local_9c;" type_identifier (pointer_declarator "******local_9c" * (pointer_declarator "*****local_9c" * (pointer_declarator "****local_9c" * (pointer_declarator "***local_9c" * (pointer_declarator "**local_9c" * (pointer_declarator "*local_9c" * identifier)))))) ;) (declaration "undefined4 local_98;" type_identifier identifier ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "undefined4 ******local_8c;" type_identifier (pointer_declarator "******local_8c" * (pointer_declarator "*****local_8c" * (pointer_declarator "****local_8c" * (pointer_declarator "***local_8c" * (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)))))) ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "undefined **local_84;" type_identifier (pointer_declarator "**local_84" * (pointer_declarator "*local_84" * identifier)) ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "uint local_7c;" type_identifier identifier ;) (declaration "undefined4 ******local_78;" type_identifier (pointer_declarator "******local_78" * (pointer_declarator "*****local_78" * (pointer_declarator "****local_78" * (pointer_declarator "***local_78" * (pointer_declarator "**local_78" * (pointer_declarator "*local_78" * identifier)))))) ;) (declaration "Parameters **local_74;" type_identifier (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)) ;) (declaration "_Rb_tree_color local_70;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "uchar *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "uchar *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "pointer local_54;" type_identifier identifier ;) (declaration "_Rb_tree_color local_50;" type_identifier identifier ;) (declaration "section_size_type len;" type_identifier identifier ;) (declaration "Read_multiple rm;" type_identifier identifier ;) (declaration "undefined4 ******local_34;" type_identifier (pointer_declarator "******local_34" * (pointer_declarator "*****local_34" * (pointer_declarator "****local_34" * (pointer_declarator "***local_34" * (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)))))) ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "undefined4 ******local_2c;" type_identifier (pointer_declarator "******local_2c" * (pointer_declarator "*****local_2c" * (pointer_declarator "****local_2c" * (pointer_declarator "***local_2c" * (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)))))) ;) (declaration "uchar *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (expression_statement "bVar40 = 0;" (assignment_expression "bVar40 = 0" identifier = number_literal) ;) (expression_statement "puVar33 = (undefined4 *)auStack_ac;" (assignment_expression "puVar33 = (undefined4 *)auStack_ac" identifier = (cast_expression "(undefined4 *)auStack_ac" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_84 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "local_84 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (ERROR "rm.\n  super__Vector_base<gold::" (binary_expression "rm.\n  super__Vector_base<gold" (field_expression "rm.\n  super__Vector_base" identifier . field_identifier) < identifier) : :) (labeled_statement "File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n  ._M_impl._M_start = (pointer)0x0;" statement_identifier (ERROR "::Read_multiple_entry,_std::allocator<gold:" : : (comma_expression "Read_multiple_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "File_read::Read_multiple_entry>_>\n  ._M_impl._M_start = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Read_multiple_entry>_>\n  ._M_impl._M_start = (pointer)0x0;" (assignment_expression "Read_multiple_entry>_>\n  ._M_impl._M_start = (pointer)0x0" (field_expression "Read_multiple_entry>_>\n  ._M_impl._M_start" (field_expression "Read_multiple_entry>_>\n  ._M_impl" (binary_expression "Read_multiple_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (expression_statement "local_70 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_;" (assignment_expression "local_70 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_" identifier = (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (ERROR "rm.\n  super__Vector_base<gold::" (binary_expression "rm.\n  super__Vector_base<gold" (field_expression "rm.\n  super__Vector_base" identifier . field_identifier) < identifier) : :) (labeled_statement "File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n  ._M_impl._M_finish = (pointer)0x0;" statement_identifier (ERROR "::Read_multiple_entry,_std::allocator<gold:" : : (comma_expression "Read_multiple_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "File_read::Read_multiple_entry>_>\n  ._M_impl._M_finish = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Read_multiple_entry>_>\n  ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "Read_multiple_entry>_>\n  ._M_impl._M_finish = (pointer)0x0" (field_expression "Read_multiple_entry>_>\n  ._M_impl._M_finish" (field_expression "Read_multiple_entry>_>\n  ._M_impl" (binary_expression "Read_multiple_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "rm.\n  super__Vector_base<gold::" (binary_expression "rm.\n  super__Vector_base<gold" (field_expression "rm.\n  super__Vector_base" identifier . field_identifier) < identifier) : :) (labeled_statement "File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier (ERROR "::Read_multiple_entry,_std::allocator<gold:" : : (comma_expression "Read_multiple_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "File_read::Read_multiple_entry>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Read_multiple_entry>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "Read_multiple_entry>_>\n  ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "Read_multiple_entry>_>\n  ._M_impl._M_end_of_storage" (field_expression "Read_multiple_entry>_>\n  ._M_impl" (binary_expression "Read_multiple_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (expression_statement "local_58 = pshdrs + 0x40;" (assignment_expression "local_58 = pshdrs + 0x40" identifier = (binary_expression "pshdrs + 0x40" identifier + number_literal)) ;) (if_statement "if (_S_black < local_70) {\n    local_50 = _S_black;\n    local_9d = '\x01';\n    local_74 = &parameters;\n    do {\n      while( true ) {\n        local_54 = (pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>\n                   )._M_impl._M_start + local_50;\n        local_54->view = (uchar *)0x0;\n        pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start[local_50];\n        if (pOVar6 != (Output_section *)0x0) break;\nLAB_00328950:\n        local_50 = local_50 + _S_black;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar23 = *(uint *)(local_58 + 4);\n      uVar23 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18;\n      if (uVar23 == 8) goto LAB_00328950;\n      pGVar19 = (*local_74)->options_;\n      if (pGVar19 == (General_options *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e23;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      if (((((pGVar19->relocatable_).value == false) && ((pGVar19->emit_relocs_).value == false)) ||\n          ((uVar23 != 4 && (uVar23 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = pOVar6->field_0x90;\n        bVar28 = bVar5 >> 5;\n        local_5c = (uchar *)(CONCAT31(local_5c._1_3_,bVar28) & 0xffffff01);\n        if ((bVar28 & 1) == 0) {\n          bVar28 = (pOVar6->super_Output_data).field_0x1c;\n          if ((bVar28 & 4) == 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f19;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_64 = (uint)(pOVar6->super_Output_data).offset_;\n          local_60 = *(int *)((int)&(pOVar6->super_Output_data).offset_ + 4);\n          if ((bVar28 & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        else {\n          local_64 = 0;\n          local_60 = 0;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        puVar4 = (this->super_Sized_relobj<64,_true>).section_offsets_.\n                 super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                 ._M_impl._M_start + local_50;\n        local_6c = (uint)*puVar4;\n        local_68 = *(uint *)((int)puVar4 + 4);\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_88 = 0;\n          local_8c = local_78;\n          if (local_7c != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          if ((undefined4 *******)local_78 == (undefined4 *******)0x0) goto LAB_00328950;\n          pppppppuVar18 = (undefined4 *******)local_78;\n          if ((char)local_5c != '\0') {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) goto LAB_00328fac;\n            local_54->view = pOVar6->postprocessing_buffer_ + local_64;\n            if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n            uVar14 = (pOVar6->super_Output_data).address_;\n            *(undefined4 *)((int)&local_54->address + 4) =\n                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n            *(int *)&local_54->address = (int)uVar14;\n            uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            pGVar19 = (*local_74)->options_;\n            goto LAB_003288fd;\n          }\n          if (local_60 < 0) {\nLAB_00328e86:\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_6c = *(uint *)((int)&of->file_size_ + 4);\n          iVar30 = local_60 + (uint)CARRY4((uint)local_78,local_64);\n          uVar23 = (uint)(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)\n                         );\n          iVar22 = local_6c - iVar30;\n          if ((SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)) != (int)(iVar22 - uVar23) < 0)\n          goto LAB_00328e86;\n          local_54->view = of->base_ + local_64;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n          uVar21 = *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          *(int *)&local_54->address = (int)(pOVar6->super_Output_data).address_;\n          *(undefined4 *)((int)&local_54->address + 4) = uVar21;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          *(uint *)&local_54->offset = local_64;\n          local_54->view_size = (section_size_type)local_78;\n          local_54->is_input_output_view = true;\n          local_54->is_postprocessing_view = false;\n        }\n        else {\n          uVar23 = *(uint *)(local_58 + 0x24);\n          pppppppuVar18 =\n               (undefined4 *******)\n               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)\n          ;\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          pCVar7 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                   compressed_sections_;\n          if (pCVar7 == (Compressed_section_map *)0x0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;\n            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n            p_Var24 = &p_Var1->_M_header;\n            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;\n            do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);\nLAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;\n            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }\n          }\n          if (pppppppuVar18 == (undefined4 *******)0x0) goto LAB_00328950;\n          local_9c = pppppppuVar18;\n          local_98 = 0;\n          uVar23 = local_68 + CARRY4(local_6c,(uint)pppppppuVar18);\n          if (local_7c < uVar23 ||\n              local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x317;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          bVar37 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar37;\n          if ((char)local_5c == '\0') {\n            if ((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))\n            {\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = of->base_ + local_64;\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)((int)puVar33 + -4) = 0;\n            *(section_size_type **)((int)puVar33 + -8) = &len;\n            *(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;\n            *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;\n            puVar20 = Object::section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4));\n            local_78 = *(undefined4 *******)(local_58 + 8);\n            uVar23 = *(uint *)(local_58 + 0xc);\n            *(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            *(undefined4 *)((int)puVar33 + -0xc) = 1;\n            *(undefined4 *)((int)puVar33 + -0x10) = 0x40;\n            *(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;\n            *(uchar **)((int)puVar33 + -0x18) = local_5c;\n            *(section_size_type *)((int)puVar33 + -0x1c) = len;\n            *(uchar **)((int)puVar33 + -0x20) = puVar20;\n            *(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;\n            bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8));\n            puVar32 = (undefined1 *)puVar33;\n            if (!bVar37) {\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = pOVar6->postprocessing_buffer_ + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);\n            uVar27 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;\n            local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);\n            if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }\n            local_2c = pppppppuVar18;\n            local_28 = local_5c;\n            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;\n            puVar31 = (undefined1 *)((int)puVar33 + -0x10);\n            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;\n            local_34 = local_78;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;\n            std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));\nLAB_003288bb:\n            puVar32 = puVar31 + 0x10;\n          }\nLAB_003288be:\n          local_54->view = local_5c;\n          puVar33 = (undefined4 *)puVar32;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) {\nLAB_00328dcc:\n            ppuVar15 = local_84;\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n            *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          uVar27 = (uint)(pOVar6->super_Output_data).address_;\n          iVar22 = *(int *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          pGVar19 = (*local_74)->options_;\n          uVar23 = CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5);\n          *(uint *)&local_54->address = uVar27 + local_6c;\n          *(uint *)((int)&local_54->address + 4) = iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)\n          ;\nLAB_003288fd:\n          local_5c = (uchar *)(uVar23 & 0xffffff01);\n          *(uint *)&local_54->offset = local_64;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          local_54->view_size = (section_size_type)pppppppuVar18;\n          local_54->is_input_output_view = (local_6c & local_68) == 0xffffffff;\n          local_54->is_postprocessing_view = (bool)(char)local_5c;\n          if (pGVar19 == (General_options *)0x0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n        }\n        bVar38 = false;\n        bVar37 = (bool)(((pGVar19->relocatable_).value ^ 1U) & &DAT_00000008 < pppppppuVar18);\n        bVar39 = bVar37 == false;\n        if (!bVar39) {\n          iVar22 = 0xc;\n          pbVar34 = (byte *)pOVar6->name_;\n          pbVar35 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar22 == 0) break;\n            iVar22 = iVar22 + -1;\n            bVar38 = *pbVar34 < *pbVar35;\n            bVar39 = *pbVar34 == *pbVar35;\n            pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n          } while (bVar39);\n          bVar37 = false;\n          bVar38 = (!bVar38 && !bVar39) == bVar38;\n          if (!bVar38) {\n            iVar22 = 0xc;\n            pbVar34 = (byte *)pOVar6->name_;\n            pbVar35 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar22 == 0) break;\n              iVar22 = iVar22 + -1;\n              bVar37 = *pbVar34 < *pbVar35;\n              bVar38 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) {\n              bVar37 = false;\n              goto LAB_0032894a;\n            }\n          }\n          *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n          *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n          *(Layout **)((int)puVar33 + -0x10) = layout;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)((int)puVar33 + -0x14) = 0x328d4c;\n          bVar37 = Layout::is_ctors_in_init_array\n                             (*(Layout **)((int)puVar33 + -0x10),*(Relobj **)((int)puVar33 + -0xc),\n                              *(uint *)((int)puVar33 + -8));\n        }\nLAB_0032894a:\n        local_54->is_ctors_reverse_view = bVar37;\n        goto LAB_00328950;\n      }\n      if ((this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_ <= local_50) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x549;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e5c;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      pRVar10 = (((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_>\n                )._M_impl._M_start[local_50];\n      if (pRVar10 == (Relocatable_relocs *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2ce;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328efb;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      pOVar11 = pRVar10->posd_;\n      if (pOVar11 == (Output_data *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2d0;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328edd;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      bVar5 = pOVar11->field_0x1c;\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328fac;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar23 = (uint)pOVar11->offset_;\n      iVar22 = *(int *)((int)&pOVar11->offset_ + 4);\n      *(uint *)&local_54->offset = uVar23;\n      *(int *)((int)&local_54->offset + 4) = iVar22;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f8e;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar27 = (uint)pOVar11->data_size_;\n      local_54->view_size = uVar27;\n      if (iVar22 < 0) {\nLAB_00328f55:\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f70;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      local_94 = uVar27;\n      local_90 = 0;\n      local_60 = iVar22 + (uint)CARRY4(uVar27,uVar23);\n      local_64 = uVar27 + uVar23;\n      local_6c = *(uint *)((int)&of->file_size_ + 4);\n      uVar27 = (uint)((uint)of->file_size_ < uVar27 + uVar23);\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar27)) !=\n          (int)((local_6c - local_60) - uVar27) < 0) goto LAB_00328f55;\n      local_54->view = of->base_ + uVar23;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f55;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar14 = pOVar11->address_;\n      local_50 = local_50 + _S_black;\n      *(undefined4 *)((int)&local_54->address + 4) = *(undefined4 *)((int)&pOVar11->address_ + 4);\n      *(int *)&local_54->address = (int)uVar14;\n      local_54->is_input_output_view = false;\n      local_54->is_postprocessing_view = false;\n      local_54->is_ctors_reverse_view = false;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    pRVar17 = rm.\n              super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n              ._M_impl._M_finish;\n    pRVar16 = rm.\n              super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n              ._M_impl._M_start;\n    if (rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_finish !=\n        rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_start) {\n      if (local_9d == '\0') {\n        puVar33[-1] = 0;\n        uVar27 = (int)pRVar17 - (int)pRVar16 >> 4;\n        uVar23 = 0x1f;\n        if (uVar27 != 0) {\n          for (; uVar27 >> uVar23 == 0; uVar23 = uVar23 - 1) {\n          }\n        }\n        puVar33[-2] = (0x1f - (uVar23 ^ 0x1f)) * 2;\n        puVar33[-3] = pRVar17;\n        puVar33[-4] = pRVar16;\n        puVar33[-5] = 0x328d76;\n        std::\n        __introsort_loop<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                  ();\n        if ((int)pRVar17 - (int)pRVar16 < 0x101) {\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar17;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328dc4;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n        }\n        else {\n          pRVar36 = pRVar16 + 0x10;\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar36;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328d93;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n          for (; pRVar17 != pRVar36; pRVar36 = pRVar36 + 1) {\n            puVar33[-3] = 0;\n            puVar33[-4] = pRVar36;\n            puVar33[-5] = 0x328dac;\n            std::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();\n          }\n        }\n      }\n      pIVar9 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_;\n      if (pIVar9 == (Input_file *)0x0) {\n        puVar33[-1] = 0x328e61;\n        Object::input_file((Object *)*puVar33);\nLAB_00328e68:\n        ppuVar15 = local_84;\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e86;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      puVar33[-1] = &rm;\n      puVar33[-2] = *(undefined4 *)\n                     ((int)&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_ +\n                     4);\n      puVar33[-3] = (int)(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_;\n      puVar33[-4] = &pIVar9->file_;\n      puVar33[-5] = 0x3289a2;\n      File_read::read_multiple\n                ((File_read *)puVar33[-4],*(off_t *)(puVar33 + -3),(Read_multiple *)puVar33[-1]);\n    }\n    if (rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      puVar33[-4] = rm.\n                    super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                    ._M_impl._M_start;\n      puVar33[-5] = 0x3289b8;\n      operator_delete((void *)puVar33[-4]);\n    }\n  }" if (parenthesized_expression "(_S_black < local_70)" ( (binary_expression "_S_black < local_70" identifier < identifier) )) (compound_statement "{\n    local_50 = _S_black;\n    local_9d = '\x01';\n    local_74 = &parameters;\n    do {\n      while( true ) {\n        local_54 = (pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>\n                   )._M_impl._M_start + local_50;\n        local_54->view = (uchar *)0x0;\n        pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start[local_50];\n        if (pOVar6 != (Output_section *)0x0) break;\nLAB_00328950:\n        local_50 = local_50 + _S_black;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar23 = *(uint *)(local_58 + 4);\n      uVar23 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18;\n      if (uVar23 == 8) goto LAB_00328950;\n      pGVar19 = (*local_74)->options_;\n      if (pGVar19 == (General_options *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e23;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      if (((((pGVar19->relocatable_).value == false) && ((pGVar19->emit_relocs_).value == false)) ||\n          ((uVar23 != 4 && (uVar23 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = pOVar6->field_0x90;\n        bVar28 = bVar5 >> 5;\n        local_5c = (uchar *)(CONCAT31(local_5c._1_3_,bVar28) & 0xffffff01);\n        if ((bVar28 & 1) == 0) {\n          bVar28 = (pOVar6->super_Output_data).field_0x1c;\n          if ((bVar28 & 4) == 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f19;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_64 = (uint)(pOVar6->super_Output_data).offset_;\n          local_60 = *(int *)((int)&(pOVar6->super_Output_data).offset_ + 4);\n          if ((bVar28 & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        else {\n          local_64 = 0;\n          local_60 = 0;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        puVar4 = (this->super_Sized_relobj<64,_true>).section_offsets_.\n                 super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                 ._M_impl._M_start + local_50;\n        local_6c = (uint)*puVar4;\n        local_68 = *(uint *)((int)puVar4 + 4);\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_88 = 0;\n          local_8c = local_78;\n          if (local_7c != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          if ((undefined4 *******)local_78 == (undefined4 *******)0x0) goto LAB_00328950;\n          pppppppuVar18 = (undefined4 *******)local_78;\n          if ((char)local_5c != '\0') {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) goto LAB_00328fac;\n            local_54->view = pOVar6->postprocessing_buffer_ + local_64;\n            if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n            uVar14 = (pOVar6->super_Output_data).address_;\n            *(undefined4 *)((int)&local_54->address + 4) =\n                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n            *(int *)&local_54->address = (int)uVar14;\n            uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            pGVar19 = (*local_74)->options_;\n            goto LAB_003288fd;\n          }\n          if (local_60 < 0) {\nLAB_00328e86:\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_6c = *(uint *)((int)&of->file_size_ + 4);\n          iVar30 = local_60 + (uint)CARRY4((uint)local_78,local_64);\n          uVar23 = (uint)(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)\n                         );\n          iVar22 = local_6c - iVar30;\n          if ((SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)) != (int)(iVar22 - uVar23) < 0)\n          goto LAB_00328e86;\n          local_54->view = of->base_ + local_64;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n          uVar21 = *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          *(int *)&local_54->address = (int)(pOVar6->super_Output_data).address_;\n          *(undefined4 *)((int)&local_54->address + 4) = uVar21;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          *(uint *)&local_54->offset = local_64;\n          local_54->view_size = (section_size_type)local_78;\n          local_54->is_input_output_view = true;\n          local_54->is_postprocessing_view = false;\n        }\n        else {\n          uVar23 = *(uint *)(local_58 + 0x24);\n          pppppppuVar18 =\n               (undefined4 *******)\n               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)\n          ;\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          pCVar7 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                   compressed_sections_;\n          if (pCVar7 == (Compressed_section_map *)0x0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;\n            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n            p_Var24 = &p_Var1->_M_header;\n            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;\n            do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);\nLAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;\n            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }\n          }\n          if (pppppppuVar18 == (undefined4 *******)0x0) goto LAB_00328950;\n          local_9c = pppppppuVar18;\n          local_98 = 0;\n          uVar23 = local_68 + CARRY4(local_6c,(uint)pppppppuVar18);\n          if (local_7c < uVar23 ||\n              local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x317;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          bVar37 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar37;\n          if ((char)local_5c == '\0') {\n            if ((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))\n            {\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = of->base_ + local_64;\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)((int)puVar33 + -4) = 0;\n            *(section_size_type **)((int)puVar33 + -8) = &len;\n            *(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;\n            *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;\n            puVar20 = Object::section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4));\n            local_78 = *(undefined4 *******)(local_58 + 8);\n            uVar23 = *(uint *)(local_58 + 0xc);\n            *(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            *(undefined4 *)((int)puVar33 + -0xc) = 1;\n            *(undefined4 *)((int)puVar33 + -0x10) = 0x40;\n            *(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;\n            *(uchar **)((int)puVar33 + -0x18) = local_5c;\n            *(section_size_type *)((int)puVar33 + -0x1c) = len;\n            *(uchar **)((int)puVar33 + -0x20) = puVar20;\n            *(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;\n            bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8));\n            puVar32 = (undefined1 *)puVar33;\n            if (!bVar37) {\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = pOVar6->postprocessing_buffer_ + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);\n            uVar27 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;\n            local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);\n            if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }\n            local_2c = pppppppuVar18;\n            local_28 = local_5c;\n            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;\n            puVar31 = (undefined1 *)((int)puVar33 + -0x10);\n            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;\n            local_34 = local_78;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;\n            std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));\nLAB_003288bb:\n            puVar32 = puVar31 + 0x10;\n          }\nLAB_003288be:\n          local_54->view = local_5c;\n          puVar33 = (undefined4 *)puVar32;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) {\nLAB_00328dcc:\n            ppuVar15 = local_84;\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n            *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          uVar27 = (uint)(pOVar6->super_Output_data).address_;\n          iVar22 = *(int *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          pGVar19 = (*local_74)->options_;\n          uVar23 = CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5);\n          *(uint *)&local_54->address = uVar27 + local_6c;\n          *(uint *)((int)&local_54->address + 4) = iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)\n          ;\nLAB_003288fd:\n          local_5c = (uchar *)(uVar23 & 0xffffff01);\n          *(uint *)&local_54->offset = local_64;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          local_54->view_size = (section_size_type)pppppppuVar18;\n          local_54->is_input_output_view = (local_6c & local_68) == 0xffffffff;\n          local_54->is_postprocessing_view = (bool)(char)local_5c;\n          if (pGVar19 == (General_options *)0x0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n        }\n        bVar38 = false;\n        bVar37 = (bool)(((pGVar19->relocatable_).value ^ 1U) & &DAT_00000008 < pppppppuVar18);\n        bVar39 = bVar37 == false;\n        if (!bVar39) {\n          iVar22 = 0xc;\n          pbVar34 = (byte *)pOVar6->name_;\n          pbVar35 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar22 == 0) break;\n            iVar22 = iVar22 + -1;\n            bVar38 = *pbVar34 < *pbVar35;\n            bVar39 = *pbVar34 == *pbVar35;\n            pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n          } while (bVar39);\n          bVar37 = false;\n          bVar38 = (!bVar38 && !bVar39) == bVar38;\n          if (!bVar38) {\n            iVar22 = 0xc;\n            pbVar34 = (byte *)pOVar6->name_;\n            pbVar35 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar22 == 0) break;\n              iVar22 = iVar22 + -1;\n              bVar37 = *pbVar34 < *pbVar35;\n              bVar38 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) {\n              bVar37 = false;\n              goto LAB_0032894a;\n            }\n          }\n          *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n          *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n          *(Layout **)((int)puVar33 + -0x10) = layout;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)((int)puVar33 + -0x14) = 0x328d4c;\n          bVar37 = Layout::is_ctors_in_init_array\n                             (*(Layout **)((int)puVar33 + -0x10),*(Relobj **)((int)puVar33 + -0xc),\n                              *(uint *)((int)puVar33 + -8));\n        }\nLAB_0032894a:\n        local_54->is_ctors_reverse_view = bVar37;\n        goto LAB_00328950;\n      }\n      if ((this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_ <= local_50) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x549;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e5c;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      pRVar10 = (((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_>\n                )._M_impl._M_start[local_50];\n      if (pRVar10 == (Relocatable_relocs *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2ce;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328efb;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      pOVar11 = pRVar10->posd_;\n      if (pOVar11 == (Output_data *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2d0;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328edd;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      bVar5 = pOVar11->field_0x1c;\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328fac;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar23 = (uint)pOVar11->offset_;\n      iVar22 = *(int *)((int)&pOVar11->offset_ + 4);\n      *(uint *)&local_54->offset = uVar23;\n      *(int *)((int)&local_54->offset + 4) = iVar22;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f8e;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar27 = (uint)pOVar11->data_size_;\n      local_54->view_size = uVar27;\n      if (iVar22 < 0) {\nLAB_00328f55:\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f70;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      local_94 = uVar27;\n      local_90 = 0;\n      local_60 = iVar22 + (uint)CARRY4(uVar27,uVar23);\n      local_64 = uVar27 + uVar23;\n      local_6c = *(uint *)((int)&of->file_size_ + 4);\n      uVar27 = (uint)((uint)of->file_size_ < uVar27 + uVar23);\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar27)) !=\n          (int)((local_6c - local_60) - uVar27) < 0) goto LAB_00328f55;\n      local_54->view = of->base_ + uVar23;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f55;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar14 = pOVar11->address_;\n      local_50 = local_50 + _S_black;\n      *(undefined4 *)((int)&local_54->address + 4) = *(undefined4 *)((int)&pOVar11->address_ + 4);\n      *(int *)&local_54->address = (int)uVar14;\n      local_54->is_input_output_view = false;\n      local_54->is_postprocessing_view = false;\n      local_54->is_ctors_reverse_view = false;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    pRVar17 = rm.\n              super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n              ._M_impl._M_finish;\n    pRVar16 = rm.\n              super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n              ._M_impl._M_start;\n    if (rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_finish !=\n        rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_start) {\n      if (local_9d == '\0') {\n        puVar33[-1] = 0;\n        uVar27 = (int)pRVar17 - (int)pRVar16 >> 4;\n        uVar23 = 0x1f;\n        if (uVar27 != 0) {\n          for (; uVar27 >> uVar23 == 0; uVar23 = uVar23 - 1) {\n          }\n        }\n        puVar33[-2] = (0x1f - (uVar23 ^ 0x1f)) * 2;\n        puVar33[-3] = pRVar17;\n        puVar33[-4] = pRVar16;\n        puVar33[-5] = 0x328d76;\n        std::\n        __introsort_loop<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                  ();\n        if ((int)pRVar17 - (int)pRVar16 < 0x101) {\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar17;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328dc4;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n        }\n        else {\n          pRVar36 = pRVar16 + 0x10;\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar36;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328d93;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n          for (; pRVar17 != pRVar36; pRVar36 = pRVar36 + 1) {\n            puVar33[-3] = 0;\n            puVar33[-4] = pRVar36;\n            puVar33[-5] = 0x328dac;\n            std::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();\n          }\n        }\n      }\n      pIVar9 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_;\n      if (pIVar9 == (Input_file *)0x0) {\n        puVar33[-1] = 0x328e61;\n        Object::input_file((Object *)*puVar33);\nLAB_00328e68:\n        ppuVar15 = local_84;\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e86;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      puVar33[-1] = &rm;\n      puVar33[-2] = *(undefined4 *)\n                     ((int)&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_ +\n                     4);\n      puVar33[-3] = (int)(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_;\n      puVar33[-4] = &pIVar9->file_;\n      puVar33[-5] = 0x3289a2;\n      File_read::read_multiple\n                ((File_read *)puVar33[-4],*(off_t *)(puVar33 + -3),(Read_multiple *)puVar33[-1]);\n    }\n    if (rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      puVar33[-4] = rm.\n                    super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                    ._M_impl._M_start;\n      puVar33[-5] = 0x3289b8;\n      operator_delete((void *)puVar33[-4]);\n    }\n  }" { (expression_statement "local_50 = _S_black;" (assignment_expression "local_50 = _S_black" identifier = identifier) ;) (expression_statement "local_9d = '\x01';" (assignment_expression "local_9d = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_74 = &parameters;" (assignment_expression "local_74 = &parameters" identifier = (pointer_expression "&parameters" & identifier)) ;) (do_statement "do {\n      while( true ) {\n        local_54 = (pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>\n                   )._M_impl._M_start + local_50;\n        local_54->view = (uchar *)0x0;\n        pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start[local_50];\n        if (pOVar6 != (Output_section *)0x0) break;\nLAB_00328950:\n        local_50 = local_50 + _S_black;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar23 = *(uint *)(local_58 + 4);\n      uVar23 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18;\n      if (uVar23 == 8) goto LAB_00328950;\n      pGVar19 = (*local_74)->options_;\n      if (pGVar19 == (General_options *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e23;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      if (((((pGVar19->relocatable_).value == false) && ((pGVar19->emit_relocs_).value == false)) ||\n          ((uVar23 != 4 && (uVar23 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = pOVar6->field_0x90;\n        bVar28 = bVar5 >> 5;\n        local_5c = (uchar *)(CONCAT31(local_5c._1_3_,bVar28) & 0xffffff01);\n        if ((bVar28 & 1) == 0) {\n          bVar28 = (pOVar6->super_Output_data).field_0x1c;\n          if ((bVar28 & 4) == 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f19;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_64 = (uint)(pOVar6->super_Output_data).offset_;\n          local_60 = *(int *)((int)&(pOVar6->super_Output_data).offset_ + 4);\n          if ((bVar28 & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        else {\n          local_64 = 0;\n          local_60 = 0;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        puVar4 = (this->super_Sized_relobj<64,_true>).section_offsets_.\n                 super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                 ._M_impl._M_start + local_50;\n        local_6c = (uint)*puVar4;\n        local_68 = *(uint *)((int)puVar4 + 4);\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_88 = 0;\n          local_8c = local_78;\n          if (local_7c != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          if ((undefined4 *******)local_78 == (undefined4 *******)0x0) goto LAB_00328950;\n          pppppppuVar18 = (undefined4 *******)local_78;\n          if ((char)local_5c != '\0') {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) goto LAB_00328fac;\n            local_54->view = pOVar6->postprocessing_buffer_ + local_64;\n            if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n            uVar14 = (pOVar6->super_Output_data).address_;\n            *(undefined4 *)((int)&local_54->address + 4) =\n                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n            *(int *)&local_54->address = (int)uVar14;\n            uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            pGVar19 = (*local_74)->options_;\n            goto LAB_003288fd;\n          }\n          if (local_60 < 0) {\nLAB_00328e86:\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_6c = *(uint *)((int)&of->file_size_ + 4);\n          iVar30 = local_60 + (uint)CARRY4((uint)local_78,local_64);\n          uVar23 = (uint)(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)\n                         );\n          iVar22 = local_6c - iVar30;\n          if ((SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)) != (int)(iVar22 - uVar23) < 0)\n          goto LAB_00328e86;\n          local_54->view = of->base_ + local_64;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n          uVar21 = *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          *(int *)&local_54->address = (int)(pOVar6->super_Output_data).address_;\n          *(undefined4 *)((int)&local_54->address + 4) = uVar21;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          *(uint *)&local_54->offset = local_64;\n          local_54->view_size = (section_size_type)local_78;\n          local_54->is_input_output_view = true;\n          local_54->is_postprocessing_view = false;\n        }\n        else {\n          uVar23 = *(uint *)(local_58 + 0x24);\n          pppppppuVar18 =\n               (undefined4 *******)\n               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)\n          ;\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          pCVar7 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                   compressed_sections_;\n          if (pCVar7 == (Compressed_section_map *)0x0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;\n            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n            p_Var24 = &p_Var1->_M_header;\n            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;\n            do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);\nLAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;\n            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }\n          }\n          if (pppppppuVar18 == (undefined4 *******)0x0) goto LAB_00328950;\n          local_9c = pppppppuVar18;\n          local_98 = 0;\n          uVar23 = local_68 + CARRY4(local_6c,(uint)pppppppuVar18);\n          if (local_7c < uVar23 ||\n              local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x317;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          bVar37 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar37;\n          if ((char)local_5c == '\0') {\n            if ((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))\n            {\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = of->base_ + local_64;\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)((int)puVar33 + -4) = 0;\n            *(section_size_type **)((int)puVar33 + -8) = &len;\n            *(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;\n            *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;\n            puVar20 = Object::section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4));\n            local_78 = *(undefined4 *******)(local_58 + 8);\n            uVar23 = *(uint *)(local_58 + 0xc);\n            *(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            *(undefined4 *)((int)puVar33 + -0xc) = 1;\n            *(undefined4 *)((int)puVar33 + -0x10) = 0x40;\n            *(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;\n            *(uchar **)((int)puVar33 + -0x18) = local_5c;\n            *(section_size_type *)((int)puVar33 + -0x1c) = len;\n            *(uchar **)((int)puVar33 + -0x20) = puVar20;\n            *(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;\n            bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8));\n            puVar32 = (undefined1 *)puVar33;\n            if (!bVar37) {\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = pOVar6->postprocessing_buffer_ + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);\n            uVar27 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;\n            local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);\n            if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }\n            local_2c = pppppppuVar18;\n            local_28 = local_5c;\n            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;\n            puVar31 = (undefined1 *)((int)puVar33 + -0x10);\n            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;\n            local_34 = local_78;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;\n            std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));\nLAB_003288bb:\n            puVar32 = puVar31 + 0x10;\n          }\nLAB_003288be:\n          local_54->view = local_5c;\n          puVar33 = (undefined4 *)puVar32;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) {\nLAB_00328dcc:\n            ppuVar15 = local_84;\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n            *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          uVar27 = (uint)(pOVar6->super_Output_data).address_;\n          iVar22 = *(int *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          pGVar19 = (*local_74)->options_;\n          uVar23 = CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5);\n          *(uint *)&local_54->address = uVar27 + local_6c;\n          *(uint *)((int)&local_54->address + 4) = iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)\n          ;\nLAB_003288fd:\n          local_5c = (uchar *)(uVar23 & 0xffffff01);\n          *(uint *)&local_54->offset = local_64;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          local_54->view_size = (section_size_type)pppppppuVar18;\n          local_54->is_input_output_view = (local_6c & local_68) == 0xffffffff;\n          local_54->is_postprocessing_view = (bool)(char)local_5c;\n          if (pGVar19 == (General_options *)0x0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n        }\n        bVar38 = false;\n        bVar37 = (bool)(((pGVar19->relocatable_).value ^ 1U) & &DAT_00000008 < pppppppuVar18);\n        bVar39 = bVar37 == false;\n        if (!bVar39) {\n          iVar22 = 0xc;\n          pbVar34 = (byte *)pOVar6->name_;\n          pbVar35 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar22 == 0) break;\n            iVar22 = iVar22 + -1;\n            bVar38 = *pbVar34 < *pbVar35;\n            bVar39 = *pbVar34 == *pbVar35;\n            pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n          } while (bVar39);\n          bVar37 = false;\n          bVar38 = (!bVar38 && !bVar39) == bVar38;\n          if (!bVar38) {\n            iVar22 = 0xc;\n            pbVar34 = (byte *)pOVar6->name_;\n            pbVar35 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar22 == 0) break;\n              iVar22 = iVar22 + -1;\n              bVar37 = *pbVar34 < *pbVar35;\n              bVar38 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) {\n              bVar37 = false;\n              goto LAB_0032894a;\n            }\n          }\n          *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n          *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n          *(Layout **)((int)puVar33 + -0x10) = layout;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)((int)puVar33 + -0x14) = 0x328d4c;\n          bVar37 = Layout::is_ctors_in_init_array\n                             (*(Layout **)((int)puVar33 + -0x10),*(Relobj **)((int)puVar33 + -0xc),\n                              *(uint *)((int)puVar33 + -8));\n        }\nLAB_0032894a:\n        local_54->is_ctors_reverse_view = bVar37;\n        goto LAB_00328950;\n      }\n      if ((this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_ <= local_50) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x549;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e5c;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      pRVar10 = (((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_>\n                )._M_impl._M_start[local_50];\n      if (pRVar10 == (Relocatable_relocs *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2ce;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328efb;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      pOVar11 = pRVar10->posd_;\n      if (pOVar11 == (Output_data *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2d0;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328edd;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      bVar5 = pOVar11->field_0x1c;\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328fac;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar23 = (uint)pOVar11->offset_;\n      iVar22 = *(int *)((int)&pOVar11->offset_ + 4);\n      *(uint *)&local_54->offset = uVar23;\n      *(int *)((int)&local_54->offset + 4) = iVar22;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f8e;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar27 = (uint)pOVar11->data_size_;\n      local_54->view_size = uVar27;\n      if (iVar22 < 0) {\nLAB_00328f55:\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f70;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      local_94 = uVar27;\n      local_90 = 0;\n      local_60 = iVar22 + (uint)CARRY4(uVar27,uVar23);\n      local_64 = uVar27 + uVar23;\n      local_6c = *(uint *)((int)&of->file_size_ + 4);\n      uVar27 = (uint)((uint)of->file_size_ < uVar27 + uVar23);\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar27)) !=\n          (int)((local_6c - local_60) - uVar27) < 0) goto LAB_00328f55;\n      local_54->view = of->base_ + uVar23;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f55;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar14 = pOVar11->address_;\n      local_50 = local_50 + _S_black;\n      *(undefined4 *)((int)&local_54->address + 4) = *(undefined4 *)((int)&pOVar11->address_ + 4);\n      *(int *)&local_54->address = (int)uVar14;\n      local_54->is_input_output_view = false;\n      local_54->is_postprocessing_view = false;\n      local_54->is_ctors_reverse_view = false;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);" do (compound_statement "{\n      while( true ) {\n        local_54 = (pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>\n                   )._M_impl._M_start + local_50;\n        local_54->view = (uchar *)0x0;\n        pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start[local_50];\n        if (pOVar6 != (Output_section *)0x0) break;\nLAB_00328950:\n        local_50 = local_50 + _S_black;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar23 = *(uint *)(local_58 + 4);\n      uVar23 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18;\n      if (uVar23 == 8) goto LAB_00328950;\n      pGVar19 = (*local_74)->options_;\n      if (pGVar19 == (General_options *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e23;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      if (((((pGVar19->relocatable_).value == false) && ((pGVar19->emit_relocs_).value == false)) ||\n          ((uVar23 != 4 && (uVar23 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = pOVar6->field_0x90;\n        bVar28 = bVar5 >> 5;\n        local_5c = (uchar *)(CONCAT31(local_5c._1_3_,bVar28) & 0xffffff01);\n        if ((bVar28 & 1) == 0) {\n          bVar28 = (pOVar6->super_Output_data).field_0x1c;\n          if ((bVar28 & 4) == 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f19;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_64 = (uint)(pOVar6->super_Output_data).offset_;\n          local_60 = *(int *)((int)&(pOVar6->super_Output_data).offset_ + 4);\n          if ((bVar28 & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        else {\n          local_64 = 0;\n          local_60 = 0;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        puVar4 = (this->super_Sized_relobj<64,_true>).section_offsets_.\n                 super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                 ._M_impl._M_start + local_50;\n        local_6c = (uint)*puVar4;\n        local_68 = *(uint *)((int)puVar4 + 4);\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_88 = 0;\n          local_8c = local_78;\n          if (local_7c != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          if ((undefined4 *******)local_78 == (undefined4 *******)0x0) goto LAB_00328950;\n          pppppppuVar18 = (undefined4 *******)local_78;\n          if ((char)local_5c != '\0') {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) goto LAB_00328fac;\n            local_54->view = pOVar6->postprocessing_buffer_ + local_64;\n            if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n            uVar14 = (pOVar6->super_Output_data).address_;\n            *(undefined4 *)((int)&local_54->address + 4) =\n                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n            *(int *)&local_54->address = (int)uVar14;\n            uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            pGVar19 = (*local_74)->options_;\n            goto LAB_003288fd;\n          }\n          if (local_60 < 0) {\nLAB_00328e86:\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_6c = *(uint *)((int)&of->file_size_ + 4);\n          iVar30 = local_60 + (uint)CARRY4((uint)local_78,local_64);\n          uVar23 = (uint)(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)\n                         );\n          iVar22 = local_6c - iVar30;\n          if ((SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)) != (int)(iVar22 - uVar23) < 0)\n          goto LAB_00328e86;\n          local_54->view = of->base_ + local_64;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n          uVar21 = *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          *(int *)&local_54->address = (int)(pOVar6->super_Output_data).address_;\n          *(undefined4 *)((int)&local_54->address + 4) = uVar21;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          *(uint *)&local_54->offset = local_64;\n          local_54->view_size = (section_size_type)local_78;\n          local_54->is_input_output_view = true;\n          local_54->is_postprocessing_view = false;\n        }\n        else {\n          uVar23 = *(uint *)(local_58 + 0x24);\n          pppppppuVar18 =\n               (undefined4 *******)\n               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)\n          ;\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          pCVar7 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                   compressed_sections_;\n          if (pCVar7 == (Compressed_section_map *)0x0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;\n            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n            p_Var24 = &p_Var1->_M_header;\n            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;\n            do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);\nLAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;\n            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }\n          }\n          if (pppppppuVar18 == (undefined4 *******)0x0) goto LAB_00328950;\n          local_9c = pppppppuVar18;\n          local_98 = 0;\n          uVar23 = local_68 + CARRY4(local_6c,(uint)pppppppuVar18);\n          if (local_7c < uVar23 ||\n              local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x317;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          bVar37 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar37;\n          if ((char)local_5c == '\0') {\n            if ((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))\n            {\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = of->base_ + local_64;\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)((int)puVar33 + -4) = 0;\n            *(section_size_type **)((int)puVar33 + -8) = &len;\n            *(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;\n            *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;\n            puVar20 = Object::section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4));\n            local_78 = *(undefined4 *******)(local_58 + 8);\n            uVar23 = *(uint *)(local_58 + 0xc);\n            *(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            *(undefined4 *)((int)puVar33 + -0xc) = 1;\n            *(undefined4 *)((int)puVar33 + -0x10) = 0x40;\n            *(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;\n            *(uchar **)((int)puVar33 + -0x18) = local_5c;\n            *(section_size_type *)((int)puVar33 + -0x1c) = len;\n            *(uchar **)((int)puVar33 + -0x20) = puVar20;\n            *(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;\n            bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8));\n            puVar32 = (undefined1 *)puVar33;\n            if (!bVar37) {\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = pOVar6->postprocessing_buffer_ + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);\n            uVar27 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;\n            local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);\n            if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }\n            local_2c = pppppppuVar18;\n            local_28 = local_5c;\n            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;\n            puVar31 = (undefined1 *)((int)puVar33 + -0x10);\n            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;\n            local_34 = local_78;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;\n            std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));\nLAB_003288bb:\n            puVar32 = puVar31 + 0x10;\n          }\nLAB_003288be:\n          local_54->view = local_5c;\n          puVar33 = (undefined4 *)puVar32;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) {\nLAB_00328dcc:\n            ppuVar15 = local_84;\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n            *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          uVar27 = (uint)(pOVar6->super_Output_data).address_;\n          iVar22 = *(int *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          pGVar19 = (*local_74)->options_;\n          uVar23 = CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5);\n          *(uint *)&local_54->address = uVar27 + local_6c;\n          *(uint *)((int)&local_54->address + 4) = iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)\n          ;\nLAB_003288fd:\n          local_5c = (uchar *)(uVar23 & 0xffffff01);\n          *(uint *)&local_54->offset = local_64;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          local_54->view_size = (section_size_type)pppppppuVar18;\n          local_54->is_input_output_view = (local_6c & local_68) == 0xffffffff;\n          local_54->is_postprocessing_view = (bool)(char)local_5c;\n          if (pGVar19 == (General_options *)0x0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n        }\n        bVar38 = false;\n        bVar37 = (bool)(((pGVar19->relocatable_).value ^ 1U) & &DAT_00000008 < pppppppuVar18);\n        bVar39 = bVar37 == false;\n        if (!bVar39) {\n          iVar22 = 0xc;\n          pbVar34 = (byte *)pOVar6->name_;\n          pbVar35 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar22 == 0) break;\n            iVar22 = iVar22 + -1;\n            bVar38 = *pbVar34 < *pbVar35;\n            bVar39 = *pbVar34 == *pbVar35;\n            pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n          } while (bVar39);\n          bVar37 = false;\n          bVar38 = (!bVar38 && !bVar39) == bVar38;\n          if (!bVar38) {\n            iVar22 = 0xc;\n            pbVar34 = (byte *)pOVar6->name_;\n            pbVar35 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar22 == 0) break;\n              iVar22 = iVar22 + -1;\n              bVar37 = *pbVar34 < *pbVar35;\n              bVar38 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) {\n              bVar37 = false;\n              goto LAB_0032894a;\n            }\n          }\n          *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n          *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n          *(Layout **)((int)puVar33 + -0x10) = layout;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)((int)puVar33 + -0x14) = 0x328d4c;\n          bVar37 = Layout::is_ctors_in_init_array\n                             (*(Layout **)((int)puVar33 + -0x10),*(Relobj **)((int)puVar33 + -0xc),\n                              *(uint *)((int)puVar33 + -8));\n        }\nLAB_0032894a:\n        local_54->is_ctors_reverse_view = bVar37;\n        goto LAB_00328950;\n      }\n      if ((this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_ <= local_50) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x549;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e5c;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      pRVar10 = (((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_>\n                )._M_impl._M_start[local_50];\n      if (pRVar10 == (Relocatable_relocs *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2ce;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328efb;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      pOVar11 = pRVar10->posd_;\n      if (pOVar11 == (Output_data *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2d0;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328edd;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      bVar5 = pOVar11->field_0x1c;\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328fac;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar23 = (uint)pOVar11->offset_;\n      iVar22 = *(int *)((int)&pOVar11->offset_ + 4);\n      *(uint *)&local_54->offset = uVar23;\n      *(int *)((int)&local_54->offset + 4) = iVar22;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f8e;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar27 = (uint)pOVar11->data_size_;\n      local_54->view_size = uVar27;\n      if (iVar22 < 0) {\nLAB_00328f55:\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f70;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      local_94 = uVar27;\n      local_90 = 0;\n      local_60 = iVar22 + (uint)CARRY4(uVar27,uVar23);\n      local_64 = uVar27 + uVar23;\n      local_6c = *(uint *)((int)&of->file_size_ + 4);\n      uVar27 = (uint)((uint)of->file_size_ < uVar27 + uVar23);\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar27)) !=\n          (int)((local_6c - local_60) - uVar27) < 0) goto LAB_00328f55;\n      local_54->view = of->base_ + uVar23;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f55;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      uVar14 = pOVar11->address_;\n      local_50 = local_50 + _S_black;\n      *(undefined4 *)((int)&local_54->address + 4) = *(undefined4 *)((int)&pOVar11->address_ + 4);\n      *(int *)&local_54->address = (int)uVar14;\n      local_54->is_input_output_view = false;\n      local_54->is_postprocessing_view = false;\n      local_54->is_ctors_reverse_view = false;\n      local_58 = local_58 + 0x40;\n    }" { (while_statement "while( true ) {\n        local_54 = (pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>\n                   )._M_impl._M_start + local_50;\n        local_54->view = (uchar *)0x0;\n        pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start[local_50];\n        if (pOVar6 != (Output_section *)0x0) break;\nLAB_00328950:\n        local_50 = local_50 + _S_black;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        local_54 = (pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>\n                   )._M_impl._M_start + local_50;\n        local_54->view = (uchar *)0x0;\n        pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start[local_50];\n        if (pOVar6 != (Output_section *)0x0) break;\nLAB_00328950:\n        local_50 = local_50 + _S_black;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }" { (expression_statement "local_54 = (pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>\n                   )._M_impl._M_start + local_50;" (assignment_expression "local_54 = (pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>\n                   )._M_impl._M_start + local_50" identifier = (binary_expression "(pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>\n                   )._M_impl._M_start + local_50" (field_expression "(pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>\n                   )._M_impl._M_start" (field_expression "(pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>\n                   )._M_impl" (parenthesized_expression "(pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::Sized_relobj_file<64,_true>::View_size>_>\n                   )" ( (ERROR "pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std::allocator<gold::" (comma_expression "pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64,_true>::View_size,_std" (binary_expression "pviews->\n                   super__Vector_base<gold::Sized_relobj_file<64" (binary_expression "pviews->\n                   super__Vector_base<gold" (field_expression "pviews->\n                   super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Sized_relobj_file" : : identifier) < number_literal) , (comma_expression "_true>::View_size,_std" (binary_expression "_true>::View_size" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Sized_relobj_file<64,_true>::View_size>_" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_true>::View_size>_" (binary_expression "_true>::View_size" identifier > (ERROR "::" : :) identifier) > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier) + identifier)) ;) (expression_statement "local_54->view = (uchar *)0x0;" (assignment_expression "local_54->view = (uchar *)0x0" (field_expression "local_54->view" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start[local_50];" (subscript_expression "pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start[local_50]" (field_expression "pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start" (field_expression "pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl" (binary_expression "pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold::Output_section*,_std" (assignment_expression "pOVar6 = (this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold" identifier = (binary_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base<gold" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_.\n                 super__Vector_base" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.output_sections_" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ identifier ]) ;) (if_statement "if (pOVar6 != (Output_section *)0x0) break;" if (parenthesized_expression "(pOVar6 != (Output_section *)0x0)" ( (binary_expression "pOVar6 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00328950:\n        local_50 = local_50 + _S_black;" statement_identifier : (expression_statement "local_50 = local_50 + _S_black;" (assignment_expression "local_50 = local_50 + _S_black" identifier = (binary_expression "local_50 + _S_black" identifier + identifier)) ;)) (expression_statement "local_58 = local_58 + 0x40;" (assignment_expression "local_58 = local_58 + 0x40" identifier = (binary_expression "local_58 + 0x40" identifier + number_literal)) ;) (if_statement "if (local_50 == local_70) goto LAB_00328964;" if (parenthesized_expression "(local_50 == local_70)" ( (binary_expression "local_50 == local_70" identifier == identifier) )) (goto_statement "goto LAB_00328964;" goto statement_identifier ;)) })) (expression_statement "uVar23 = *(uint *)(local_58 + 4);" (assignment_expression "uVar23 = *(uint *)(local_58 + 4)" identifier = (pointer_expression "*(uint *)(local_58 + 4)" * (cast_expression "(uint *)(local_58 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 4)" ( (binary_expression "local_58 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18;" (assignment_expression "uVar23 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18" identifier = (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8" (binary_expression "uVar23 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar23 & 0xff0000) >> 8" (parenthesized_expression "(uVar23 & 0xff0000)" ( (binary_expression "uVar23 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar23 & 0xff00) << 8" (parenthesized_expression "(uVar23 & 0xff00)" ( (binary_expression "uVar23 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar23 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar23 == 8) goto LAB_00328950;" if (parenthesized_expression "(uVar23 == 8)" ( (binary_expression "uVar23 == 8" identifier == number_literal) )) (goto_statement "goto LAB_00328950;" goto statement_identifier ;)) (expression_statement "pGVar19 = (*local_74)->options_;" (assignment_expression "pGVar19 = (*local_74)->options_" identifier = (field_expression "(*local_74)->options_" (parenthesized_expression "(*local_74)" ( (pointer_expression "*local_74" * identifier) )) -> field_identifier)) ;) (if_statement "if (pGVar19 == (General_options *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e23;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" if (parenthesized_expression "(pGVar19 == (General_options *)0x0)" ( (binary_expression "pGVar19 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e23;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" { (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f02" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x1a1d93" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328e23;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328e23" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if (((((pGVar19->relocatable_).value == false) && ((pGVar19->emit_relocs_).value == false)) ||\n          ((uVar23 != 4 && (uVar23 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = pOVar6->field_0x90;\n        bVar28 = bVar5 >> 5;\n        local_5c = (uchar *)(CONCAT31(local_5c._1_3_,bVar28) & 0xffffff01);\n        if ((bVar28 & 1) == 0) {\n          bVar28 = (pOVar6->super_Output_data).field_0x1c;\n          if ((bVar28 & 4) == 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f19;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_64 = (uint)(pOVar6->super_Output_data).offset_;\n          local_60 = *(int *)((int)&(pOVar6->super_Output_data).offset_ + 4);\n          if ((bVar28 & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        else {\n          local_64 = 0;\n          local_60 = 0;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        puVar4 = (this->super_Sized_relobj<64,_true>).section_offsets_.\n                 super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                 ._M_impl._M_start + local_50;\n        local_6c = (uint)*puVar4;\n        local_68 = *(uint *)((int)puVar4 + 4);\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_88 = 0;\n          local_8c = local_78;\n          if (local_7c != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          if ((undefined4 *******)local_78 == (undefined4 *******)0x0) goto LAB_00328950;\n          pppppppuVar18 = (undefined4 *******)local_78;\n          if ((char)local_5c != '\0') {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) goto LAB_00328fac;\n            local_54->view = pOVar6->postprocessing_buffer_ + local_64;\n            if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n            uVar14 = (pOVar6->super_Output_data).address_;\n            *(undefined4 *)((int)&local_54->address + 4) =\n                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n            *(int *)&local_54->address = (int)uVar14;\n            uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            pGVar19 = (*local_74)->options_;\n            goto LAB_003288fd;\n          }\n          if (local_60 < 0) {\nLAB_00328e86:\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_6c = *(uint *)((int)&of->file_size_ + 4);\n          iVar30 = local_60 + (uint)CARRY4((uint)local_78,local_64);\n          uVar23 = (uint)(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)\n                         );\n          iVar22 = local_6c - iVar30;\n          if ((SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)) != (int)(iVar22 - uVar23) < 0)\n          goto LAB_00328e86;\n          local_54->view = of->base_ + local_64;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n          uVar21 = *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          *(int *)&local_54->address = (int)(pOVar6->super_Output_data).address_;\n          *(undefined4 *)((int)&local_54->address + 4) = uVar21;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          *(uint *)&local_54->offset = local_64;\n          local_54->view_size = (section_size_type)local_78;\n          local_54->is_input_output_view = true;\n          local_54->is_postprocessing_view = false;\n        }\n        else {\n          uVar23 = *(uint *)(local_58 + 0x24);\n          pppppppuVar18 =\n               (undefined4 *******)\n               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)\n          ;\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          pCVar7 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                   compressed_sections_;\n          if (pCVar7 == (Compressed_section_map *)0x0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;\n            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n            p_Var24 = &p_Var1->_M_header;\n            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;\n            do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);\nLAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;\n            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }\n          }\n          if (pppppppuVar18 == (undefined4 *******)0x0) goto LAB_00328950;\n          local_9c = pppppppuVar18;\n          local_98 = 0;\n          uVar23 = local_68 + CARRY4(local_6c,(uint)pppppppuVar18);\n          if (local_7c < uVar23 ||\n              local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x317;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          bVar37 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar37;\n          if ((char)local_5c == '\0') {\n            if ((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))\n            {\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = of->base_ + local_64;\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)((int)puVar33 + -4) = 0;\n            *(section_size_type **)((int)puVar33 + -8) = &len;\n            *(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;\n            *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;\n            puVar20 = Object::section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4));\n            local_78 = *(undefined4 *******)(local_58 + 8);\n            uVar23 = *(uint *)(local_58 + 0xc);\n            *(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            *(undefined4 *)((int)puVar33 + -0xc) = 1;\n            *(undefined4 *)((int)puVar33 + -0x10) = 0x40;\n            *(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;\n            *(uchar **)((int)puVar33 + -0x18) = local_5c;\n            *(section_size_type *)((int)puVar33 + -0x1c) = len;\n            *(uchar **)((int)puVar33 + -0x20) = puVar20;\n            *(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;\n            bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8));\n            puVar32 = (undefined1 *)puVar33;\n            if (!bVar37) {\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = pOVar6->postprocessing_buffer_ + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);\n            uVar27 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;\n            local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);\n            if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }\n            local_2c = pppppppuVar18;\n            local_28 = local_5c;\n            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;\n            puVar31 = (undefined1 *)((int)puVar33 + -0x10);\n            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;\n            local_34 = local_78;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;\n            std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));\nLAB_003288bb:\n            puVar32 = puVar31 + 0x10;\n          }\nLAB_003288be:\n          local_54->view = local_5c;\n          puVar33 = (undefined4 *)puVar32;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) {\nLAB_00328dcc:\n            ppuVar15 = local_84;\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n            *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          uVar27 = (uint)(pOVar6->super_Output_data).address_;\n          iVar22 = *(int *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          pGVar19 = (*local_74)->options_;\n          uVar23 = CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5);\n          *(uint *)&local_54->address = uVar27 + local_6c;\n          *(uint *)((int)&local_54->address + 4) = iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)\n          ;\nLAB_003288fd:\n          local_5c = (uchar *)(uVar23 & 0xffffff01);\n          *(uint *)&local_54->offset = local_64;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          local_54->view_size = (section_size_type)pppppppuVar18;\n          local_54->is_input_output_view = (local_6c & local_68) == 0xffffffff;\n          local_54->is_postprocessing_view = (bool)(char)local_5c;\n          if (pGVar19 == (General_options *)0x0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n        }\n        bVar38 = false;\n        bVar37 = (bool)(((pGVar19->relocatable_).value ^ 1U) & &DAT_00000008 < pppppppuVar18);\n        bVar39 = bVar37 == false;\n        if (!bVar39) {\n          iVar22 = 0xc;\n          pbVar34 = (byte *)pOVar6->name_;\n          pbVar35 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar22 == 0) break;\n            iVar22 = iVar22 + -1;\n            bVar38 = *pbVar34 < *pbVar35;\n            bVar39 = *pbVar34 == *pbVar35;\n            pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n          } while (bVar39);\n          bVar37 = false;\n          bVar38 = (!bVar38 && !bVar39) == bVar38;\n          if (!bVar38) {\n            iVar22 = 0xc;\n            pbVar34 = (byte *)pOVar6->name_;\n            pbVar35 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar22 == 0) break;\n              iVar22 = iVar22 + -1;\n              bVar37 = *pbVar34 < *pbVar35;\n              bVar38 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) {\n              bVar37 = false;\n              goto LAB_0032894a;\n            }\n          }\n          *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n          *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n          *(Layout **)((int)puVar33 + -0x10) = layout;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)((int)puVar33 + -0x14) = 0x328d4c;\n          bVar37 = Layout::is_ctors_in_init_array\n                             (*(Layout **)((int)puVar33 + -0x10),*(Relobj **)((int)puVar33 + -0xc),\n                              *(uint *)((int)puVar33 + -8));\n        }\nLAB_0032894a:\n        local_54->is_ctors_reverse_view = bVar37;\n        goto LAB_00328950;\n      }" if (parenthesized_expression "(((((pGVar19->relocatable_).value == false) && ((pGVar19->emit_relocs_).value == false)) ||\n          ((uVar23 != 4 && (uVar23 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0))" ( (binary_expression "((((pGVar19->relocatable_).value == false) && ((pGVar19->emit_relocs_).value == false)) ||\n          ((uVar23 != 4 && (uVar23 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)" (parenthesized_expression "((((pGVar19->relocatable_).value == false) && ((pGVar19->emit_relocs_).value == false)) ||\n          ((uVar23 != 4 && (uVar23 != 9))))" ( (binary_expression "(((pGVar19->relocatable_).value == false) && ((pGVar19->emit_relocs_).value == false)) ||\n          ((uVar23 != 4 && (uVar23 != 9)))" (parenthesized_expression "(((pGVar19->relocatable_).value == false) && ((pGVar19->emit_relocs_).value == false))" ( (binary_expression "((pGVar19->relocatable_).value == false) && ((pGVar19->emit_relocs_).value == false)" (parenthesized_expression "((pGVar19->relocatable_).value == false)" ( (binary_expression "(pGVar19->relocatable_).value == false" (field_expression "(pGVar19->relocatable_).value" (parenthesized_expression "(pGVar19->relocatable_)" ( (field_expression "pGVar19->relocatable_" identifier -> field_identifier) )) . field_identifier) == false) )) && (parenthesized_expression "((pGVar19->emit_relocs_).value == false)" ( (binary_expression "(pGVar19->emit_relocs_).value == false" (field_expression "(pGVar19->emit_relocs_).value" (parenthesized_expression "(pGVar19->emit_relocs_)" ( (field_expression "pGVar19->emit_relocs_" identifier -> field_identifier) )) . field_identifier) == false) ))) )) || (parenthesized_expression "((uVar23 != 4 && (uVar23 != 9)))" ( (parenthesized_expression "(uVar23 != 4 && (uVar23 != 9))" ( (binary_expression "uVar23 != 4 && (uVar23 != 9)" (binary_expression "uVar23 != 4" identifier != number_literal) && (parenthesized_expression "(uVar23 != 9)" ( (binary_expression "uVar23 != 9" identifier != number_literal) ))) )) ))) )) || (parenthesized_expression "((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)" ( (binary_expression "(*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0" (parenthesized_expression "(*(uint *)(local_58 + 0xc) >> 0x18 & 2)" ( (binary_expression "*(uint *)(local_58 + 0xc) >> 0x18 & 2" (binary_expression "*(uint *)(local_58 + 0xc) >> 0x18" (pointer_expression "*(uint *)(local_58 + 0xc)" * (cast_expression "(uint *)(local_58 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0xc)" ( (binary_expression "local_58 + 0xc" identifier + number_literal) )))) >> number_literal) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        bVar5 = pOVar6->field_0x90;\n        bVar28 = bVar5 >> 5;\n        local_5c = (uchar *)(CONCAT31(local_5c._1_3_,bVar28) & 0xffffff01);\n        if ((bVar28 & 1) == 0) {\n          bVar28 = (pOVar6->super_Output_data).field_0x1c;\n          if ((bVar28 & 4) == 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f19;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_64 = (uint)(pOVar6->super_Output_data).offset_;\n          local_60 = *(int *)((int)&(pOVar6->super_Output_data).offset_ + 4);\n          if ((bVar28 & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        else {\n          local_64 = 0;\n          local_60 = 0;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        puVar4 = (this->super_Sized_relobj<64,_true>).section_offsets_.\n                 super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                 ._M_impl._M_start + local_50;\n        local_6c = (uint)*puVar4;\n        local_68 = *(uint *)((int)puVar4 + 4);\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_88 = 0;\n          local_8c = local_78;\n          if (local_7c != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          if ((undefined4 *******)local_78 == (undefined4 *******)0x0) goto LAB_00328950;\n          pppppppuVar18 = (undefined4 *******)local_78;\n          if ((char)local_5c != '\0') {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) goto LAB_00328fac;\n            local_54->view = pOVar6->postprocessing_buffer_ + local_64;\n            if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n            uVar14 = (pOVar6->super_Output_data).address_;\n            *(undefined4 *)((int)&local_54->address + 4) =\n                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n            *(int *)&local_54->address = (int)uVar14;\n            uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            pGVar19 = (*local_74)->options_;\n            goto LAB_003288fd;\n          }\n          if (local_60 < 0) {\nLAB_00328e86:\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_6c = *(uint *)((int)&of->file_size_ + 4);\n          iVar30 = local_60 + (uint)CARRY4((uint)local_78,local_64);\n          uVar23 = (uint)(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)\n                         );\n          iVar22 = local_6c - iVar30;\n          if ((SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)) != (int)(iVar22 - uVar23) < 0)\n          goto LAB_00328e86;\n          local_54->view = of->base_ + local_64;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n          uVar21 = *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          *(int *)&local_54->address = (int)(pOVar6->super_Output_data).address_;\n          *(undefined4 *)((int)&local_54->address + 4) = uVar21;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          *(uint *)&local_54->offset = local_64;\n          local_54->view_size = (section_size_type)local_78;\n          local_54->is_input_output_view = true;\n          local_54->is_postprocessing_view = false;\n        }\n        else {\n          uVar23 = *(uint *)(local_58 + 0x24);\n          pppppppuVar18 =\n               (undefined4 *******)\n               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)\n          ;\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          pCVar7 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                   compressed_sections_;\n          if (pCVar7 == (Compressed_section_map *)0x0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;\n            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n            p_Var24 = &p_Var1->_M_header;\n            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;\n            do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);\nLAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;\n            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }\n          }\n          if (pppppppuVar18 == (undefined4 *******)0x0) goto LAB_00328950;\n          local_9c = pppppppuVar18;\n          local_98 = 0;\n          uVar23 = local_68 + CARRY4(local_6c,(uint)pppppppuVar18);\n          if (local_7c < uVar23 ||\n              local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x317;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          bVar37 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar37;\n          if ((char)local_5c == '\0') {\n            if ((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))\n            {\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = of->base_ + local_64;\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)((int)puVar33 + -4) = 0;\n            *(section_size_type **)((int)puVar33 + -8) = &len;\n            *(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;\n            *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;\n            puVar20 = Object::section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4));\n            local_78 = *(undefined4 *******)(local_58 + 8);\n            uVar23 = *(uint *)(local_58 + 0xc);\n            *(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            *(undefined4 *)((int)puVar33 + -0xc) = 1;\n            *(undefined4 *)((int)puVar33 + -0x10) = 0x40;\n            *(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;\n            *(uchar **)((int)puVar33 + -0x18) = local_5c;\n            *(section_size_type *)((int)puVar33 + -0x1c) = len;\n            *(uchar **)((int)puVar33 + -0x20) = puVar20;\n            *(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;\n            bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8));\n            puVar32 = (undefined1 *)puVar33;\n            if (!bVar37) {\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = pOVar6->postprocessing_buffer_ + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);\n            uVar27 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;\n            local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);\n            if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }\n            local_2c = pppppppuVar18;\n            local_28 = local_5c;\n            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;\n            puVar31 = (undefined1 *)((int)puVar33 + -0x10);\n            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;\n            local_34 = local_78;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;\n            std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));\nLAB_003288bb:\n            puVar32 = puVar31 + 0x10;\n          }\nLAB_003288be:\n          local_54->view = local_5c;\n          puVar33 = (undefined4 *)puVar32;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) {\nLAB_00328dcc:\n            ppuVar15 = local_84;\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n            *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          uVar27 = (uint)(pOVar6->super_Output_data).address_;\n          iVar22 = *(int *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          pGVar19 = (*local_74)->options_;\n          uVar23 = CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5);\n          *(uint *)&local_54->address = uVar27 + local_6c;\n          *(uint *)((int)&local_54->address + 4) = iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)\n          ;\nLAB_003288fd:\n          local_5c = (uchar *)(uVar23 & 0xffffff01);\n          *(uint *)&local_54->offset = local_64;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          local_54->view_size = (section_size_type)pppppppuVar18;\n          local_54->is_input_output_view = (local_6c & local_68) == 0xffffffff;\n          local_54->is_postprocessing_view = (bool)(char)local_5c;\n          if (pGVar19 == (General_options *)0x0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n        }\n        bVar38 = false;\n        bVar37 = (bool)(((pGVar19->relocatable_).value ^ 1U) & &DAT_00000008 < pppppppuVar18);\n        bVar39 = bVar37 == false;\n        if (!bVar39) {\n          iVar22 = 0xc;\n          pbVar34 = (byte *)pOVar6->name_;\n          pbVar35 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar22 == 0) break;\n            iVar22 = iVar22 + -1;\n            bVar38 = *pbVar34 < *pbVar35;\n            bVar39 = *pbVar34 == *pbVar35;\n            pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n          } while (bVar39);\n          bVar37 = false;\n          bVar38 = (!bVar38 && !bVar39) == bVar38;\n          if (!bVar38) {\n            iVar22 = 0xc;\n            pbVar34 = (byte *)pOVar6->name_;\n            pbVar35 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar22 == 0) break;\n              iVar22 = iVar22 + -1;\n              bVar37 = *pbVar34 < *pbVar35;\n              bVar38 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) {\n              bVar37 = false;\n              goto LAB_0032894a;\n            }\n          }\n          *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n          *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n          *(Layout **)((int)puVar33 + -0x10) = layout;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)((int)puVar33 + -0x14) = 0x328d4c;\n          bVar37 = Layout::is_ctors_in_init_array\n                             (*(Layout **)((int)puVar33 + -0x10),*(Relobj **)((int)puVar33 + -0xc),\n                              *(uint *)((int)puVar33 + -8));\n        }\nLAB_0032894a:\n        local_54->is_ctors_reverse_view = bVar37;\n        goto LAB_00328950;\n      }" { (expression_statement "bVar5 = pOVar6->field_0x90;" (assignment_expression "bVar5 = pOVar6->field_0x90" identifier = (field_expression "pOVar6->field_0x90" identifier -> field_identifier)) ;) (expression_statement "bVar28 = bVar5 >> 5;" (assignment_expression "bVar28 = bVar5 >> 5" identifier = (binary_expression "bVar5 >> 5" identifier >> number_literal)) ;) (expression_statement "local_5c = (uchar *)(CONCAT31(local_5c._1_3_,bVar28) & 0xffffff01);" (assignment_expression "local_5c = (uchar *)(CONCAT31(local_5c._1_3_,bVar28) & 0xffffff01)" identifier = (cast_expression "(uchar *)(CONCAT31(local_5c._1_3_,bVar28) & 0xffffff01)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CONCAT31(local_5c._1_3_,bVar28) & 0xffffff01)" ( (binary_expression "CONCAT31(local_5c._1_3_,bVar28) & 0xffffff01" (call_expression "CONCAT31(local_5c._1_3_,bVar28)" identifier (argument_list "(local_5c._1_3_,bVar28)" ( (field_expression "local_5c._1_3_" identifier . field_identifier) , identifier ))) & number_literal) )))) ;) (if_statement "if ((bVar28 & 1) == 0) {\n          bVar28 = (pOVar6->super_Output_data).field_0x1c;\n          if ((bVar28 & 4) == 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f19;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_64 = (uint)(pOVar6->super_Output_data).offset_;\n          local_60 = *(int *)((int)&(pOVar6->super_Output_data).offset_ + 4);\n          if ((bVar28 & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }\n        else {\n          local_64 = 0;\n          local_60 = 0;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }" if (parenthesized_expression "((bVar28 & 1) == 0)" ( (binary_expression "(bVar28 & 1) == 0" (parenthesized_expression "(bVar28 & 1)" ( (binary_expression "bVar28 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          bVar28 = (pOVar6->super_Output_data).field_0x1c;\n          if ((bVar28 & 4) == 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f19;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_64 = (uint)(pOVar6->super_Output_data).offset_;\n          local_60 = *(int *)((int)&(pOVar6->super_Output_data).offset_ + 4);\n          if ((bVar28 & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }" { (expression_statement "bVar28 = (pOVar6->super_Output_data).field_0x1c;" (assignment_expression "bVar28 = (pOVar6->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar6->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar28 & 4) == 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f19;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" if (parenthesized_expression "((bVar28 & 4) == 0)" ( (binary_expression "(bVar28 & 4) == 0" (parenthesized_expression "(bVar28 & 4)" ( (binary_expression "bVar28 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f19;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" { (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f78" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0xe3;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0xe3" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328f19;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328f19" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "local_64 = (uint)(pOVar6->super_Output_data).offset_;" (assignment_expression "local_64 = (uint)(pOVar6->super_Output_data).offset_" identifier = (field_expression "(uint)(pOVar6->super_Output_data).offset_" (call_expression "(uint)(pOVar6->super_Output_data)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "local_60 = *(int *)((int)&(pOVar6->super_Output_data).offset_ + 4);" (assignment_expression "local_60 = *(int *)((int)&(pOVar6->super_Output_data).offset_ + 4)" identifier = (pointer_expression "*(int *)((int)&(pOVar6->super_Output_data).offset_ + 4)" * (cast_expression "(int *)((int)&(pOVar6->super_Output_data).offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar6->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar6->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar6->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar6->super_Output_data).offset_" & (field_expression "(pOVar6->super_Output_data).offset_" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (if_statement "if ((bVar28 & 2) == 0) goto LAB_00328e68;" if (parenthesized_expression "((bVar28 & 2) == 0)" ( (binary_expression "(bVar28 & 2) == 0" (parenthesized_expression "(bVar28 & 2)" ( (binary_expression "bVar28 & 2" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00328e68;" goto statement_identifier ;)) (expression_statement "local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;" (assignment_expression "local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_" identifier = (pointer_expression "*(undefined4 ********)&(pOVar6->super_Output_data).data_size_" * (cast_expression "(undefined4 ********)&(pOVar6->super_Output_data).data_size_" ( (type_descriptor "undefined4 ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (pointer_expression "&(pOVar6->super_Output_data).data_size_" & (field_expression "(pOVar6->super_Output_data).data_size_" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);" (assignment_expression "local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4)" identifier = (pointer_expression "*(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4)" * (cast_expression "(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar6->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar6->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar6->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar6->super_Output_data).data_size_" & (field_expression "(pOVar6->super_Output_data).data_size_" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) }) (else_clause "else {\n          local_64 = 0;\n          local_60 = 0;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }" else (compound_statement "{\n          local_64 = 0;\n          local_60 = 0;\n          local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;\n          local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);\n        }" { (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_;" (assignment_expression "local_78 = *(undefined4 ********)&(pOVar6->super_Output_data).data_size_" identifier = (pointer_expression "*(undefined4 ********)&(pOVar6->super_Output_data).data_size_" * (cast_expression "(undefined4 ********)&(pOVar6->super_Output_data).data_size_" ( (type_descriptor "undefined4 ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (pointer_expression "&(pOVar6->super_Output_data).data_size_" & (field_expression "(pOVar6->super_Output_data).data_size_" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4);" (assignment_expression "local_7c = *(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4)" identifier = (pointer_expression "*(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4)" * (cast_expression "(uint *)((int)&(pOVar6->super_Output_data).data_size_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar6->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar6->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar6->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar6->super_Output_data).data_size_" & (field_expression "(pOVar6->super_Output_data).data_size_" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) }))) (ERROR "puVar4 = (this->super_Sized_relobj<64,_true>).section_offsets_.\n                 super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "puVar4 = (this->super_Sized_relobj<64,_true>).section_offsets_.\n                 super__Vector_base<long_long_unsigned_int,_std" (assignment_expression "puVar4 = (this->super_Sized_relobj<64,_true>).section_offsets_.\n                 super__Vector_base<long_long_unsigned_int" identifier = (binary_expression "(this->super_Sized_relobj<64,_true>).section_offsets_.\n                 super__Vector_base<long_long_unsigned_int" (field_expression "(this->super_Sized_relobj<64,_true>).section_offsets_.\n                 super__Vector_base" (field_expression "(this->super_Sized_relobj<64,_true>).section_offsets_" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier)) , identifier) : :) (expression_statement "allocator<long_long_unsigned_int>_>\n                 ._M_impl._M_start + local_50;" (binary_expression "allocator<long_long_unsigned_int>_>\n                 ._M_impl._M_start + local_50" (field_expression "allocator<long_long_unsigned_int>_>\n                 ._M_impl._M_start" (field_expression "allocator<long_long_unsigned_int>_>\n                 ._M_impl" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) + identifier) ;) (expression_statement "local_6c = (uint)*puVar4;" (assignment_expression "local_6c = (uint)*puVar4" identifier = (binary_expression "(uint)*puVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "local_68 = *(uint *)((int)puVar4 + 4);" (assignment_expression "local_68 = *(uint *)((int)puVar4 + 4)" identifier = (pointer_expression "*(uint *)((int)puVar4 + 4)" * (cast_expression "(uint *)((int)puVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + 4)" ( (binary_expression "(int)puVar4 + 4" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((local_68 & local_6c) == 0xffffffff) {\n          local_88 = 0;\n          local_8c = local_78;\n          if (local_7c != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          if ((undefined4 *******)local_78 == (undefined4 *******)0x0) goto LAB_00328950;\n          pppppppuVar18 = (undefined4 *******)local_78;\n          if ((char)local_5c != '\0') {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) goto LAB_00328fac;\n            local_54->view = pOVar6->postprocessing_buffer_ + local_64;\n            if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n            uVar14 = (pOVar6->super_Output_data).address_;\n            *(undefined4 *)((int)&local_54->address + 4) =\n                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n            *(int *)&local_54->address = (int)uVar14;\n            uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            pGVar19 = (*local_74)->options_;\n            goto LAB_003288fd;\n          }\n          if (local_60 < 0) {\nLAB_00328e86:\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_6c = *(uint *)((int)&of->file_size_ + 4);\n          iVar30 = local_60 + (uint)CARRY4((uint)local_78,local_64);\n          uVar23 = (uint)(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)\n                         );\n          iVar22 = local_6c - iVar30;\n          if ((SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)) != (int)(iVar22 - uVar23) < 0)\n          goto LAB_00328e86;\n          local_54->view = of->base_ + local_64;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n          uVar21 = *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          *(int *)&local_54->address = (int)(pOVar6->super_Output_data).address_;\n          *(undefined4 *)((int)&local_54->address + 4) = uVar21;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          *(uint *)&local_54->offset = local_64;\n          local_54->view_size = (section_size_type)local_78;\n          local_54->is_input_output_view = true;\n          local_54->is_postprocessing_view = false;\n        }\n        else {\n          uVar23 = *(uint *)(local_58 + 0x24);\n          pppppppuVar18 =\n               (undefined4 *******)\n               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)\n          ;\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          pCVar7 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                   compressed_sections_;\n          if (pCVar7 == (Compressed_section_map *)0x0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;\n            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n            p_Var24 = &p_Var1->_M_header;\n            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;\n            do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);\nLAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;\n            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }\n          }\n          if (pppppppuVar18 == (undefined4 *******)0x0) goto LAB_00328950;\n          local_9c = pppppppuVar18;\n          local_98 = 0;\n          uVar23 = local_68 + CARRY4(local_6c,(uint)pppppppuVar18);\n          if (local_7c < uVar23 ||\n              local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x317;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          bVar37 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar37;\n          if ((char)local_5c == '\0') {\n            if ((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))\n            {\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = of->base_ + local_64;\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)((int)puVar33 + -4) = 0;\n            *(section_size_type **)((int)puVar33 + -8) = &len;\n            *(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;\n            *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;\n            puVar20 = Object::section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4));\n            local_78 = *(undefined4 *******)(local_58 + 8);\n            uVar23 = *(uint *)(local_58 + 0xc);\n            *(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            *(undefined4 *)((int)puVar33 + -0xc) = 1;\n            *(undefined4 *)((int)puVar33 + -0x10) = 0x40;\n            *(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;\n            *(uchar **)((int)puVar33 + -0x18) = local_5c;\n            *(section_size_type *)((int)puVar33 + -0x1c) = len;\n            *(uchar **)((int)puVar33 + -0x20) = puVar20;\n            *(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;\n            bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8));\n            puVar32 = (undefined1 *)puVar33;\n            if (!bVar37) {\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = pOVar6->postprocessing_buffer_ + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);\n            uVar27 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;\n            local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);\n            if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }\n            local_2c = pppppppuVar18;\n            local_28 = local_5c;\n            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;\n            puVar31 = (undefined1 *)((int)puVar33 + -0x10);\n            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;\n            local_34 = local_78;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;\n            std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));\nLAB_003288bb:\n            puVar32 = puVar31 + 0x10;\n          }\nLAB_003288be:\n          local_54->view = local_5c;\n          puVar33 = (undefined4 *)puVar32;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) {\nLAB_00328dcc:\n            ppuVar15 = local_84;\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n            *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          uVar27 = (uint)(pOVar6->super_Output_data).address_;\n          iVar22 = *(int *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          pGVar19 = (*local_74)->options_;\n          uVar23 = CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5);\n          *(uint *)&local_54->address = uVar27 + local_6c;\n          *(uint *)((int)&local_54->address + 4) = iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)\n          ;\nLAB_003288fd:\n          local_5c = (uchar *)(uVar23 & 0xffffff01);\n          *(uint *)&local_54->offset = local_64;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          local_54->view_size = (section_size_type)pppppppuVar18;\n          local_54->is_input_output_view = (local_6c & local_68) == 0xffffffff;\n          local_54->is_postprocessing_view = (bool)(char)local_5c;\n          if (pGVar19 == (General_options *)0x0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n        }" if (parenthesized_expression "((local_68 & local_6c) == 0xffffffff)" ( (binary_expression "(local_68 & local_6c) == 0xffffffff" (parenthesized_expression "(local_68 & local_6c)" ( (binary_expression "local_68 & local_6c" identifier & identifier) )) == number_literal) )) (compound_statement "{\n          local_88 = 0;\n          local_8c = local_78;\n          if (local_7c != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          if ((undefined4 *******)local_78 == (undefined4 *******)0x0) goto LAB_00328950;\n          pppppppuVar18 = (undefined4 *******)local_78;\n          if ((char)local_5c != '\0') {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) goto LAB_00328fac;\n            local_54->view = pOVar6->postprocessing_buffer_ + local_64;\n            if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n            uVar14 = (pOVar6->super_Output_data).address_;\n            *(undefined4 *)((int)&local_54->address + 4) =\n                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n            *(int *)&local_54->address = (int)uVar14;\n            uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            pGVar19 = (*local_74)->options_;\n            goto LAB_003288fd;\n          }\n          if (local_60 < 0) {\nLAB_00328e86:\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          local_6c = *(uint *)((int)&of->file_size_ + 4);\n          iVar30 = local_60 + (uint)CARRY4((uint)local_78,local_64);\n          uVar23 = (uint)(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)\n                         );\n          iVar22 = local_6c - iVar30;\n          if ((SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)) != (int)(iVar22 - uVar23) < 0)\n          goto LAB_00328e86;\n          local_54->view = of->base_ + local_64;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n          uVar21 = *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          *(int *)&local_54->address = (int)(pOVar6->super_Output_data).address_;\n          *(undefined4 *)((int)&local_54->address + 4) = uVar21;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          *(uint *)&local_54->offset = local_64;\n          local_54->view_size = (section_size_type)local_78;\n          local_54->is_input_output_view = true;\n          local_54->is_postprocessing_view = false;\n        }" { (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "local_8c = local_78;" (assignment_expression "local_8c = local_78" identifier = identifier) ;) (if_statement "if (local_7c != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" if (parenthesized_expression "(local_7c != 0)" ( (binary_expression "local_7c != 0" identifier != number_literal) )) (compound_statement "{\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" { (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f97" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;" (assignment_expression "*(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3" (pointer_expression "*(undefined ***)((int)puVar33 + -0x10)" * (cast_expression "(undefined ***)((int)puVar33 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x672d3" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328ebf" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if ((undefined4 *******)local_78 == (undefined4 *******)0x0) goto LAB_00328950;" if (parenthesized_expression "((undefined4 *******)local_78 == (undefined4 *******)0x0)" ( (binary_expression "(undefined4 *******)local_78 == (undefined4 *******)0x0" (cast_expression "(undefined4 *******)local_78" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier) == (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00328950;" goto statement_identifier ;)) (expression_statement "pppppppuVar18 = (undefined4 *******)local_78;" (assignment_expression "pppppppuVar18 = (undefined4 *******)local_78" identifier = (cast_expression "(undefined4 *******)local_78" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (if_statement "if ((char)local_5c != '\0') {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) goto LAB_00328fac;\n            local_54->view = pOVar6->postprocessing_buffer_ + local_64;\n            if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n            uVar14 = (pOVar6->super_Output_data).address_;\n            *(undefined4 *)((int)&local_54->address + 4) =\n                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n            *(int *)&local_54->address = (int)uVar14;\n            uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            pGVar19 = (*local_74)->options_;\n            goto LAB_003288fd;\n          }" if (parenthesized_expression "((char)local_5c != '\0')" ( (binary_expression "(char)local_5c != '\0'" (cast_expression "(char)local_5c" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) goto LAB_00328fac;\n            local_54->view = pOVar6->postprocessing_buffer_ + local_64;\n            if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;\n            uVar14 = (pOVar6->super_Output_data).address_;\n            *(undefined4 *)((int)&local_54->address + 4) =\n                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);\n            *(int *)&local_54->address = (int)uVar14;\n            uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            pGVar19 = (*local_74)->options_;\n            goto LAB_003288fd;\n          }" { (if_statement "if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) goto LAB_00328fac;" if (parenthesized_expression "(pOVar6->postprocessing_buffer_ == (uchar *)0x0)" ( (binary_expression "pOVar6->postprocessing_buffer_ == (uchar *)0x0" (field_expression "pOVar6->postprocessing_buffer_" identifier -> field_identifier) == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00328fac;" goto statement_identifier ;)) (expression_statement "local_54->view = pOVar6->postprocessing_buffer_ + local_64;" (assignment_expression "local_54->view = pOVar6->postprocessing_buffer_ + local_64" (field_expression "local_54->view" identifier -> field_identifier) = (binary_expression "pOVar6->postprocessing_buffer_ + local_64" (field_expression "pOVar6->postprocessing_buffer_" identifier -> field_identifier) + identifier)) ;) (if_statement "if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;" if (parenthesized_expression "(((pOVar6->super_Output_data).field_0x1c & 1) == 0)" ( (binary_expression "((pOVar6->super_Output_data).field_0x1c & 1) == 0" (parenthesized_expression "((pOVar6->super_Output_data).field_0x1c & 1)" ( (binary_expression "(pOVar6->super_Output_data).field_0x1c & 1" (field_expression "(pOVar6->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00328dcc;" goto statement_identifier ;)) (expression_statement "uVar14 = (pOVar6->super_Output_data).address_;" (assignment_expression "uVar14 = (pOVar6->super_Output_data).address_" identifier = (field_expression "(pOVar6->super_Output_data).address_" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&local_54->address + 4) =\n                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);" (assignment_expression "*(undefined4 *)((int)&local_54->address + 4) =\n                 *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4)" (pointer_expression "*(undefined4 *)((int)&local_54->address + 4)" * (cast_expression "(undefined4 *)((int)&local_54->address + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_54->address + 4)" ( (binary_expression "(int)&local_54->address + 4" (cast_expression "(int)&local_54->address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_54->address" & (field_expression "local_54->address" identifier -> field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar6->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar6->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar6->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar6->super_Output_data).address_" & (field_expression "(pOVar6->super_Output_data).address_" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)&local_54->address = (int)uVar14;" (assignment_expression "*(int *)&local_54->address = (int)uVar14" (pointer_expression "*(int *)&local_54->address" * (cast_expression "(int *)&local_54->address" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_54->address" & (field_expression "local_54->address" identifier -> field_identifier)))) = (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5);" (assignment_expression "uVar23 = CONCAT31(local_5c._1_3_,bVar5 >> 5)" identifier = (call_expression "CONCAT31(local_5c._1_3_,bVar5 >> 5)" identifier (argument_list "(local_5c._1_3_,bVar5 >> 5)" ( (field_expression "local_5c._1_3_" identifier . field_identifier) , (binary_expression "bVar5 >> 5" identifier >> number_literal) )))) ;) (expression_statement "pGVar19 = (*local_74)->options_;" (assignment_expression "pGVar19 = (*local_74)->options_" identifier = (field_expression "(*local_74)->options_" (parenthesized_expression "(*local_74)" ( (pointer_expression "*local_74" * identifier) )) -> field_identifier)) ;) (goto_statement "goto LAB_003288fd;" goto statement_identifier ;) })) (if_statement "if (local_60 < 0) {\nLAB_00328e86:\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" if (parenthesized_expression "(local_60 < 0)" ( (binary_expression "local_60 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_00328e86:\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" { (labeled_statement "LAB_00328e86:\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;" statement_identifier : (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f89" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0x6f;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0x6f" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328ea1" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "local_6c = *(uint *)((int)&of->file_size_ + 4);" (assignment_expression "local_6c = *(uint *)((int)&of->file_size_ + 4)" identifier = (pointer_expression "*(uint *)((int)&of->file_size_ + 4)" * (cast_expression "(uint *)((int)&of->file_size_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&of->file_size_ + 4)" ( (binary_expression "(int)&of->file_size_ + 4" (cast_expression "(int)&of->file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "iVar30 = local_60 + (uint)CARRY4((uint)local_78,local_64);" (assignment_expression "iVar30 = local_60 + (uint)CARRY4((uint)local_78,local_64)" identifier = (binary_expression "local_60 + (uint)CARRY4((uint)local_78,local_64)" identifier + (cast_expression "(uint)CARRY4((uint)local_78,local_64)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_78,local_64)" identifier (argument_list "((uint)local_78,local_64)" ( (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) ;) (expression_statement "uVar23 = (uint)(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)\n                         );" (assignment_expression "uVar23 = (uint)(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)\n                         )" identifier = (call_expression "(uint)(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)\n                         )" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)\n                         )" ( (binary_expression "*(undefined1 **)&of->file_size_ < (undefined1 *)((int)local_78 + local_64)" (pointer_expression "*(undefined1 **)&of->file_size_" * (cast_expression "(undefined1 **)&of->file_size_" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier)))) < (cast_expression "(undefined1 *)((int)local_78 + local_64)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + local_64)" ( (binary_expression "(int)local_78 + local_64" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) )))) ;) (expression_statement "iVar22 = local_6c - iVar30;" (assignment_expression "iVar22 = local_6c - iVar30" identifier = (binary_expression "local_6c - iVar30" identifier - identifier)) ;) (if_statement "if ((SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)) != (int)(iVar22 - uVar23) < 0)\n          goto LAB_00328e86;" if (parenthesized_expression "((SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)) != (int)(iVar22 - uVar23) < 0)" ( (binary_expression "(SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)) != (int)(iVar22 - uVar23) < 0" (parenthesized_expression "(SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23))" ( (binary_expression "SBORROW4(local_6c,iVar30) != SBORROW4(iVar22,uVar23)" (call_expression "SBORROW4(local_6c,iVar30)" identifier (argument_list "(local_6c,iVar30)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar22,uVar23)" identifier (argument_list "(iVar22,uVar23)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar22 - uVar23) < 0" (cast_expression "(int)(iVar22 - uVar23)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar22 - uVar23)" ( (binary_expression "iVar22 - uVar23" identifier - identifier) ))) < number_literal)) )) (goto_statement "goto LAB_00328e86;" goto statement_identifier ;)) (expression_statement "local_54->view = of->base_ + local_64;" (assignment_expression "local_54->view = of->base_ + local_64" (field_expression "local_54->view" identifier -> field_identifier) = (binary_expression "of->base_ + local_64" (field_expression "of->base_" identifier -> field_identifier) + identifier)) ;) (if_statement "if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;" if (parenthesized_expression "(((pOVar6->super_Output_data).field_0x1c & 1) == 0)" ( (binary_expression "((pOVar6->super_Output_data).field_0x1c & 1) == 0" (parenthesized_expression "((pOVar6->super_Output_data).field_0x1c & 1)" ( (binary_expression "(pOVar6->super_Output_data).field_0x1c & 1" (field_expression "(pOVar6->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00328dcc;" goto statement_identifier ;)) (expression_statement "uVar21 = *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4);" (assignment_expression "uVar21 = *(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar6->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar6->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar6->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar6->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar6->super_Output_data).address_" & (field_expression "(pOVar6->super_Output_data).address_" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)&local_54->address = (int)(pOVar6->super_Output_data).address_;" (assignment_expression "*(int *)&local_54->address = (int)(pOVar6->super_Output_data).address_" (pointer_expression "*(int *)&local_54->address" * (cast_expression "(int *)&local_54->address" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_54->address" & (field_expression "local_54->address" identifier -> field_identifier)))) = (cast_expression "(int)(pOVar6->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (field_expression "(pOVar6->super_Output_data).address_" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&local_54->address + 4) = uVar21;" (assignment_expression "*(undefined4 *)((int)&local_54->address + 4) = uVar21" (pointer_expression "*(undefined4 *)((int)&local_54->address + 4)" * (cast_expression "(undefined4 *)((int)&local_54->address + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_54->address + 4)" ( (binary_expression "(int)&local_54->address + 4" (cast_expression "(int)&local_54->address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_54->address" & (field_expression "local_54->address" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)&local_54->offset + 4) = local_60;" (assignment_expression "*(int *)((int)&local_54->offset + 4) = local_60" (pointer_expression "*(int *)((int)&local_54->offset + 4)" * (cast_expression "(int *)((int)&local_54->offset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_54->offset + 4)" ( (binary_expression "(int)&local_54->offset + 4" (cast_expression "(int)&local_54->offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_54->offset" & (field_expression "local_54->offset" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)&local_54->offset = local_64;" (assignment_expression "*(uint *)&local_54->offset = local_64" (pointer_expression "*(uint *)&local_54->offset" * (cast_expression "(uint *)&local_54->offset" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_54->offset" & (field_expression "local_54->offset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "local_54->view_size = (section_size_type)local_78;" (assignment_expression "local_54->view_size = (section_size_type)local_78" (field_expression "local_54->view_size" identifier -> field_identifier) = (cast_expression "(section_size_type)local_78" ( (type_descriptor "section_size_type" type_identifier) ) identifier)) ;) (expression_statement "local_54->is_input_output_view = true;" (assignment_expression "local_54->is_input_output_view = true" (field_expression "local_54->is_input_output_view" identifier -> field_identifier) = true) ;) (expression_statement "local_54->is_postprocessing_view = false;" (assignment_expression "local_54->is_postprocessing_view = false" (field_expression "local_54->is_postprocessing_view" identifier -> field_identifier) = false) ;) }) (else_clause "else {\n          uVar23 = *(uint *)(local_58 + 0x24);\n          pppppppuVar18 =\n               (undefined4 *******)\n               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)\n          ;\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          pCVar7 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                   compressed_sections_;\n          if (pCVar7 == (Compressed_section_map *)0x0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;\n            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n            p_Var24 = &p_Var1->_M_header;\n            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;\n            do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);\nLAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;\n            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }\n          }\n          if (pppppppuVar18 == (undefined4 *******)0x0) goto LAB_00328950;\n          local_9c = pppppppuVar18;\n          local_98 = 0;\n          uVar23 = local_68 + CARRY4(local_6c,(uint)pppppppuVar18);\n          if (local_7c < uVar23 ||\n              local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x317;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          bVar37 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar37;\n          if ((char)local_5c == '\0') {\n            if ((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))\n            {\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = of->base_ + local_64;\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)((int)puVar33 + -4) = 0;\n            *(section_size_type **)((int)puVar33 + -8) = &len;\n            *(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;\n            *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;\n            puVar20 = Object::section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4));\n            local_78 = *(undefined4 *******)(local_58 + 8);\n            uVar23 = *(uint *)(local_58 + 0xc);\n            *(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            *(undefined4 *)((int)puVar33 + -0xc) = 1;\n            *(undefined4 *)((int)puVar33 + -0x10) = 0x40;\n            *(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;\n            *(uchar **)((int)puVar33 + -0x18) = local_5c;\n            *(section_size_type *)((int)puVar33 + -0x1c) = len;\n            *(uchar **)((int)puVar33 + -0x20) = puVar20;\n            *(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;\n            bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8));\n            puVar32 = (undefined1 *)puVar33;\n            if (!bVar37) {\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = pOVar6->postprocessing_buffer_ + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);\n            uVar27 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;\n            local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);\n            if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }\n            local_2c = pppppppuVar18;\n            local_28 = local_5c;\n            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;\n            puVar31 = (undefined1 *)((int)puVar33 + -0x10);\n            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;\n            local_34 = local_78;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;\n            std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));\nLAB_003288bb:\n            puVar32 = puVar31 + 0x10;\n          }\nLAB_003288be:\n          local_54->view = local_5c;\n          puVar33 = (undefined4 *)puVar32;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) {\nLAB_00328dcc:\n            ppuVar15 = local_84;\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n            *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          uVar27 = (uint)(pOVar6->super_Output_data).address_;\n          iVar22 = *(int *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          pGVar19 = (*local_74)->options_;\n          uVar23 = CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5);\n          *(uint *)&local_54->address = uVar27 + local_6c;\n          *(uint *)((int)&local_54->address + 4) = iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)\n          ;\nLAB_003288fd:\n          local_5c = (uchar *)(uVar23 & 0xffffff01);\n          *(uint *)&local_54->offset = local_64;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          local_54->view_size = (section_size_type)pppppppuVar18;\n          local_54->is_input_output_view = (local_6c & local_68) == 0xffffffff;\n          local_54->is_postprocessing_view = (bool)(char)local_5c;\n          if (pGVar19 == (General_options *)0x0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n        }" else (compound_statement "{\n          uVar23 = *(uint *)(local_58 + 0x24);\n          pppppppuVar18 =\n               (undefined4 *******)\n               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)\n          ;\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          pCVar7 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                   compressed_sections_;\n          if (pCVar7 == (Compressed_section_map *)0x0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;\n            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n            p_Var24 = &p_Var1->_M_header;\n            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;\n            do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);\nLAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;\n            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }\n          }\n          if (pppppppuVar18 == (undefined4 *******)0x0) goto LAB_00328950;\n          local_9c = pppppppuVar18;\n          local_98 = 0;\n          uVar23 = local_68 + CARRY4(local_6c,(uint)pppppppuVar18);\n          if (local_7c < uVar23 ||\n              local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x317;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          bVar37 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar37;\n          if ((char)local_5c == '\0') {\n            if ((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))\n            {\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = of->base_ + local_64;\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)((int)puVar33 + -4) = 0;\n            *(section_size_type **)((int)puVar33 + -8) = &len;\n            *(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;\n            *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;\n            puVar20 = Object::section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4));\n            local_78 = *(undefined4 *******)(local_58 + 8);\n            uVar23 = *(uint *)(local_58 + 0xc);\n            *(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            *(undefined4 *)((int)puVar33 + -0xc) = 1;\n            *(undefined4 *)((int)puVar33 + -0x10) = 0x40;\n            *(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;\n            *(uchar **)((int)puVar33 + -0x18) = local_5c;\n            *(section_size_type *)((int)puVar33 + -0x1c) = len;\n            *(uchar **)((int)puVar33 + -0x20) = puVar20;\n            *(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;\n            bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8));\n            puVar32 = (undefined1 *)puVar33;\n            if (!bVar37) {\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = pOVar6->postprocessing_buffer_ + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);\n            uVar27 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;\n            local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);\n            if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }\n            local_2c = pppppppuVar18;\n            local_28 = local_5c;\n            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;\n            puVar31 = (undefined1 *)((int)puVar33 + -0x10);\n            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;\n            local_34 = local_78;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;\n            std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));\nLAB_003288bb:\n            puVar32 = puVar31 + 0x10;\n          }\nLAB_003288be:\n          local_54->view = local_5c;\n          puVar33 = (undefined4 *)puVar32;\n          if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) {\nLAB_00328dcc:\n            ppuVar15 = local_84;\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n            *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n          uVar27 = (uint)(pOVar6->super_Output_data).address_;\n          iVar22 = *(int *)((int)&(pOVar6->super_Output_data).address_ + 4);\n          pGVar19 = (*local_74)->options_;\n          uVar23 = CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5);\n          *(uint *)&local_54->address = uVar27 + local_6c;\n          *(uint *)((int)&local_54->address + 4) = iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)\n          ;\nLAB_003288fd:\n          local_5c = (uchar *)(uVar23 & 0xffffff01);\n          *(uint *)&local_54->offset = local_64;\n          *(int *)((int)&local_54->offset + 4) = local_60;\n          local_54->view_size = (section_size_type)pppppppuVar18;\n          local_54->is_input_output_view = (local_6c & local_68) == 0xffffffff;\n          local_54->is_postprocessing_view = (bool)(char)local_5c;\n          if (pGVar19 == (General_options *)0x0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }\n        }" { (expression_statement "uVar23 = *(uint *)(local_58 + 0x24);" (assignment_expression "uVar23 = *(uint *)(local_58 + 0x24)" identifier = (pointer_expression "*(uint *)(local_58 + 0x24)" * (cast_expression "(uint *)(local_58 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x24)" ( (binary_expression "local_58 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "pppppppuVar18 =\n               (undefined4 *******)\n               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)\n          ;" (assignment_expression "pppppppuVar18 =\n               (undefined4 *******)\n               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)" identifier = (cast_expression "(undefined4 *******)\n               (uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18)" ( (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8" (binary_expression "uVar23 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar23 & 0xff0000) >> 8" (parenthesized_expression "(uVar23 & 0xff0000)" ( (binary_expression "uVar23 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar23 & 0xff00) << 8" (parenthesized_expression "(uVar23 & 0xff00)" ( (binary_expression "uVar23 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar23 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" if (parenthesized_expression "(*(int *)(local_58 + 0x20) != 0)" ( (binary_expression "*(int *)(local_58 + 0x20) != 0" (pointer_expression "*(int *)(local_58 + 0x20)" * (cast_expression "(int *)(local_58 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x20)" ( (binary_expression "local_58 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" { (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f97" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f97" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3;" (assignment_expression "*(undefined ***)((int)puVar33 + -0x10) = local_84 + -0x672d3" (pointer_expression "*(undefined ***)((int)puVar33 + -0x10)" * (cast_expression "(undefined ***)((int)puVar33 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x672d3" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328e08;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328e08" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "pCVar7 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                   compressed_sections_;" (assignment_expression "pCVar7 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                   compressed_sections_" identifier = (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                   compressed_sections_" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (pCVar7 == (Compressed_section_map *)0x0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;\n            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n            p_Var24 = &p_Var1->_M_header;\n            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;\n            do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);\nLAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;\n            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }\n          }" if (parenthesized_expression "(pCVar7 == (Compressed_section_map *)0x0)" ( (binary_expression "pCVar7 == (Compressed_section_map *)0x0" identifier == (cast_expression "(Compressed_section_map *)0x0" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }" { (labeled_statement "LAB_00328c60:\n            local_80 = local_80 & 0xffffff00;" statement_identifier : (expression_statement "local_80 = local_80 & 0xffffff00;" (assignment_expression "local_80 = local_80 & 0xffffff00" identifier = (binary_expression "local_80 & 0xffffff00" identifier & number_literal)) ;)) }) (else_clause "else {\n            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;\n            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n            p_Var24 = &p_Var1->_M_header;\n            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;\n            do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);\nLAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;\n            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }\n          }" else (compound_statement "{\n            p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;\n            p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n            p_Var24 = &p_Var1->_M_header;\n            if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;\n            do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);\nLAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;\n            if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }\n          }" { (expression_statement "p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var1 = &(pCVar7->_M_t)._M_impl.super__Rb_tree_header" identifier = (pointer_expression "&(pCVar7->_M_t)._M_impl.super__Rb_tree_header" & (field_expression "(pCVar7->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar7->_M_t)._M_impl" (parenthesized_expression "(pCVar7->_M_t)" ( (field_expression "pCVar7->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;" (assignment_expression "p_Var8 = (pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent" identifier = (field_expression "(pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent" (field_expression "(pCVar7->_M_t)._M_impl.super__Rb_tree_header._M_header" (field_expression "(pCVar7->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar7->_M_t)._M_impl" (parenthesized_expression "(pCVar7->_M_t)" ( (field_expression "pCVar7->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var24 = &p_Var1->_M_header;" (assignment_expression "p_Var24 = &p_Var1->_M_header" identifier = (pointer_expression "&p_Var1->_M_header" & (field_expression "p_Var1->_M_header" identifier -> field_identifier))) ;) (if_statement "if (p_Var8 == (_Base_ptr)0x0) goto LAB_00328c60;" if (parenthesized_expression "(p_Var8 == (_Base_ptr)0x0)" ( (binary_expression "p_Var8 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00328c60;" goto statement_identifier ;)) (do_statement "do {\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            } while (p_Var25->_M_left != (_Base_ptr)0x0);" do (compound_statement "{\n              while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }\n              p_Var8 = p_Var25->_M_left;\n              p_Var24 = p_Var25;\n            }" { (while_statement "while (p_Var25 = p_Var8, p_Var25[1]._M_color < local_50) {\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }" while (parenthesized_expression "(p_Var25 = p_Var8, p_Var25[1]._M_color < local_50)" ( (comma_expression "p_Var25 = p_Var8, p_Var25[1]._M_color < local_50" (assignment_expression "p_Var25 = p_Var8" identifier = identifier) , (binary_expression "p_Var25[1]._M_color < local_50" (field_expression "p_Var25[1]._M_color" (subscript_expression "p_Var25[1]" identifier [ number_literal ]) . field_identifier) < identifier)) )) (compound_statement "{\n                pp_Var2 = &p_Var25->_M_right;\n                p_Var8 = *pp_Var2;\n                p_Var25 = p_Var24;\n                if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;\n              }" { (expression_statement "pp_Var2 = &p_Var25->_M_right;" (assignment_expression "pp_Var2 = &p_Var25->_M_right" identifier = (pointer_expression "&p_Var25->_M_right" & (field_expression "p_Var25->_M_right" identifier -> field_identifier))) ;) (expression_statement "p_Var8 = *pp_Var2;" (assignment_expression "p_Var8 = *pp_Var2" identifier = (pointer_expression "*pp_Var2" * identifier)) ;) (expression_statement "p_Var25 = p_Var24;" (assignment_expression "p_Var25 = p_Var24" identifier = identifier) ;) (if_statement "if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_003287e8;" if (parenthesized_expression "(*pp_Var2 == (_Base_ptr)0x0)" ( (binary_expression "*pp_Var2 == (_Base_ptr)0x0" (pointer_expression "*pp_Var2" * identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_003287e8;" goto statement_identifier ;)) })) (expression_statement "p_Var8 = p_Var25->_M_left;" (assignment_expression "p_Var8 = p_Var25->_M_left" identifier = (field_expression "p_Var25->_M_left" identifier -> field_identifier)) ;) (expression_statement "p_Var24 = p_Var25;" (assignment_expression "p_Var24 = p_Var25" identifier = identifier) ;) }) while (parenthesized_expression "(p_Var25->_M_left != (_Base_ptr)0x0)" ( (binary_expression "p_Var25->_M_left != (_Base_ptr)0x0" (field_expression "p_Var25->_M_left" identifier -> field_identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_003287e8:\n            local_80 = (uint)p_Var1 & 0xffffff00;" statement_identifier : (expression_statement "local_80 = (uint)p_Var1 & 0xffffff00;" (assignment_expression "local_80 = (uint)p_Var1 & 0xffffff00" identifier = (binary_expression "(uint)p_Var1 & 0xffffff00" (cast_expression "(uint)p_Var1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;)) (if_statement "if ((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)) {\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }" if (parenthesized_expression "((p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50))" ( (binary_expression "(p_Var1 != (_Rb_tree_header *)p_Var25) &&\n               (((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)" (parenthesized_expression "(p_Var1 != (_Rb_tree_header *)p_Var25)" ( (binary_expression "p_Var1 != (_Rb_tree_header *)p_Var25" identifier != (cast_expression "(_Rb_tree_header *)p_Var25" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) && (parenthesized_expression "(((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50)" ( (binary_expression "((_Rb_tree_header *)p_Var25)->_M_node_count <= local_50" (field_expression "((_Rb_tree_header *)p_Var25)->_M_node_count" (parenthesized_expression "((_Rb_tree_header *)p_Var25)" ( (cast_expression "(_Rb_tree_header *)p_Var25" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) <= identifier) ))) )) (compound_statement "{\n              local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);\n              pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);\n            }" { (expression_statement "local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1);" (assignment_expression "local_80 = CONCAT31((int3)((uint)p_Var1 >> 8),1)" identifier = (call_expression "CONCAT31((int3)((uint)p_Var1 >> 8),1)" identifier (argument_list "((int3)((uint)p_Var1 >> 8),1)" ( (call_expression "(int3)((uint)p_Var1 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)p_Var1 >> 8)" ( (binary_expression "(uint)p_Var1 >> 8" (cast_expression "(uint)p_Var1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , number_literal )))) ;) (expression_statement "pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14);" (assignment_expression "pppppppuVar18 = *(undefined4 ********)((int)p_Var25 + 0x14)" identifier = (pointer_expression "*(undefined4 ********)((int)p_Var25 + 0x14)" * (cast_expression "(undefined4 ********)((int)p_Var25 + 0x14)" ( (type_descriptor "undefined4 ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)p_Var25 + 0x14)" ( (binary_expression "(int)p_Var25 + 0x14" (cast_expression "(int)p_Var25" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) }))) (if_statement "if (pppppppuVar18 == (undefined4 *******)0x0) goto LAB_00328950;" if (parenthesized_expression "(pppppppuVar18 == (undefined4 *******)0x0)" ( (binary_expression "pppppppuVar18 == (undefined4 *******)0x0" identifier == (cast_expression "(undefined4 *******)0x0" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00328950;" goto statement_identifier ;)) (expression_statement "local_9c = pppppppuVar18;" (assignment_expression "local_9c = pppppppuVar18" identifier = identifier) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = local_68 + CARRY4(local_6c,(uint)pppppppuVar18);" (assignment_expression "uVar23 = local_68 + CARRY4(local_6c,(uint)pppppppuVar18)" identifier = (binary_expression "local_68 + CARRY4(local_6c,(uint)pppppppuVar18)" identifier + (call_expression "CARRY4(local_6c,(uint)pppppppuVar18)" identifier (argument_list "(local_6c,(uint)pppppppuVar18)" ( identifier , (cast_expression "(uint)pppppppuVar18" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;) (if_statement "if (local_7c < uVar23 ||\n              local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x317;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" if (parenthesized_expression "(local_7c < uVar23 ||\n              local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18)))" ( (binary_expression "local_7c < uVar23 ||\n              local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))" (binary_expression "local_7c < uVar23" identifier < identifier) || (binary_expression "local_7c - uVar23 <\n              (uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))" (binary_expression "local_7c - uVar23" identifier - identifier) < (call_expression "(uint)(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18))" ( (binary_expression "local_78 < (undefined4 *******)(local_6c + (int)pppppppuVar18)" identifier < (cast_expression "(undefined4 *******)(local_6c + (int)pppppppuVar18)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(local_6c + (int)pppppppuVar18)" ( (binary_expression "local_6c + (int)pppppppuVar18" identifier + (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))))) )) (compound_statement "{\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x317;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" { (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f9b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0x317;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0x317" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x1547d9" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328f37;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328f37" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "bVar37 = CARRY4(local_64,local_6c);" (assignment_expression "bVar37 = CARRY4(local_64,local_6c)" identifier = (call_expression "CARRY4(local_64,local_6c)" identifier (argument_list "(local_64,local_6c)" ( identifier , identifier )))) ;) (expression_statement "local_64 = local_64 + local_6c;" (assignment_expression "local_64 = local_64 + local_6c" identifier = (binary_expression "local_64 + local_6c" identifier + identifier)) ;) (expression_statement "local_60 = local_60 + local_68 + (uint)bVar37;" (assignment_expression "local_60 = local_60 + local_68 + (uint)bVar37" identifier = (binary_expression "local_60 + local_68 + (uint)bVar37" (binary_expression "local_60 + local_68" identifier + identifier) + (cast_expression "(uint)bVar37" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((char)local_5c == '\0') {\n            if ((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))\n            {\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = of->base_ + local_64;\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)((int)puVar33 + -4) = 0;\n            *(section_size_type **)((int)puVar33 + -8) = &len;\n            *(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;\n            *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;\n            puVar20 = Object::section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4));\n            local_78 = *(undefined4 *******)(local_58 + 8);\n            uVar23 = *(uint *)(local_58 + 0xc);\n            *(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            *(undefined4 *)((int)puVar33 + -0xc) = 1;\n            *(undefined4 *)((int)puVar33 + -0x10) = 0x40;\n            *(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;\n            *(uchar **)((int)puVar33 + -0x18) = local_5c;\n            *(section_size_type *)((int)puVar33 + -0x1c) = len;\n            *(uchar **)((int)puVar33 + -0x20) = puVar20;\n            *(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;\n            bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8));\n            puVar32 = (undefined1 *)puVar33;\n            if (!bVar37) {\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = pOVar6->postprocessing_buffer_ + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);\n            uVar27 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;\n            local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);\n            if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }\n            local_2c = pppppppuVar18;\n            local_28 = local_5c;\n            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;\n            puVar31 = (undefined1 *)((int)puVar33 + -0x10);\n            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;\n            local_34 = local_78;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;\n            std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));\nLAB_003288bb:\n            puVar32 = puVar31 + 0x10;\n          }" if (parenthesized_expression "((char)local_5c == '\0')" ( (binary_expression "(char)local_5c == '\0'" (cast_expression "(char)local_5c" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if ((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))\n            {\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = of->base_ + local_64;\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)((int)puVar33 + -4) = 0;\n            *(section_size_type **)((int)puVar33 + -8) = &len;\n            *(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;\n            *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;\n            puVar20 = Object::section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4));\n            local_78 = *(undefined4 *******)(local_58 + 8);\n            uVar23 = *(uint *)(local_58 + 0xc);\n            *(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;\n            *(undefined4 *)((int)puVar33 + -0xc) = 1;\n            *(undefined4 *)((int)puVar33 + -0x10) = 0x40;\n            *(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;\n            *(uchar **)((int)puVar33 + -0x18) = local_5c;\n            *(section_size_type *)((int)puVar33 + -0x1c) = len;\n            *(uchar **)((int)puVar33 + -0x20) = puVar20;\n            *(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;\n            bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8));\n            puVar32 = (undefined1 *)puVar33;\n            if (!bVar37) {\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }\n          }" { (if_statement "if ((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))\n            {\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }" if (parenthesized_expression "((local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0))" ( (binary_expression "(local_60 < 0) ||\n               (iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0)" (parenthesized_expression "(local_60 < 0)" ( (binary_expression "local_60 < 0" identifier < number_literal) )) || (parenthesized_expression "(iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0)" ( (comma_expression "iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64),\n               iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0" (assignment_expression "iVar26 = local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64)" identifier = (binary_expression "local_60 + (uint)CARRY4((uint)pppppppuVar18,local_64)" identifier + (cast_expression "(uint)CARRY4((uint)pppppppuVar18,local_64)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)pppppppuVar18,local_64)" identifier (argument_list "((uint)pppppppuVar18,local_64)" ( (cast_expression "(uint)pppppppuVar18" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) , (comma_expression "iVar22 = *(int *)((int)&of->file_size_ + 4),\n               uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0" (assignment_expression "iVar22 = *(int *)((int)&of->file_size_ + 4)" identifier = (pointer_expression "*(int *)((int)&of->file_size_ + 4)" * (cast_expression "(int *)((int)&of->file_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&of->file_size_ + 4)" ( (binary_expression "(int)&of->file_size_ + 4" (cast_expression "(int)&of->file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier))) + number_literal) ))))) , (comma_expression "uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)),\n               iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0" (assignment_expression "uVar23 = (uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64))" identifier = (call_expression "(uint)(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64))" ( (binary_expression "*(undefined1 **)&of->file_size_ <\n                              (undefined1 *)((int)pppppppuVar18 + local_64)" (pointer_expression "*(undefined1 **)&of->file_size_" * (cast_expression "(undefined1 **)&of->file_size_" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier)))) < (cast_expression "(undefined1 *)((int)pppppppuVar18 + local_64)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppuVar18 + local_64)" ( (binary_expression "(int)pppppppuVar18 + local_64" (cast_expression "(int)pppppppuVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) )))) , (comma_expression "iVar30 = iVar22 - iVar26,\n               (SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0" (assignment_expression "iVar30 = iVar22 - iVar26" identifier = (binary_expression "iVar22 - iVar26" identifier - identifier)) , (binary_expression "(SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)) != (int)(iVar30 - uVar23) < 0" (parenthesized_expression "(SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23))" ( (binary_expression "SBORROW4(iVar22,iVar26) != SBORROW4(iVar30,uVar23)" (call_expression "SBORROW4(iVar22,iVar26)" identifier (argument_list "(iVar22,iVar26)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar30,uVar23)" identifier (argument_list "(iVar30,uVar23)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar30 - uVar23) < 0" (cast_expression "(int)(iVar30 - uVar23)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar30 - uVar23)" ( (binary_expression "iVar30 - uVar23" identifier - identifier) ))) < number_literal)))))) ))) )) (compound_statement "{\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }" { (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f89" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0x6f;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0x6f" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5;" (assignment_expression "*(undefined1 **)((int)puVar33 + -0x14) = &LAB_00328fe5" (pointer_expression "*(undefined1 **)((int)puVar33 + -0x14)" * (cast_expression "(undefined1 **)((int)puVar33 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_00328fe5" & identifier)) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "local_5c = of->base_ + local_64;" (assignment_expression "local_5c = of->base_ + local_64" identifier = (binary_expression "of->base_ + local_64" (field_expression "of->base_" identifier -> field_identifier) + identifier)) ;) (if_statement "if ((char)local_80 == '\0') goto LAB_00328869;" if (parenthesized_expression "((char)local_80 == '\0')" ( (binary_expression "(char)local_80 == '\0'" (cast_expression "(char)local_80" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00328869;" goto statement_identifier ;)) (labeled_statement "LAB_00328baf:\n            *(undefined4 *)((int)puVar33 + -4) = 0;" statement_identifier : (expression_statement "*(undefined4 *)((int)puVar33 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar33 + -4) = 0" (pointer_expression "*(undefined4 *)((int)puVar33 + -4)" * (cast_expression "(undefined4 *)((int)puVar33 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -4)" ( (binary_expression "(int)puVar33 + -4" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;)) (expression_statement "*(section_size_type **)((int)puVar33 + -8) = &len;" (assignment_expression "*(section_size_type **)((int)puVar33 + -8) = &len" (pointer_expression "*(section_size_type **)((int)puVar33 + -8)" * (cast_expression "(section_size_type **)((int)puVar33 + -8)" ( (type_descriptor "section_size_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&len" & identifier)) ;) (expression_statement "*(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50;" (assignment_expression "*(_Rb_tree_color *)((int)puVar33 + -0xc) = local_50" (pointer_expression "*(_Rb_tree_color *)((int)puVar33 + -0xc)" * (cast_expression "(_Rb_tree_color *)((int)puVar33 + -0xc)" ( (type_descriptor "_Rb_tree_color *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this;" (assignment_expression "*(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10) = this" (pointer_expression "*(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10)" * (call_expression "(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x10)" (parenthesized_expression "(Sized_relobj_file<64,_true> **)" ( (comma_expression "Sized_relobj_file<64,_true> **" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_true> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328bc3" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "puVar20 = Object::" (assignment_expression "puVar20 = Object" identifier = identifier) : :) (expression_statement "section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4));" (call_expression "section_contents\n                                (*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4))" identifier (argument_list "(*(Object **)((int)puVar33 + -0x10),*(uint *)((int)puVar33 + -0xc),\n                                 *(section_size_type **)((int)puVar33 + -8),\n                                 *(bool *)((int)puVar33 + -4))" ( (pointer_expression "*(Object **)((int)puVar33 + -0x10)" * (cast_expression "(Object **)((int)puVar33 + -0x10)" ( (type_descriptor "Object **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)puVar33 + -0xc)" * (cast_expression "(uint *)((int)puVar33 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(section_size_type **)((int)puVar33 + -8)" * (cast_expression "(section_size_type **)((int)puVar33 + -8)" ( (type_descriptor "section_size_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)puVar33 + -4)" * (cast_expression "(bool *)((int)puVar33 + -4)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -4)" ( (binary_expression "(int)puVar33 + -4" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "local_78 = *(undefined4 *******)(local_58 + 8);" (assignment_expression "local_78 = *(undefined4 *******)(local_58 + 8)" identifier = (pointer_expression "*(undefined4 *******)(local_58 + 8)" * (cast_expression "(undefined4 *******)(local_58 + 8)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(local_58 + 8)" ( (binary_expression "local_58 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = *(uint *)(local_58 + 0xc);" (assignment_expression "uVar23 = *(uint *)(local_58 + 0xc)" identifier = (pointer_expression "*(uint *)(local_58 + 0xc)" * (cast_expression "(uint *)(local_58 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0xc)" ( (binary_expression "local_58 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;" (assignment_expression "*(uint *)((int)puVar33 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18" (pointer_expression "*(uint *)((int)puVar33 + -4)" * (cast_expression "(uint *)((int)puVar33 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -4)" ( (binary_expression "(int)puVar33 + -4" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18" (binary_expression "(uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8" (binary_expression "(uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8" (binary_expression "(uint)local_78 >> 0x18" (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "((uint)local_78 & 0xff0000) >> 8" (parenthesized_expression "((uint)local_78 & 0xff0000)" ( (binary_expression "(uint)local_78 & 0xff0000" (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((uint)local_78 & 0xff00) << 8" (parenthesized_expression "((uint)local_78 & 0xff00)" ( (binary_expression "(uint)local_78 & 0xff00" (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(int)local_78 << 0x18" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal))) ;) (expression_statement "*(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18\n            ;" (assignment_expression "*(uint *)((int)puVar33 + -8) =\n                 uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18" (pointer_expression "*(uint *)((int)puVar33 + -8)" * (cast_expression "(uint *)((int)puVar33 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 | uVar23 << 0x18" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8" (binary_expression "uVar23 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar23 & 0xff0000) >> 8" (parenthesized_expression "(uVar23 & 0xff0000)" ( (binary_expression "uVar23 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar23 & 0xff00) << 8" (parenthesized_expression "(uVar23 & 0xff00)" ( (binary_expression "uVar23 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar23 << 0x18" identifier << number_literal))) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0x10) = 0x40;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x10) = 0x40" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x10)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18;" (assignment_expression "*(undefined4 ********)((int)puVar33 + -0x14) = pppppppuVar18" (pointer_expression "*(undefined4 ********)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 ********)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uchar **)((int)puVar33 + -0x18) = local_5c;" (assignment_expression "*(uchar **)((int)puVar33 + -0x18) = local_5c" (pointer_expression "*(uchar **)((int)puVar33 + -0x18)" * (cast_expression "(uchar **)((int)puVar33 + -0x18)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x18)" ( (binary_expression "(int)puVar33 + -0x18" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(section_size_type *)((int)puVar33 + -0x1c) = len;" (assignment_expression "*(section_size_type *)((int)puVar33 + -0x1c) = len" (pointer_expression "*(section_size_type *)((int)puVar33 + -0x1c)" * (cast_expression "(section_size_type *)((int)puVar33 + -0x1c)" ( (type_descriptor "section_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x1c)" ( (binary_expression "(int)puVar33 + -0x1c" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uchar **)((int)puVar33 + -0x20) = puVar20;" (assignment_expression "*(uchar **)((int)puVar33 + -0x20) = puVar20" (pointer_expression "*(uchar **)((int)puVar33 + -0x20)" * (cast_expression "(uchar **)((int)puVar33 + -0x20)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x20)" ( (binary_expression "(int)puVar33 + -0x20" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x24) = 0x328bf3" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x24)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x24)" ( (binary_expression "(int)puVar33 + -0x24" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8));" (assignment_expression "bVar37 = decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8))" identifier = (call_expression "decompress_input_section\n                               (*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8))" identifier (argument_list "(*(uchar **)((int)puVar33 + -0x20),*(ulong *)((int)puVar33 + -0x1c),\n                                *(uchar **)((int)puVar33 + -0x18),*(ulong *)((int)puVar33 + -0x14),\n                                *(int *)((int)puVar33 + -0x10),*(bool *)((int)puVar33 + -0xc),\n                                *(Elf_Xword *)((int)puVar33 + -8))" ( (pointer_expression "*(uchar **)((int)puVar33 + -0x20)" * (cast_expression "(uchar **)((int)puVar33 + -0x20)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x20)" ( (binary_expression "(int)puVar33 + -0x20" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(ulong *)((int)puVar33 + -0x1c)" * (cast_expression "(ulong *)((int)puVar33 + -0x1c)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x1c)" ( (binary_expression "(int)puVar33 + -0x1c" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uchar **)((int)puVar33 + -0x18)" * (cast_expression "(uchar **)((int)puVar33 + -0x18)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x18)" ( (binary_expression "(int)puVar33 + -0x18" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(ulong *)((int)puVar33 + -0x14)" * (cast_expression "(ulong *)((int)puVar33 + -0x14)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)puVar33 + -0xc)" * (cast_expression "(bool *)((int)puVar33 + -0xc)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Elf_Xword *)((int)puVar33 + -8)" * (cast_expression "(Elf_Xword *)((int)puVar33 + -8)" ( (type_descriptor "Elf_Xword *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "puVar32 = (undefined1 *)puVar33;" (assignment_expression "puVar32 = (undefined1 *)puVar33" identifier = (cast_expression "(undefined1 *)puVar33" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (!bVar37) {\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }" if (parenthesized_expression "(!bVar37)" ( (unary_expression "!bVar37" ! identifier) )) (compound_statement "{\n              pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;\n              *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n              *(undefined4 ********)((int)puVar33 + -0x10) = &local_34;\n              p_Var13 = pp_Var12[0x10];\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;\n              (*p_Var13)();\n              local_78 = local_34;\n              *(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;\n              uVar21 = gettext();\n              *(undefined4 *******)((int)puVar33 + -0xc) = local_78;\n              *(undefined4 *)((int)puVar33 + -0x10) = uVar21;\n              *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;\n                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;\n              Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));\n              puVar32 = (undefined1 *)((int)puVar33 + -4);\n              if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;\n              puVar31 = (undefined1 *)((int)puVar33 + -0x14);\n              *(undefined4 *******)((int)puVar33 + -0x14) = local_34;\n              *(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;\n              operator_delete(*(void **)((int)puVar33 + -0x14));\n              goto LAB_003288bb;\n            }" { (expression_statement "pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n              ;" (assignment_expression "pp_Var12 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object" identifier = (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(_Rb_tree_color *)((int)puVar33 + -8) = local_50;" (assignment_expression "*(_Rb_tree_color *)((int)puVar33 + -8) = local_50" (pointer_expression "*(_Rb_tree_color *)((int)puVar33 + -8)" * (cast_expression "(_Rb_tree_color *)((int)puVar33 + -8)" ( (type_descriptor "_Rb_tree_color *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;" (assignment_expression "*(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this" (pointer_expression "*(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc)" * (call_expression "(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc)" (parenthesized_expression "(Sized_relobj_file<64,_true> **)" ( (comma_expression "Sized_relobj_file<64,_true> **" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_true> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 ********)((int)puVar33 + -0x10) = &local_34;" (assignment_expression "*(undefined4 ********)((int)puVar33 + -0x10) = &local_34" (pointer_expression "*(undefined4 ********)((int)puVar33 + -0x10)" * (cast_expression "(undefined4 ********)((int)puVar33 + -0x10)" ( (type_descriptor "undefined4 ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "p_Var13 = pp_Var12[0x10];" (assignment_expression "p_Var13 = pp_Var12[0x10]" identifier = (subscript_expression "pp_Var12[0x10]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328c13;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328c13" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*p_Var13)();" (call_expression "(*p_Var13)()" (parenthesized_expression "(*p_Var13)" ( (pointer_expression "*p_Var13" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "local_78 = local_34;" (assignment_expression "local_78 = local_34" identifier = identifier) ;) (expression_statement "*(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922;" (assignment_expression "*(undefined ***)((int)puVar33 + -0x14) = local_84 + -0x57922" (pointer_expression "*(undefined ***)((int)puVar33 + -0x14)" * (cast_expression "(undefined ***)((int)puVar33 + -0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x57922" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0x18) = 0x328c28;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x18) = 0x328c28" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x18)" ( (binary_expression "(int)puVar33 + -0x18" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar21 = gettext();" (assignment_expression "uVar21 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *******)((int)puVar33 + -0xc) = local_78;" (assignment_expression "*(undefined4 *******)((int)puVar33 + -0xc) = local_78" (pointer_expression "*(undefined4 *******)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *******)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0x10) = uVar21;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x10) = uVar21" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x10)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this;" (assignment_expression "*(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14) = this" (pointer_expression "*(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14)" * (call_expression "(Sized_relobj_file<64,_true> **)((int)puVar33 + -0x14)" (parenthesized_expression "(Sized_relobj_file<64,_true> **)" ( (comma_expression "Sized_relobj_file<64,_true> **" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_true> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x18) = 0x328c3b" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x18)" ( (binary_expression "(int)puVar33 + -0x18" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "Object::error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));" statement_identifier : (ERROR ":" :) (expression_statement "error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10));" (call_expression "error(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10))" identifier (argument_list "(*(Object **)((int)puVar33 + -0x14),*(char **)((int)puVar33 + -0x10))" ( (pointer_expression "*(Object **)((int)puVar33 + -0x14)" * (cast_expression "(Object **)((int)puVar33 + -0x14)" ( (type_descriptor "Object **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (expression_statement "puVar32 = (undefined1 *)((int)puVar33 + -4);" (assignment_expression "puVar32 = (undefined1 *)((int)puVar33 + -4)" identifier = (cast_expression "(undefined1 *)((int)puVar33 + -4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -4)" ( (binary_expression "(int)puVar33 + -4" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((undefined4 *******)local_34 == &local_2c) goto LAB_003288be;" if (parenthesized_expression "((undefined4 *******)local_34 == &local_2c)" ( (binary_expression "(undefined4 *******)local_34 == &local_2c" (cast_expression "(undefined4 *******)local_34" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier) == (pointer_expression "&local_2c" & identifier)) )) (goto_statement "goto LAB_003288be;" goto statement_identifier ;)) (expression_statement "puVar31 = (undefined1 *)((int)puVar33 + -0x14);" (assignment_expression "puVar31 = (undefined1 *)((int)puVar33 + -0x14)" identifier = (cast_expression "(undefined1 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *******)((int)puVar33 + -0x14) = local_34;" (assignment_expression "*(undefined4 *******)((int)puVar33 + -0x14) = local_34" (pointer_expression "*(undefined4 *******)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *******)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0x18) = 0x328c58;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x18) = 0x328c58" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x18)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x18)" ( (binary_expression "(int)puVar33 + -0x18" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar33 + -0x14));" (call_expression "operator_delete(*(void **)((int)puVar33 + -0x14))" identifier (argument_list "(*(void **)((int)puVar33 + -0x14))" ( (pointer_expression "*(void **)((int)puVar33 + -0x14)" * (cast_expression "(void **)((int)puVar33 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (goto_statement "goto LAB_003288bb;" goto statement_identifier ;) })) }) (else_clause "else {\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = pOVar6->postprocessing_buffer_ + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);\n            uVar27 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;\n            local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);\n            if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }\n            local_2c = pppppppuVar18;\n            local_28 = local_5c;\n            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;\n            puVar31 = (undefined1 *)((int)puVar33 + -0x10);\n            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;\n            local_34 = local_78;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;\n            std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));\nLAB_003288bb:\n            puVar32 = puVar31 + 0x10;\n          }" else (compound_statement "{\n            if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }\n            local_5c = pOVar6->postprocessing_buffer_ + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);\n            uVar27 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;\n            local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);\n            if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }\n            local_2c = pppppppuVar18;\n            local_28 = local_5c;\n            *(undefined4 ********)((int)puVar33 + -0xc) = &local_34;\n            puVar31 = (undefined1 *)((int)puVar33 + -0x10);\n            *(Read_multiple **)((int)puVar33 + -0x10) = &rm;\n            local_34 = local_78;\n                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;\n            std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));\nLAB_003288bb:\n            puVar32 = puVar31 + 0x10;\n          }" { (if_statement "if (pOVar6->postprocessing_buffer_ == (uchar *)0x0) {\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }" if (parenthesized_expression "(pOVar6->postprocessing_buffer_ == (uchar *)0x0)" ( (binary_expression "pOVar6->postprocessing_buffer_ == (uchar *)0x0" (field_expression "pOVar6->postprocessing_buffer_" identifier -> field_identifier) == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)((int)puVar33 + -0xc) = 0xe34;\n              *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;\n              do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));\n            }" { (labeled_statement "LAB_00328fac:\n              *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;" statement_identifier : (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f85" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f85" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0xe34;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0xe34" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328fca;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328fca" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                  *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "local_5c = pOVar6->postprocessing_buffer_ + local_64;" (assignment_expression "local_5c = pOVar6->postprocessing_buffer_ + local_64" identifier = (binary_expression "pOVar6->postprocessing_buffer_ + local_64" (field_expression "pOVar6->postprocessing_buffer_" identifier -> field_identifier) + identifier)) ;) (if_statement "if ((char)local_80 != '\0') goto LAB_00328baf;" if (parenthesized_expression "((char)local_80 != '\0')" ( (binary_expression "(char)local_80 != '\0'" (cast_expression "(char)local_80" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00328baf;" goto statement_identifier ;)) (labeled_statement "LAB_00328869:\n            uVar23 = *(uint *)(local_58 + 0x18);" statement_identifier : (expression_statement "uVar23 = *(uint *)(local_58 + 0x18);" (assignment_expression "uVar23 = *(uint *)(local_58 + 0x18)" identifier = (pointer_expression "*(uint *)(local_58 + 0x18)" * (cast_expression "(uint *)(local_58 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x18)" ( (binary_expression "local_58 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "uVar27 = *(uint *)(local_58 + 0x1c);" (assignment_expression "uVar27 = *(uint *)(local_58 + 0x1c)" identifier = (pointer_expression "*(uint *)(local_58 + 0x1c)" * (cast_expression "(uint *)(local_58 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x1c)" ( (binary_expression "local_58 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18;" (assignment_expression "local_30 = uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18" identifier = (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8 |\n                       uVar23 << 0x18" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8 | (uVar23 & 0xff00) << 8" (binary_expression "uVar23 >> 0x18 | (uVar23 & 0xff0000) >> 8" (binary_expression "uVar23 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar23 & 0xff0000) >> 8" (parenthesized_expression "(uVar23 & 0xff0000)" ( (binary_expression "uVar23 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar23 & 0xff00) << 8" (parenthesized_expression "(uVar23 & 0xff00)" ( (binary_expression "uVar23 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar23 << 0x18" identifier << number_literal))) ;) (expression_statement "local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18);" (assignment_expression "local_78 = (undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18)" identifier = (cast_expression "(undefined4 ******)\n                       (uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18)" ( (binary_expression "uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8 |\n                       uVar27 << 0x18" (binary_expression "uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8 | (uVar27 & 0xff00) << 8" (binary_expression "uVar27 >> 0x18 | (uVar27 & 0xff0000) >> 8" (binary_expression "uVar27 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar27 & 0xff0000) >> 8" (parenthesized_expression "(uVar27 & 0xff0000)" ( (binary_expression "uVar27 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar27 & 0xff00) << 8" (parenthesized_expression "(uVar27 & 0xff00)" ( (binary_expression "uVar27 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar27 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start) {\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }" if (parenthesized_expression "(rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_start)" ( (ERROR "rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::" (comma_expression "rm.\n                super__Vector_base<gold::File_read::Read_multiple_entry,_std" (binary_expression "rm.\n                super__Vector_base<gold" (field_expression "rm.\n                super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::File_read::Read_multiple_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : : (binary_expression "Read_multiple_entry>_>\n                ._M_impl._M_finish !=\n                rm.\n                super__Vector_base<gold" (field_expression "Read_multiple_entry>_>\n                ._M_impl._M_finish" (field_expression "Read_multiple_entry>_>\n                ._M_impl" (binary_expression "Read_multiple_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (binary_expression "rm.\n                super__Vector_base<gold" (field_expression "rm.\n                super__Vector_base" identifier . field_identifier) < identifier)) : : identifier : : (comma_expression "Read_multiple_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Read_multiple_entry>_>\n                ._M_impl._M_start" (field_expression "Read_multiple_entry>_>\n                ._M_impl" (binary_expression "Read_multiple_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n              piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);\n              uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);\n              iVar22 = local_30 - *piVar3;\n              cVar29 = (char)local_80;\n              if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }\n              local_9d = cVar29;\n            }" { (expression_statement "piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4);" (assignment_expression "piVar3 = (int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4)" identifier = (cast_expression "(int *)((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4)" ( (ERROR "(int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::" (comma_expression "(int)&rm.\n                                     super__Vector_base<gold::File_read::Read_multiple_entry,_std" (binary_expression "(int)&rm.\n                                     super__Vector_base<gold" (cast_expression "(int)&rm.\n                                     super__Vector_base" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&rm.\n                                     super__Vector_base" & (field_expression "rm.\n                                     super__Vector_base" identifier . field_identifier))) < identifier) (ERROR "::File_read::Read_multiple_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset + 4" (field_expression "Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1].file_offset" (subscript_expression "Read_multiple_entry>_>\n                                     ._M_impl._M_finish[-1]" (field_expression "Read_multiple_entry>_>\n                                     ._M_impl._M_finish" (field_expression "Read_multiple_entry>_>\n                                     ._M_impl" (binary_expression "Read_multiple_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ number_literal ]) . field_identifier) + number_literal) )))) ;) (expression_statement "uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset);" (assignment_expression "uVar23 = (uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset)" identifier = (call_expression "(uint)(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset)" ( (binary_expression "local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base<gold" (binary_expression "local_78 <\n                             *(undefined4 ********)\n                              &rm.\n                               super__Vector_base" identifier < (pointer_expression "*(undefined4 ********)\n                              &rm.\n                               super__Vector_base" * (cast_expression "(undefined4 ********)\n                              &rm.\n                               super__Vector_base" ( (type_descriptor "undefined4 ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (pointer_expression "&rm.\n                               super__Vector_base" & (field_expression "rm.\n                               super__Vector_base" identifier . field_identifier))))) < identifier) (ERROR "::File_read::Read_multiple_entry" : : identifier : : identifier) , (ERROR "_std::allocator<gold::File_read::" identifier : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1].file_offset" (subscript_expression "Read_multiple_entry>_>\n                               ._M_impl._M_finish[-1]" (field_expression "Read_multiple_entry>_>\n                               ._M_impl._M_finish" (field_expression "Read_multiple_entry>_>\n                               ._M_impl" (binary_expression "Read_multiple_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ number_literal ]) . field_identifier) )))) ;) (expression_statement "iVar22 = local_30 - *piVar3;" (assignment_expression "iVar22 = local_30 - *piVar3" identifier = (binary_expression "local_30 - *piVar3" identifier - (pointer_expression "*piVar3" * identifier))) ;) (expression_statement "cVar29 = (char)local_80;" (assignment_expression "cVar29 = (char)local_80" identifier = (cast_expression "(char)local_80" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0) {\n                cVar29 = local_9d;\n              }" if (parenthesized_expression "((SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0)" ( (binary_expression "(SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)) ==\n                  (int)(iVar22 - uVar23) < 0" (parenthesized_expression "(SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23))" ( (binary_expression "SBORROW4(local_30,*piVar3) != SBORROW4(iVar22,uVar23)" (call_expression "SBORROW4(local_30,*piVar3)" identifier (argument_list "(local_30,*piVar3)" ( identifier , (pointer_expression "*piVar3" * identifier) ))) != (call_expression "SBORROW4(iVar22,uVar23)" identifier (argument_list "(iVar22,uVar23)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar22 - uVar23) < 0" (cast_expression "(int)(iVar22 - uVar23)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar22 - uVar23)" ( (binary_expression "iVar22 - uVar23" identifier - identifier) ))) < number_literal)) )) (compound_statement "{\n                cVar29 = local_9d;\n              }" { (expression_statement "cVar29 = local_9d;" (assignment_expression "cVar29 = local_9d" identifier = identifier) ;) })) (expression_statement "local_9d = cVar29;" (assignment_expression "local_9d = cVar29" identifier = identifier) ;) })) (expression_statement "local_2c = pppppppuVar18;" (assignment_expression "local_2c = pppppppuVar18" identifier = identifier) ;) (expression_statement "local_28 = local_5c;" (assignment_expression "local_28 = local_5c" identifier = identifier) ;) (expression_statement "*(undefined4 ********)((int)puVar33 + -0xc) = &local_34;" (assignment_expression "*(undefined4 ********)((int)puVar33 + -0xc) = &local_34" (pointer_expression "*(undefined4 ********)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 ********)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "puVar31 = (undefined1 *)((int)puVar33 + -0x10);" (assignment_expression "puVar31 = (undefined1 *)((int)puVar33 + -0x10)" identifier = (cast_expression "(undefined1 *)((int)puVar33 + -0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(Read_multiple **)((int)puVar33 + -0x10) = &rm;" (assignment_expression "*(Read_multiple **)((int)puVar33 + -0x10) = &rm" (pointer_expression "*(Read_multiple **)((int)puVar33 + -0x10)" * (cast_expression "(Read_multiple **)((int)puVar33 + -0x10)" ( (type_descriptor "Read_multiple **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&rm" & identifier)) ;) (expression_statement "local_34 = local_78;" (assignment_expression "local_34 = local_78" identifier = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x3288bb" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::\n            vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));" statement_identifier (ERROR "::\n            vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));" statement_identifier (ERROR "::Read_multiple_entry,_std::allocator<gold:" : : (comma_expression "Read_multiple_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "File_read::Read_multiple_entry>_>\n            ::emplace_back<gold::File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));" statement_identifier (ERROR "::Read_multiple_entry>_>\n            ::emplace_back<gold:" : : (binary_expression "Read_multiple_entry>_" identifier > identifier) > : : (binary_expression "emplace_back<gold" identifier < identifier) :) : (labeled_statement "File_read::Read_multiple_entry>\n                      (*(vector<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));" statement_identifier (ERROR "::Read_multiple_entry>\n                      (*(vector<gold:" : : identifier > ( * ( (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));" statement_identifier (ERROR "::Read_multiple_entry,_std::allocator<gold:" : : (comma_expression "Read_multiple_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "File_read::Read_multiple_entry>_>\n                         **)((int)puVar33 + -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));" statement_identifier : (ERROR ":Read_multiple_entry>_>\n                         **)((int)puVar33" : (binary_expression "Read_multiple_entry>_" identifier > identifier) > * * ) ( ( primitive_type (ERROR ")" )) identifier) (expression_statement "+ -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc));" (comma_expression "+ -0x10),*(Read_multiple_entry **)((int)puVar33 + -0xc)" (unary_expression "+ -0x10" + number_literal) (ERROR ")" )) , (pointer_expression "*(Read_multiple_entry **)((int)puVar33 + -0xc)" * (cast_expression "(Read_multiple_entry **)((int)puVar33 + -0xc)" ( (type_descriptor "Read_multiple_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) (ERROR ")" )) ;))))))) (labeled_statement "LAB_003288bb:\n            puVar32 = puVar31 + 0x10;" statement_identifier : (expression_statement "puVar32 = puVar31 + 0x10;" (assignment_expression "puVar32 = puVar31 + 0x10" identifier = (binary_expression "puVar31 + 0x10" identifier + number_literal)) ;)) }))) (labeled_statement "LAB_003288be:\n          local_54->view = local_5c;" statement_identifier : (expression_statement "local_54->view = local_5c;" (assignment_expression "local_54->view = local_5c" (field_expression "local_54->view" identifier -> field_identifier) = identifier) ;)) (expression_statement "puVar33 = (undefined4 *)puVar32;" (assignment_expression "puVar33 = (undefined4 *)puVar32" identifier = (cast_expression "(undefined4 *)puVar32" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (((pOVar6->super_Output_data).field_0x1c & 1) == 0) {\nLAB_00328dcc:\n            ppuVar15 = local_84;\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n            *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" if (parenthesized_expression "(((pOVar6->super_Output_data).field_0x1c & 1) == 0)" ( (binary_expression "((pOVar6->super_Output_data).field_0x1c & 1) == 0" (parenthesized_expression "((pOVar6->super_Output_data).field_0x1c & 1)" ( (binary_expression "(pOVar6->super_Output_data).field_0x1c & 1" (field_expression "(pOVar6->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00328dcc:\n            ppuVar15 = local_84;\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n            *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" { (labeled_statement "LAB_00328dcc:\n            ppuVar15 = local_84;" statement_identifier : (expression_statement "ppuVar15 = local_84;" (assignment_expression "ppuVar15 = local_84" identifier = identifier) ;)) (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f8b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)ppuVar15 + -0x19cca3" (cast_expression "(int)ppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328dea;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328dea" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "uVar27 = (uint)(pOVar6->super_Output_data).address_;" (assignment_expression "uVar27 = (uint)(pOVar6->super_Output_data).address_" identifier = (field_expression "(uint)(pOVar6->super_Output_data).address_" (call_expression "(uint)(pOVar6->super_Output_data)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "iVar22 = *(int *)((int)&(pOVar6->super_Output_data).address_ + 4);" (assignment_expression "iVar22 = *(int *)((int)&(pOVar6->super_Output_data).address_ + 4)" identifier = (pointer_expression "*(int *)((int)&(pOVar6->super_Output_data).address_ + 4)" * (cast_expression "(int *)((int)&(pOVar6->super_Output_data).address_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar6->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar6->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar6->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar6->super_Output_data).address_" & (field_expression "(pOVar6->super_Output_data).address_" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "pGVar19 = (*local_74)->options_;" (assignment_expression "pGVar19 = (*local_74)->options_" identifier = (field_expression "(*local_74)->options_" (parenthesized_expression "(*local_74)" ( (pointer_expression "*local_74" * identifier) )) -> field_identifier)) ;) (expression_statement "uVar23 = CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5);" (assignment_expression "uVar23 = CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5)" identifier = (call_expression "CONCAT31(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5)" identifier (argument_list "(local_5c._1_3_,(byte)pOVar6->field_0x90 >> 5)" ( (field_expression "local_5c._1_3_" identifier . field_identifier) , (binary_expression "(byte)pOVar6->field_0x90 >> 5" (cast_expression "(byte)pOVar6->field_0x90" ( (type_descriptor "byte" type_identifier) ) (field_expression "pOVar6->field_0x90" identifier -> field_identifier)) >> number_literal) )))) ;) (expression_statement "*(uint *)&local_54->address = uVar27 + local_6c;" (assignment_expression "*(uint *)&local_54->address = uVar27 + local_6c" (pointer_expression "*(uint *)&local_54->address" * (cast_expression "(uint *)&local_54->address" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_54->address" & (field_expression "local_54->address" identifier -> field_identifier)))) = (binary_expression "uVar27 + local_6c" identifier + identifier)) ;) (expression_statement "*(uint *)((int)&local_54->address + 4) = iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)\n          ;" (assignment_expression "*(uint *)((int)&local_54->address + 4) = iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)" (pointer_expression "*(uint *)((int)&local_54->address + 4)" * (cast_expression "(uint *)((int)&local_54->address + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_54->address + 4)" ( (binary_expression "(int)&local_54->address + 4" (cast_expression "(int)&local_54->address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_54->address" & (field_expression "local_54->address" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "iVar22 + local_68 + (uint)CARRY4(uVar27,local_6c)" (binary_expression "iVar22 + local_68" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar27,local_6c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,local_6c)" identifier (argument_list "(uVar27,local_6c)" ( identifier , identifier )))))) ;) (labeled_statement "LAB_003288fd:\n          local_5c = (uchar *)(uVar23 & 0xffffff01);" statement_identifier : (expression_statement "local_5c = (uchar *)(uVar23 & 0xffffff01);" (assignment_expression "local_5c = (uchar *)(uVar23 & 0xffffff01)" identifier = (cast_expression "(uchar *)(uVar23 & 0xffffff01)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar23 & 0xffffff01)" ( (binary_expression "uVar23 & 0xffffff01" identifier & number_literal) )))) ;)) (expression_statement "*(uint *)&local_54->offset = local_64;" (assignment_expression "*(uint *)&local_54->offset = local_64" (pointer_expression "*(uint *)&local_54->offset" * (cast_expression "(uint *)&local_54->offset" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_54->offset" & (field_expression "local_54->offset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&local_54->offset + 4) = local_60;" (assignment_expression "*(int *)((int)&local_54->offset + 4) = local_60" (pointer_expression "*(int *)((int)&local_54->offset + 4)" * (cast_expression "(int *)((int)&local_54->offset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_54->offset + 4)" ( (binary_expression "(int)&local_54->offset + 4" (cast_expression "(int)&local_54->offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_54->offset" & (field_expression "local_54->offset" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "local_54->view_size = (section_size_type)pppppppuVar18;" (assignment_expression "local_54->view_size = (section_size_type)pppppppuVar18" (field_expression "local_54->view_size" identifier -> field_identifier) = (cast_expression "(section_size_type)pppppppuVar18" ( (type_descriptor "section_size_type" type_identifier) ) identifier)) ;) (expression_statement "local_54->is_input_output_view = (local_6c & local_68) == 0xffffffff;" (assignment_expression "local_54->is_input_output_view = (local_6c & local_68) == 0xffffffff" (field_expression "local_54->is_input_output_view" identifier -> field_identifier) = (binary_expression "(local_6c & local_68) == 0xffffffff" (parenthesized_expression "(local_6c & local_68)" ( (binary_expression "local_6c & local_68" identifier & identifier) )) == number_literal)) ;) (expression_statement "local_54->is_postprocessing_view = (bool)(char)local_5c;" (assignment_expression "local_54->is_postprocessing_view = (bool)(char)local_5c" (field_expression "local_54->is_postprocessing_view" identifier -> field_identifier) = (cast_expression "(bool)(char)local_5c" ( (type_descriptor "bool" primitive_type) ) (cast_expression "(char)local_5c" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if (pGVar19 == (General_options *)0x0) {\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" if (parenthesized_expression "(pGVar19 == (General_options *)0x0)" ( (binary_expression "pGVar19 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)((int)puVar33 + -0xc) = 0x5c;\n            *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;\n            do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));\n          }" { (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f02" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f02" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1a1d93" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x1a1d93" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328e3e" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                                *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) }))) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar37 = (bool)(((pGVar19->relocatable_).value ^ 1U) & &DAT_00000008 < pppppppuVar18);" (assignment_expression "bVar37 = (bool)(((pGVar19->relocatable_).value ^ 1U) & &DAT_00000008 < pppppppuVar18)" identifier = (cast_expression "(bool)(((pGVar19->relocatable_).value ^ 1U) & &DAT_00000008 < pppppppuVar18)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(((pGVar19->relocatable_).value ^ 1U) & &DAT_00000008 < pppppppuVar18)" ( (binary_expression "((pGVar19->relocatable_).value ^ 1U) & &DAT_00000008 < pppppppuVar18" (parenthesized_expression "((pGVar19->relocatable_).value ^ 1U)" ( (binary_expression "(pGVar19->relocatable_).value ^ 1U" (field_expression "(pGVar19->relocatable_).value" (parenthesized_expression "(pGVar19->relocatable_)" ( (field_expression "pGVar19->relocatable_" identifier -> field_identifier) )) . field_identifier) ^ number_literal) )) & (binary_expression "&DAT_00000008 < pppppppuVar18" (pointer_expression "&DAT_00000008" & identifier) < identifier)) )))) ;) (expression_statement "bVar39 = bVar37 == false;" (assignment_expression "bVar39 = bVar37 == false" identifier = (binary_expression "bVar37 == false" identifier == false)) ;) (if_statement "if (!bVar39) {\n          iVar22 = 0xc;\n          pbVar34 = (byte *)pOVar6->name_;\n          pbVar35 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar22 == 0) break;\n            iVar22 = iVar22 + -1;\n            bVar38 = *pbVar34 < *pbVar35;\n            bVar39 = *pbVar34 == *pbVar35;\n            pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n          } while (bVar39);\n          bVar37 = false;\n          bVar38 = (!bVar38 && !bVar39) == bVar38;\n          if (!bVar38) {\n            iVar22 = 0xc;\n            pbVar34 = (byte *)pOVar6->name_;\n            pbVar35 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar22 == 0) break;\n              iVar22 = iVar22 + -1;\n              bVar37 = *pbVar34 < *pbVar35;\n              bVar38 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) {\n              bVar37 = false;\n              goto LAB_0032894a;\n            }\n          }\n          *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n          *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n          *(Layout **)((int)puVar33 + -0x10) = layout;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)((int)puVar33 + -0x14) = 0x328d4c;\n          bVar37 = Layout::is_ctors_in_init_array\n                             (*(Layout **)((int)puVar33 + -0x10),*(Relobj **)((int)puVar33 + -0xc),\n                              *(uint *)((int)puVar33 + -8));\n        }" if (parenthesized_expression "(!bVar39)" ( (unary_expression "!bVar39" ! identifier) )) (compound_statement "{\n          iVar22 = 0xc;\n          pbVar34 = (byte *)pOVar6->name_;\n          pbVar35 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar22 == 0) break;\n            iVar22 = iVar22 + -1;\n            bVar38 = *pbVar34 < *pbVar35;\n            bVar39 = *pbVar34 == *pbVar35;\n            pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n          } while (bVar39);\n          bVar37 = false;\n          bVar38 = (!bVar38 && !bVar39) == bVar38;\n          if (!bVar38) {\n            iVar22 = 0xc;\n            pbVar34 = (byte *)pOVar6->name_;\n            pbVar35 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar22 == 0) break;\n              iVar22 = iVar22 + -1;\n              bVar37 = *pbVar34 < *pbVar35;\n              bVar38 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) {\n              bVar37 = false;\n              goto LAB_0032894a;\n            }\n          }\n          *(_Rb_tree_color *)((int)puVar33 + -8) = local_50;\n          *(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;\n          *(Layout **)((int)puVar33 + -0x10) = layout;\n                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */\n          *(undefined4 *)((int)puVar33 + -0x14) = 0x328d4c;\n          bVar37 = Layout::is_ctors_in_init_array\n                             (*(Layout **)((int)puVar33 + -0x10),*(Relobj **)((int)puVar33 + -0xc),\n                              *(uint *)((int)puVar33 + -8));\n        }" { (expression_statement "iVar22 = 0xc;" (assignment_expression "iVar22 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar34 = (byte *)pOVar6->name_;" (assignment_expression "pbVar34 = (byte *)pOVar6->name_" identifier = (cast_expression "(byte *)pOVar6->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar6->name_" identifier -> field_identifier))) ;) (expression_statement "pbVar35 = (byte *)((int)local_84 + -0x15ffb6);" (assignment_expression "pbVar35 = (byte *)((int)local_84 + -0x15ffb6)" identifier = (cast_expression "(byte *)((int)local_84 + -0x15ffb6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + -0x15ffb6)" ( (binary_expression "(int)local_84 + -0x15ffb6" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n            if (iVar22 == 0) break;\n            iVar22 = iVar22 + -1;\n            bVar38 = *pbVar34 < *pbVar35;\n            bVar39 = *pbVar34 == *pbVar35;\n            pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n          } while (bVar39);" do (compound_statement "{\n            if (iVar22 == 0) break;\n            iVar22 = iVar22 + -1;\n            bVar38 = *pbVar34 < *pbVar35;\n            bVar39 = *pbVar34 == *pbVar35;\n            pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n            pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n          }" { (if_statement "if (iVar22 == 0) break;" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar22 = iVar22 + -1;" (assignment_expression "iVar22 = iVar22 + -1" identifier = (binary_expression "iVar22 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar34 < *pbVar35;" (assignment_expression "bVar38 = *pbVar34 < *pbVar35" identifier = (binary_expression "*pbVar34 < *pbVar35" (pointer_expression "*pbVar34" * identifier) < (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "bVar39 = *pbVar34 == *pbVar35;" (assignment_expression "bVar39 = *pbVar34 == *pbVar35" identifier = (binary_expression "*pbVar34 == *pbVar35" (pointer_expression "*pbVar34" * identifier) == (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar34 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar35 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar39)" ( identifier )) ;) (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar38 = (!bVar38 && !bVar39) == bVar38;" (assignment_expression "bVar38 = (!bVar38 && !bVar39) == bVar38" identifier = (binary_expression "(!bVar38 && !bVar39) == bVar38" (parenthesized_expression "(!bVar38 && !bVar39)" ( (binary_expression "!bVar38 && !bVar39" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar39" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar38) {\n            iVar22 = 0xc;\n            pbVar34 = (byte *)pOVar6->name_;\n            pbVar35 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar22 == 0) break;\n              iVar22 = iVar22 + -1;\n              bVar37 = *pbVar34 < *pbVar35;\n              bVar38 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) {\n              bVar37 = false;\n              goto LAB_0032894a;\n            }\n          }" if (parenthesized_expression "(!bVar38)" ( (unary_expression "!bVar38" ! identifier) )) (compound_statement "{\n            iVar22 = 0xc;\n            pbVar34 = (byte *)pOVar6->name_;\n            pbVar35 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar22 == 0) break;\n              iVar22 = iVar22 + -1;\n              bVar37 = *pbVar34 < *pbVar35;\n              bVar38 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) {\n              bVar37 = false;\n              goto LAB_0032894a;\n            }\n          }" { (expression_statement "iVar22 = 0xc;" (assignment_expression "iVar22 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar34 = (byte *)pOVar6->name_;" (assignment_expression "pbVar34 = (byte *)pOVar6->name_" identifier = (cast_expression "(byte *)pOVar6->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar6->name_" identifier -> field_identifier))) ;) (expression_statement "pbVar35 = (byte *)((int)local_84 + -0x15ffaa);" (assignment_expression "pbVar35 = (byte *)((int)local_84 + -0x15ffaa)" identifier = (cast_expression "(byte *)((int)local_84 + -0x15ffaa)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + -0x15ffaa)" ( (binary_expression "(int)local_84 + -0x15ffaa" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n              if (iVar22 == 0) break;\n              iVar22 = iVar22 + -1;\n              bVar37 = *pbVar34 < *pbVar35;\n              bVar38 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            } while (bVar38);" do (compound_statement "{\n              if (iVar22 == 0) break;\n              iVar22 = iVar22 + -1;\n              bVar37 = *pbVar34 < *pbVar35;\n              bVar38 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;\n              pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;\n            }" { (if_statement "if (iVar22 == 0) break;" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar22 = iVar22 + -1;" (assignment_expression "iVar22 = iVar22 + -1" identifier = (binary_expression "iVar22 + -1" identifier + number_literal)) ;) (expression_statement "bVar37 = *pbVar34 < *pbVar35;" (assignment_expression "bVar37 = *pbVar34 < *pbVar35" identifier = (binary_expression "*pbVar34 < *pbVar35" (pointer_expression "*pbVar34" * identifier) < (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "bVar38 = *pbVar34 == *pbVar35;" (assignment_expression "bVar38 = *pbVar34 == *pbVar35" identifier = (binary_expression "*pbVar34 == *pbVar35" (pointer_expression "*pbVar34" * identifier) == (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar34 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar34 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (uint)bVar40 * -2 + 1" identifier = (binary_expression "pbVar35 + (uint)bVar40 * -2 + 1" (binary_expression "pbVar35 + (uint)bVar40 * -2" identifier + (binary_expression "(uint)bVar40 * -2" (cast_expression "(uint)bVar40" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar38)" ( identifier )) ;) (if_statement "if ((!bVar37 && !bVar38) != bVar37) {\n              bVar37 = false;\n              goto LAB_0032894a;\n            }" if (parenthesized_expression "((!bVar37 && !bVar38) != bVar37)" ( (binary_expression "(!bVar37 && !bVar38) != bVar37" (parenthesized_expression "(!bVar37 && !bVar38)" ( (binary_expression "!bVar37 && !bVar38" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar38" ! identifier)) )) != identifier) )) (compound_statement "{\n              bVar37 = false;\n              goto LAB_0032894a;\n            }" { (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (goto_statement "goto LAB_0032894a;" goto statement_identifier ;) })) })) (expression_statement "*(_Rb_tree_color *)((int)puVar33 + -8) = local_50;" (assignment_expression "*(_Rb_tree_color *)((int)puVar33 + -8) = local_50" (pointer_expression "*(_Rb_tree_color *)((int)puVar33 + -8)" * (cast_expression "(_Rb_tree_color *)((int)puVar33 + -8)" ( (type_descriptor "_Rb_tree_color *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this;" (assignment_expression "*(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc) = this" (pointer_expression "*(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc)" * (call_expression "(Sized_relobj_file<64,_true> **)((int)puVar33 + -0xc)" (parenthesized_expression "(Sized_relobj_file<64,_true> **)" ( (comma_expression "Sized_relobj_file<64,_true> **" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_true> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Layout **)((int)puVar33 + -0x10) = layout;" (assignment_expression "*(Layout **)((int)puVar33 + -0x10) = layout" (pointer_expression "*(Layout **)((int)puVar33 + -0x10)" * (cast_expression "(Layout **)((int)puVar33 + -0x10)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328d4c;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328d4c" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "bVar37 = Layout::" (assignment_expression "bVar37 = Layout" identifier = identifier) : :) (expression_statement "is_ctors_in_init_array\n                             (*(Layout **)((int)puVar33 + -0x10),*(Relobj **)((int)puVar33 + -0xc),\n                              *(uint *)((int)puVar33 + -8));" (call_expression "is_ctors_in_init_array\n                             (*(Layout **)((int)puVar33 + -0x10),*(Relobj **)((int)puVar33 + -0xc),\n                              *(uint *)((int)puVar33 + -8))" identifier (argument_list "(*(Layout **)((int)puVar33 + -0x10),*(Relobj **)((int)puVar33 + -0xc),\n                              *(uint *)((int)puVar33 + -8))" ( (pointer_expression "*(Layout **)((int)puVar33 + -0x10)" * (cast_expression "(Layout **)((int)puVar33 + -0x10)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Relobj **)((int)puVar33 + -0xc)" * (cast_expression "(Relobj **)((int)puVar33 + -0xc)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)puVar33 + -8)" * (cast_expression "(uint *)((int)puVar33 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (labeled_statement "LAB_0032894a:\n        local_54->is_ctors_reverse_view = bVar37;" statement_identifier : (expression_statement "local_54->is_ctors_reverse_view = bVar37;" (assignment_expression "local_54->is_ctors_reverse_view = bVar37" (field_expression "local_54->is_ctors_reverse_view" identifier -> field_identifier) = identifier) ;)) (goto_statement "goto LAB_00328950;" goto statement_identifier ;) })) (if_statement "if ((this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_ <= local_50) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x549;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e5c;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" if (parenthesized_expression "((this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_ <= local_50)" ( (binary_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_ <= local_50" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.shnum_" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) <= identifier) )) (compound_statement "{\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x549;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e5c;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" { (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f45;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f45" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f45" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0x549;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0x549" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cc7b;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cc7b" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cc7b" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328e5c;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328e5c" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "pRVar10 = (((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_>\n                )._M_impl._M_start[local_50];" (assignment_expression "pRVar10 = (((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_>\n                )._M_impl._M_start[local_50]" identifier = (subscript_expression "(((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_>\n                )._M_impl._M_start[local_50]" (field_expression "(((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_>\n                )._M_impl._M_start" (field_expression "(((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_>\n                )._M_impl" (parenthesized_expression "(((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_>\n                )" ( (binary_expression "((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_>" (binary_expression "((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_" (binary_expression "((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std::allocator<gold" (binary_expression "((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold::Relocatable_relocs*,_std" (binary_expression "((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base<gold" (field_expression "((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)->\n                super__Vector_base" (parenthesized_expression "((this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_)" ( (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.map_to_relocatable_relocs_" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) )) -> field_identifier) < identifier) (ERROR "::Relocatable_relocs" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relocatable_relocs" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) [ identifier ])) ;) (if_statement "if (pRVar10 == (Relocatable_relocs *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2ce;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328efb;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" if (parenthesized_expression "(pRVar10 == (Relocatable_relocs *)0x0)" ( (binary_expression "pRVar10 == (Relocatable_relocs *)0x0" identifier == (cast_expression "(Relocatable_relocs *)0x0" ( (type_descriptor "Relocatable_relocs *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2ce;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328efb;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" { (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f9b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0x2ce;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0x2ce" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x1547d9" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328efb;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328efb" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "pOVar11 = pRVar10->posd_;" (assignment_expression "pOVar11 = pRVar10->posd_" identifier = (field_expression "pRVar10->posd_" identifier -> field_identifier)) ;) (if_statement "if (pOVar11 == (Output_data *)0x0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2d0;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328edd;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" if (parenthesized_expression "(pOVar11 == (Output_data *)0x0)" ( (binary_expression "pOVar11 == (Output_data *)0x0" identifier == (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x2d0;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328edd;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" { (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f9b" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f9b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0x2d0;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0x2d0" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x1547d9" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x1547d9" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328edd;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328edd" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "bVar5 = pOVar11->field_0x1c;" (assignment_expression "bVar5 = pOVar11->field_0x1c" identifier = (field_expression "pOVar11->field_0x1c" identifier -> field_identifier)) ;) (if_statement "if ((bVar5 & 4) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328fac;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" if (parenthesized_expression "((bVar5 & 4) == 0)" ( (binary_expression "(bVar5 & 4) == 0" (parenthesized_expression "(bVar5 & 4)" ( (binary_expression "bVar5 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xe3;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328fac;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" { (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f78" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f78" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0xe3;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0xe3" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328fac;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328fac" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "uVar23 = (uint)pOVar11->offset_;" (assignment_expression "uVar23 = (uint)pOVar11->offset_" identifier = (cast_expression "(uint)pOVar11->offset_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar11->offset_" identifier -> field_identifier))) ;) (expression_statement "iVar22 = *(int *)((int)&pOVar11->offset_ + 4);" (assignment_expression "iVar22 = *(int *)((int)&pOVar11->offset_ + 4)" identifier = (pointer_expression "*(int *)((int)&pOVar11->offset_ + 4)" * (cast_expression "(int *)((int)&pOVar11->offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar11->offset_ + 4)" ( (binary_expression "(int)&pOVar11->offset_ + 4" (cast_expression "(int)&pOVar11->offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar11->offset_" & (field_expression "pOVar11->offset_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(uint *)&local_54->offset = uVar23;" (assignment_expression "*(uint *)&local_54->offset = uVar23" (pointer_expression "*(uint *)&local_54->offset" * (cast_expression "(uint *)&local_54->offset" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_54->offset" & (field_expression "local_54->offset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&local_54->offset + 4) = iVar22;" (assignment_expression "*(int *)((int)&local_54->offset + 4) = iVar22" (pointer_expression "*(int *)((int)&local_54->offset + 4)" * (cast_expression "(int *)((int)&local_54->offset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_54->offset + 4)" ( (binary_expression "(int)&local_54->offset + 4" (cast_expression "(int)&local_54->offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_54->offset" & (field_expression "local_54->offset" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (if_statement "if ((bVar5 & 2) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f8e;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" if (parenthesized_expression "((bVar5 & 2) == 0)" ( (binary_expression "(bVar5 & 2) == 0" (parenthesized_expression "(bVar5 & 2)" ( (binary_expression "bVar5 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f8e;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" { (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f7b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0xcf;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0xcf" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328f8e;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328f8e" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "uVar27 = (uint)pOVar11->data_size_;" (assignment_expression "uVar27 = (uint)pOVar11->data_size_" identifier = (cast_expression "(uint)pOVar11->data_size_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar11->data_size_" identifier -> field_identifier))) ;) (expression_statement "local_54->view_size = uVar27;" (assignment_expression "local_54->view_size = uVar27" (field_expression "local_54->view_size" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar22 < 0) {\nLAB_00328f55:\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f70;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" if (parenthesized_expression "(iVar22 < 0)" ( (binary_expression "iVar22 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_00328f55:\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0x6f;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f70;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" { (labeled_statement "LAB_00328f55:\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;" statement_identifier : (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f89" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f89" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0x6f;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0x6f" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328f70;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328f70" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "local_94 = uVar27;" (assignment_expression "local_94 = uVar27" identifier = identifier) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "local_60 = iVar22 + (uint)CARRY4(uVar27,uVar23);" (assignment_expression "local_60 = iVar22 + (uint)CARRY4(uVar27,uVar23)" identifier = (binary_expression "iVar22 + (uint)CARRY4(uVar27,uVar23)" identifier + (cast_expression "(uint)CARRY4(uVar27,uVar23)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,uVar23)" identifier (argument_list "(uVar27,uVar23)" ( identifier , identifier )))))) ;) (expression_statement "local_64 = uVar27 + uVar23;" (assignment_expression "local_64 = uVar27 + uVar23" identifier = (binary_expression "uVar27 + uVar23" identifier + identifier)) ;) (expression_statement "local_6c = *(uint *)((int)&of->file_size_ + 4);" (assignment_expression "local_6c = *(uint *)((int)&of->file_size_ + 4)" identifier = (pointer_expression "*(uint *)((int)&of->file_size_ + 4)" * (cast_expression "(uint *)((int)&of->file_size_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&of->file_size_ + 4)" ( (binary_expression "(int)&of->file_size_ + 4" (cast_expression "(int)&of->file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar27 = (uint)((uint)of->file_size_ < uVar27 + uVar23);" (assignment_expression "uVar27 = (uint)((uint)of->file_size_ < uVar27 + uVar23)" identifier = (call_expression "(uint)((uint)of->file_size_ < uVar27 + uVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)of->file_size_ < uVar27 + uVar23)" ( (binary_expression "(uint)of->file_size_ < uVar27 + uVar23" (cast_expression "(uint)of->file_size_" ( (type_descriptor "uint" type_identifier) ) (field_expression "of->file_size_" identifier -> field_identifier)) < (binary_expression "uVar27 + uVar23" identifier + identifier)) )))) ;) (if_statement "if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar27)) !=\n          (int)((local_6c - local_60) - uVar27) < 0) goto LAB_00328f55;" if (parenthesized_expression "((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar27)) !=\n          (int)((local_6c - local_60) - uVar27) < 0)" ( (binary_expression "(SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar27)) !=\n          (int)((local_6c - local_60) - uVar27) < 0" (parenthesized_expression "(SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar27))" ( (binary_expression "SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar27)" (call_expression "SBORROW4(local_6c,local_60)" identifier (argument_list "(local_6c,local_60)" ( identifier , identifier ))) != (call_expression "SBORROW4(local_6c - local_60,uVar27)" identifier (argument_list "(local_6c - local_60,uVar27)" ( (binary_expression "local_6c - local_60" identifier - identifier) , identifier )))) )) != (binary_expression "(int)((local_6c - local_60) - uVar27) < 0" (cast_expression "(int)((local_6c - local_60) - uVar27)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((local_6c - local_60) - uVar27)" ( (binary_expression "(local_6c - local_60) - uVar27" (parenthesized_expression "(local_6c - local_60)" ( (binary_expression "local_6c - local_60" identifier - identifier) )) - identifier) ))) < number_literal)) )) (goto_statement "goto LAB_00328f55;" goto statement_identifier ;)) (expression_statement "local_54->view = of->base_ + uVar23;" (assignment_expression "local_54->view = of->base_ + uVar23" (field_expression "local_54->view" identifier -> field_identifier) = (binary_expression "of->base_ + uVar23" (field_expression "of->base_" identifier -> field_identifier) + identifier)) ;) (if_statement "if ((bVar5 & 1) == 0) {\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f55;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" if (parenthesized_expression "((bVar5 & 1) == 0)" ( (binary_expression "(bVar5 & 1) == 0" (parenthesized_expression "(bVar5 & 1)" ( (binary_expression "bVar5 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xc5;\n        *(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328f55;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" { (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f8b" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f8b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328f55;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328f55" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "uVar14 = pOVar11->address_;" (assignment_expression "uVar14 = pOVar11->address_" identifier = (field_expression "pOVar11->address_" identifier -> field_identifier)) ;) (expression_statement "local_50 = local_50 + _S_black;" (assignment_expression "local_50 = local_50 + _S_black" identifier = (binary_expression "local_50 + _S_black" identifier + identifier)) ;) (expression_statement "*(undefined4 *)((int)&local_54->address + 4) = *(undefined4 *)((int)&pOVar11->address_ + 4);" (assignment_expression "*(undefined4 *)((int)&local_54->address + 4) = *(undefined4 *)((int)&pOVar11->address_ + 4)" (pointer_expression "*(undefined4 *)((int)&local_54->address + 4)" * (cast_expression "(undefined4 *)((int)&local_54->address + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_54->address + 4)" ( (binary_expression "(int)&local_54->address + 4" (cast_expression "(int)&local_54->address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_54->address" & (field_expression "local_54->address" identifier -> field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&pOVar11->address_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar11->address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar11->address_ + 4)" ( (binary_expression "(int)&pOVar11->address_ + 4" (cast_expression "(int)&pOVar11->address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar11->address_" & (field_expression "pOVar11->address_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)&local_54->address = (int)uVar14;" (assignment_expression "*(int *)&local_54->address = (int)uVar14" (pointer_expression "*(int *)&local_54->address" * (cast_expression "(int *)&local_54->address" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_54->address" & (field_expression "local_54->address" identifier -> field_identifier)))) = (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_54->is_input_output_view = false;" (assignment_expression "local_54->is_input_output_view = false" (field_expression "local_54->is_input_output_view" identifier -> field_identifier) = false) ;) (expression_statement "local_54->is_postprocessing_view = false;" (assignment_expression "local_54->is_postprocessing_view = false" (field_expression "local_54->is_postprocessing_view" identifier -> field_identifier) = false) ;) (expression_statement "local_54->is_ctors_reverse_view = false;" (assignment_expression "local_54->is_ctors_reverse_view = false" (field_expression "local_54->is_ctors_reverse_view" identifier -> field_identifier) = false) ;) (expression_statement "local_58 = local_58 + 0x40;" (assignment_expression "local_58 = local_58 + 0x40" identifier = (binary_expression "local_58 + 0x40" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_50 != local_70)" ( (binary_expression "local_50 != local_70" identifier != identifier) )) ;) (labeled_statement "LAB_00328964:\n    pRVar17 = rm.\n              super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n              ._M_impl._M_finish;" statement_identifier : (ERROR "pRVar17 = rm.\n              super__Vector_base<gold::" (assignment_expression "pRVar17 = rm.\n              super__Vector_base<gold" identifier = (binary_expression "rm.\n              super__Vector_base<gold" (field_expression "rm.\n              super__Vector_base" identifier . field_identifier) < identifier)) : :) (labeled_statement "File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n              ._M_impl._M_finish;" statement_identifier (ERROR "::Read_multiple_entry,_std::allocator<gold:" : : (comma_expression "Read_multiple_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "File_read::Read_multiple_entry>_>\n              ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Read_multiple_entry>_>\n              ._M_impl._M_finish;" (field_expression "Read_multiple_entry>_>\n              ._M_impl._M_finish" (field_expression "Read_multiple_entry>_>\n              ._M_impl" (binary_expression "Read_multiple_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)))) (ERROR "pRVar16 = rm.\n              super__Vector_base<gold::" (assignment_expression "pRVar16 = rm.\n              super__Vector_base<gold" identifier = (binary_expression "rm.\n              super__Vector_base<gold" (field_expression "rm.\n              super__Vector_base" identifier . field_identifier) < identifier)) : :) (labeled_statement "File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n              ._M_impl._M_start;" statement_identifier (ERROR "::Read_multiple_entry,_std::allocator<gold:" : : (comma_expression "Read_multiple_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "File_read::Read_multiple_entry>_>\n              ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Read_multiple_entry>_>\n              ._M_impl._M_start;" (field_expression "Read_multiple_entry>_>\n              ._M_impl._M_start" (field_expression "Read_multiple_entry>_>\n              ._M_impl" (binary_expression "Read_multiple_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (if_statement "if (rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_finish !=\n        rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_start) {\n      if (local_9d == '\0') {\n        puVar33[-1] = 0;\n        uVar27 = (int)pRVar17 - (int)pRVar16 >> 4;\n        uVar23 = 0x1f;\n        if (uVar27 != 0) {\n          for (; uVar27 >> uVar23 == 0; uVar23 = uVar23 - 1) {\n          }\n        }\n        puVar33[-2] = (0x1f - (uVar23 ^ 0x1f)) * 2;\n        puVar33[-3] = pRVar17;\n        puVar33[-4] = pRVar16;\n        puVar33[-5] = 0x328d76;\n        std::\n        __introsort_loop<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                  ();\n        if ((int)pRVar17 - (int)pRVar16 < 0x101) {\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar17;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328dc4;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n        }\n        else {\n          pRVar36 = pRVar16 + 0x10;\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar36;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328d93;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n          for (; pRVar17 != pRVar36; pRVar36 = pRVar36 + 1) {\n            puVar33[-3] = 0;\n            puVar33[-4] = pRVar36;\n            puVar33[-5] = 0x328dac;\n            std::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();\n          }\n        }\n      }\n      pIVar9 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_;\n      if (pIVar9 == (Input_file *)0x0) {\n        puVar33[-1] = 0x328e61;\n        Object::input_file((Object *)*puVar33);\nLAB_00328e68:\n        ppuVar15 = local_84;\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e86;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      puVar33[-1] = &rm;\n      puVar33[-2] = *(undefined4 *)\n                     ((int)&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_ +\n                     4);\n      puVar33[-3] = (int)(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_;\n      puVar33[-4] = &pIVar9->file_;\n      puVar33[-5] = 0x3289a2;\n      File_read::read_multiple\n                ((File_read *)puVar33[-4],*(off_t *)(puVar33 + -3),(Read_multiple *)puVar33[-1]);\n    }" if (parenthesized_expression "(rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_finish !=\n        rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_start)" ( (ERROR "rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_finish !=\n        rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::" (comma_expression "rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std" (binary_expression "rm.\n        super__Vector_base<gold" (field_expression "rm.\n        super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::File_read::Read_multiple_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : : (binary_expression "Read_multiple_entry>_>\n        ._M_impl._M_finish !=\n        rm.\n        super__Vector_base<gold" (field_expression "Read_multiple_entry>_>\n        ._M_impl._M_finish" (field_expression "Read_multiple_entry>_>\n        ._M_impl" (binary_expression "Read_multiple_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (binary_expression "rm.\n        super__Vector_base<gold" (field_expression "rm.\n        super__Vector_base" identifier . field_identifier) < identifier)) : : identifier : : (comma_expression "Read_multiple_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Read_multiple_entry>_>\n        ._M_impl._M_start" (field_expression "Read_multiple_entry>_>\n        ._M_impl" (binary_expression "Read_multiple_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n      if (local_9d == '\0') {\n        puVar33[-1] = 0;\n        uVar27 = (int)pRVar17 - (int)pRVar16 >> 4;\n        uVar23 = 0x1f;\n        if (uVar27 != 0) {\n          for (; uVar27 >> uVar23 == 0; uVar23 = uVar23 - 1) {\n          }\n        }\n        puVar33[-2] = (0x1f - (uVar23 ^ 0x1f)) * 2;\n        puVar33[-3] = pRVar17;\n        puVar33[-4] = pRVar16;\n        puVar33[-5] = 0x328d76;\n        std::\n        __introsort_loop<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                  ();\n        if ((int)pRVar17 - (int)pRVar16 < 0x101) {\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar17;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328dc4;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n        }\n        else {\n          pRVar36 = pRVar16 + 0x10;\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar36;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328d93;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n          for (; pRVar17 != pRVar36; pRVar36 = pRVar36 + 1) {\n            puVar33[-3] = 0;\n            puVar33[-4] = pRVar36;\n            puVar33[-5] = 0x328dac;\n            std::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();\n          }\n        }\n      }\n      pIVar9 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_;\n      if (pIVar9 == (Input_file *)0x0) {\n        puVar33[-1] = 0x328e61;\n        Object::input_file((Object *)*puVar33);\nLAB_00328e68:\n        ppuVar15 = local_84;\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e86;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }\n      puVar33[-1] = &rm;\n      puVar33[-2] = *(undefined4 *)\n                     ((int)&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_ +\n                     4);\n      puVar33[-3] = (int)(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_;\n      puVar33[-4] = &pIVar9->file_;\n      puVar33[-5] = 0x3289a2;\n      File_read::read_multiple\n                ((File_read *)puVar33[-4],*(off_t *)(puVar33 + -3),(Read_multiple *)puVar33[-1]);\n    }" { (if_statement "if (local_9d == '\0') {\n        puVar33[-1] = 0;\n        uVar27 = (int)pRVar17 - (int)pRVar16 >> 4;\n        uVar23 = 0x1f;\n        if (uVar27 != 0) {\n          for (; uVar27 >> uVar23 == 0; uVar23 = uVar23 - 1) {\n          }\n        }\n        puVar33[-2] = (0x1f - (uVar23 ^ 0x1f)) * 2;\n        puVar33[-3] = pRVar17;\n        puVar33[-4] = pRVar16;\n        puVar33[-5] = 0x328d76;\n        std::\n        __introsort_loop<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                  ();\n        if ((int)pRVar17 - (int)pRVar16 < 0x101) {\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar17;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328dc4;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n        }\n        else {\n          pRVar36 = pRVar16 + 0x10;\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar36;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328d93;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n          for (; pRVar17 != pRVar36; pRVar36 = pRVar36 + 1) {\n            puVar33[-3] = 0;\n            puVar33[-4] = pRVar36;\n            puVar33[-5] = 0x328dac;\n            std::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();\n          }\n        }\n      }" if (parenthesized_expression "(local_9d == '\0')" ( (binary_expression "local_9d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        puVar33[-1] = 0;\n        uVar27 = (int)pRVar17 - (int)pRVar16 >> 4;\n        uVar23 = 0x1f;\n        if (uVar27 != 0) {\n          for (; uVar27 >> uVar23 == 0; uVar23 = uVar23 - 1) {\n          }\n        }\n        puVar33[-2] = (0x1f - (uVar23 ^ 0x1f)) * 2;\n        puVar33[-3] = pRVar17;\n        puVar33[-4] = pRVar16;\n        puVar33[-5] = 0x328d76;\n        std::\n        __introsort_loop<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                  ();\n        if ((int)pRVar17 - (int)pRVar16 < 0x101) {\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar17;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328dc4;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n        }\n        else {\n          pRVar36 = pRVar16 + 0x10;\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar36;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328d93;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n          for (; pRVar17 != pRVar36; pRVar36 = pRVar36 + 1) {\n            puVar33[-3] = 0;\n            puVar33[-4] = pRVar36;\n            puVar33[-5] = 0x328dac;\n            std::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();\n          }\n        }\n      }" { (expression_statement "puVar33[-1] = 0;" (assignment_expression "puVar33[-1] = 0" (subscript_expression "puVar33[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar27 = (int)pRVar17 - (int)pRVar16 >> 4;" (assignment_expression "uVar27 = (int)pRVar17 - (int)pRVar16 >> 4" identifier = (binary_expression "(int)pRVar17 - (int)pRVar16 >> 4" (binary_expression "(int)pRVar17 - (int)pRVar16" (cast_expression "(int)pRVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pRVar16" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "uVar23 = 0x1f;" (assignment_expression "uVar23 = 0x1f" identifier = number_literal) ;) (if_statement "if (uVar27 != 0) {\n          for (; uVar27 >> uVar23 == 0; uVar23 = uVar23 - 1) {\n          }\n        }" if (parenthesized_expression "(uVar27 != 0)" ( (binary_expression "uVar27 != 0" identifier != number_literal) )) (compound_statement "{\n          for (; uVar27 >> uVar23 == 0; uVar23 = uVar23 - 1) {\n          }\n        }" { (for_statement "for (; uVar27 >> uVar23 == 0; uVar23 = uVar23 - 1) {\n          }" for ( ; (binary_expression "uVar27 >> uVar23 == 0" (binary_expression "uVar27 >> uVar23" identifier >> identifier) == number_literal) ; (assignment_expression "uVar23 = uVar23 - 1" identifier = (binary_expression "uVar23 - 1" identifier - number_literal)) ) (compound_statement "{\n          }" { })) })) (expression_statement "puVar33[-2] = (0x1f - (uVar23 ^ 0x1f)) * 2;" (assignment_expression "puVar33[-2] = (0x1f - (uVar23 ^ 0x1f)) * 2" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = (binary_expression "(0x1f - (uVar23 ^ 0x1f)) * 2" (parenthesized_expression "(0x1f - (uVar23 ^ 0x1f))" ( (binary_expression "0x1f - (uVar23 ^ 0x1f)" number_literal - (parenthesized_expression "(uVar23 ^ 0x1f)" ( (binary_expression "uVar23 ^ 0x1f" identifier ^ number_literal) ))) )) * number_literal)) ;) (expression_statement "puVar33[-3] = pRVar17;" (assignment_expression "puVar33[-3] = pRVar17" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-4] = pRVar16;" (assignment_expression "puVar33[-4] = pRVar16" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-5] = 0x328d76;" (assignment_expression "puVar33[-5] = 0x328d76" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "std::\n        __introsort_loop<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                  ();" statement_identifier (ERROR "::\n        __introsort_loop<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,_int,___gnu_cxx:" : : (binary_expression "__introsort_loop<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (comma_expression "File_read::Read_multiple_entry*,_std" identifier (ERROR "::Read_multiple_entry*" : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "File_read::Read_multiple_entry>_>,_int,___gnu_cxx" identifier (ERROR "::Read_multiple_entry>_>" : : (binary_expression "Read_multiple_entry>_" identifier > identifier) >) , (comma_expression "_int,___gnu_cxx" identifier , identifier)) :) : (labeled_statement "__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                  ();" statement_identifier (ERROR "::_Iter_comp_iter<gold:" : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) :) : (expression_statement "Read_multiple_compare>_>\n                  ();" (binary_expression "Read_multiple_compare>_>\n                  ()" (binary_expression "Read_multiple_compare>_" identifier > identifier) > (parenthesized_expression "()" ( identifier ))) ;))) (if_statement "if ((int)pRVar17 - (int)pRVar16 < 0x101) {\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar17;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328dc4;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n        }\n        else {\n          pRVar36 = pRVar16 + 0x10;\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar36;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328d93;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n          for (; pRVar17 != pRVar36; pRVar36 = pRVar36 + 1) {\n            puVar33[-3] = 0;\n            puVar33[-4] = pRVar36;\n            puVar33[-5] = 0x328dac;\n            std::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();\n          }\n        }" if (parenthesized_expression "((int)pRVar17 - (int)pRVar16 < 0x101)" ( (binary_expression "(int)pRVar17 - (int)pRVar16 < 0x101" (binary_expression "(int)pRVar17 - (int)pRVar16" (cast_expression "(int)pRVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pRVar16" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (compound_statement "{\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar17;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328dc4;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n        }" { (expression_statement "puVar33[-2] = 0;" (assignment_expression "puVar33[-2] = 0" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-3] = pRVar17;" (assignment_expression "puVar33[-3] = pRVar17" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-4] = pRVar16;" (assignment_expression "puVar33[-4] = pRVar16" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-5] = 0x328dc4;" (assignment_expression "puVar33[-5] = 0x328dc4" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();" statement_identifier (ERROR "::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx:" : : (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (comma_expression "File_read::Read_multiple_entry*,_std" identifier (ERROR "::Read_multiple_entry*" : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "File_read::Read_multiple_entry>_>,___gnu_cxx" identifier (ERROR "::Read_multiple_entry>_>" : : (binary_expression "Read_multiple_entry>_" identifier > identifier) >) , identifier) :) : (labeled_statement "__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();" statement_identifier (ERROR "::_Iter_comp_iter<gold:" : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) :) : (expression_statement "Read_multiple_compare>_>\n                    ();" (binary_expression "Read_multiple_compare>_>\n                    ()" (binary_expression "Read_multiple_compare>_" identifier > identifier) > (parenthesized_expression "()" ( identifier ))) ;))) }) (else_clause "else {\n          pRVar36 = pRVar16 + 0x10;\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar36;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328d93;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n          for (; pRVar17 != pRVar36; pRVar36 = pRVar36 + 1) {\n            puVar33[-3] = 0;\n            puVar33[-4] = pRVar36;\n            puVar33[-5] = 0x328dac;\n            std::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();\n          }\n        }" else (compound_statement "{\n          pRVar36 = pRVar16 + 0x10;\n          puVar33[-2] = 0;\n          puVar33[-3] = pRVar36;\n          puVar33[-4] = pRVar16;\n          puVar33[-5] = 0x328d93;\n          std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();\n          for (; pRVar17 != pRVar36; pRVar36 = pRVar36 + 1) {\n            puVar33[-3] = 0;\n            puVar33[-4] = pRVar36;\n            puVar33[-5] = 0x328dac;\n            std::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();\n          }\n        }" { (expression_statement "pRVar36 = pRVar16 + 0x10;" (assignment_expression "pRVar36 = pRVar16 + 0x10" identifier = (binary_expression "pRVar16 + 0x10" identifier + number_literal)) ;) (expression_statement "puVar33[-2] = 0;" (assignment_expression "puVar33[-2] = 0" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-3] = pRVar36;" (assignment_expression "puVar33[-3] = pRVar36" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-4] = pRVar16;" (assignment_expression "puVar33[-4] = pRVar16" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-5] = 0x328d93;" (assignment_expression "puVar33[-5] = 0x328d93" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "std::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();" statement_identifier (ERROR "::\n          __insertion_sort<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx:" : : (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (comma_expression "File_read::Read_multiple_entry*,_std" identifier (ERROR "::Read_multiple_entry*" : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "File_read::Read_multiple_entry>_>,___gnu_cxx" identifier (ERROR "::Read_multiple_entry>_>" : : (binary_expression "Read_multiple_entry>_" identifier > identifier) >) , identifier) :) : (labeled_statement "__ops::_Iter_comp_iter<gold::Read_multiple_compare>_>\n                    ();" statement_identifier (ERROR "::_Iter_comp_iter<gold:" : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) :) : (expression_statement "Read_multiple_compare>_>\n                    ();" (binary_expression "Read_multiple_compare>_>\n                    ()" (binary_expression "Read_multiple_compare>_" identifier > identifier) > (parenthesized_expression "()" ( identifier ))) ;))) (for_statement "for (; pRVar17 != pRVar36; pRVar36 = pRVar36 + 1) {\n            puVar33[-3] = 0;\n            puVar33[-4] = pRVar36;\n            puVar33[-5] = 0x328dac;\n            std::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();\n          }" for ( ; (binary_expression "pRVar17 != pRVar36" identifier != identifier) ; (assignment_expression "pRVar36 = pRVar36 + 1" identifier = (binary_expression "pRVar36 + 1" identifier + number_literal)) ) (compound_statement "{\n            puVar33[-3] = 0;\n            puVar33[-4] = pRVar36;\n            puVar33[-5] = 0x328dac;\n            std::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();\n          }" { (expression_statement "puVar33[-3] = 0;" (assignment_expression "puVar33[-3] = 0" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar33[-4] = pRVar36;" (assignment_expression "puVar33[-4] = pRVar36" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar33[-5] = 0x328dac;" (assignment_expression "puVar33[-5] = 0x328dac" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "std::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();" statement_identifier (ERROR "::\n            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::File_read::Read_multiple_entry*,_std::vector<gold::File_read::Read_multiple_entry>_>,___gnu_cxx:" : : (binary_expression "__unguarded_linear_insert<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (comma_expression "File_read::Read_multiple_entry*,_std" identifier (ERROR "::Read_multiple_entry*" : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "File_read::Read_multiple_entry>_>,___gnu_cxx" identifier (ERROR "::Read_multiple_entry>_>" : : (binary_expression "Read_multiple_entry>_" identifier > identifier) >) , identifier) :) : (labeled_statement "__ops::_Val_comp_iter<gold::Read_multiple_compare>_>\n                      ();" statement_identifier (ERROR "::_Val_comp_iter<gold:" : : (binary_expression "_Val_comp_iter<gold" identifier < identifier) :) : (expression_statement "Read_multiple_compare>_>\n                      ();" (binary_expression "Read_multiple_compare>_>\n                      ()" (binary_expression "Read_multiple_compare>_" identifier > identifier) > (parenthesized_expression "()" ( identifier ))) ;))) })) }))) })) (expression_statement "pIVar9 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_;" (assignment_expression "pIVar9 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_" identifier = (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (pIVar9 == (Input_file *)0x0) {\n        puVar33[-1] = 0x328e61;\n        Object::input_file((Object *)*puVar33);\nLAB_00328e68:\n        ppuVar15 = local_84;\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e86;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" if (parenthesized_expression "(pIVar9 == (Input_file *)0x0)" ( (binary_expression "pIVar9 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar33[-1] = 0x328e61;\n        Object::input_file((Object *)*puVar33);\nLAB_00328e68:\n        ppuVar15 = local_84;\n        *(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)((int)puVar33 + -0xc) = 0xcf;\n        *(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;\n                    /* WARNING: Subroutine does not return */\n        *(undefined4 *)((int)puVar33 + -0x14) = 0x328e86;\n        do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));\n      }" { (expression_statement "puVar33[-1] = 0x328e61;" (assignment_expression "puVar33[-1] = 0x328e61" (subscript_expression "puVar33[-1]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "Object::input_file((Object *)*puVar33);" statement_identifier : (ERROR ":" :) (expression_statement "input_file((Object *)*puVar33);" (call_expression "input_file((Object *)*puVar33)" identifier (argument_list "((Object *)*puVar33)" ( (cast_expression "(Object *)*puVar33" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar33" * identifier)) ))) ;)) (labeled_statement "LAB_00328e68:\n        ppuVar15 = local_84;" statement_identifier : (expression_statement "ppuVar15 = local_84;" (assignment_expression "ppuVar15 = local_84" identifier = identifier) ;)) (expression_statement "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b;" (assignment_expression "*(undefined ***)((int)puVar33 + -8) = local_84 + -0x54f7b" (pointer_expression "*(undefined ***)((int)puVar33 + -8)" * (cast_expression "(undefined ***)((int)puVar33 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_84 + -0x54f7b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar33 + -0xc) = 0xcf;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0xc) = 0xcf" (pointer_expression "*(undefined4 *)((int)puVar33 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar33 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3;" (assignment_expression "*(int *)((int)puVar33 + -0x10) = (int)ppuVar15 + -0x19cca3" (pointer_expression "*(int *)((int)puVar33 + -0x10)" * (cast_expression "(int *)((int)puVar33 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)ppuVar15 + -0x19cca3" (cast_expression "(int)ppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar33 + -0x14) = 0x328e86;" (assignment_expression "*(undefined4 *)((int)puVar33 + -0x14) = 0x328e86" (pointer_expression "*(undefined4 *)((int)puVar33 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar33 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0x14)" ( (binary_expression "(int)puVar33 + -0x14" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" identifier (argument_list "(*(char **)((int)puVar33 + -0x10),*(int *)((int)puVar33 + -0xc),\n                            *(char **)((int)puVar33 + -8))" ( (pointer_expression "*(char **)((int)puVar33 + -0x10)" * (cast_expression "(char **)((int)puVar33 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -0x10)" ( (binary_expression "(int)puVar33 + -0x10" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar33 + -0xc)" * (cast_expression "(int *)((int)puVar33 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar33 + -0xc)" ( (binary_expression "(int)puVar33 + -0xc" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar33 + -8)" * (cast_expression "(char **)((int)puVar33 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar33 + -8)" ( (binary_expression "(int)puVar33 + -8" (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "puVar33[-1] = &rm;" (assignment_expression "puVar33[-1] = &rm" (subscript_expression "puVar33[-1]" identifier [ number_literal ]) = (pointer_expression "&rm" & identifier)) ;) (expression_statement "puVar33[-2] = *(undefined4 *)\n                     ((int)&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_ +\n                     4);" (assignment_expression "puVar33[-2] = *(undefined4 *)\n                     ((int)&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_ +\n                     4)" (subscript_expression "puVar33[-2]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)\n                     ((int)&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_ +\n                     4)" * (cast_expression "(undefined4 *)\n                     ((int)&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_ +\n                     4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_ +\n                     4)" ( (binary_expression "(int)&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_ +\n                     4" (cast_expression "(int)&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_" & (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "puVar33[-3] = (int)(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_;" (assignment_expression "puVar33[-3] = (int)(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_" (subscript_expression "puVar33[-3]" identifier [ number_literal ]) = (cast_expression "(int)(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.offset_" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "puVar33[-4] = &pIVar9->file_;" (assignment_expression "puVar33[-4] = &pIVar9->file_" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (pointer_expression "&pIVar9->file_" & (field_expression "pIVar9->file_" identifier -> field_identifier))) ;) (expression_statement "puVar33[-5] = 0x3289a2;" (assignment_expression "puVar33[-5] = 0x3289a2" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "File_read::read_multiple\n                ((File_read *)puVar33[-4],*(off_t *)(puVar33 + -3),(Read_multiple *)puVar33[-1]);" statement_identifier : (ERROR ":" :) (expression_statement "read_multiple\n                ((File_read *)puVar33[-4],*(off_t *)(puVar33 + -3),(Read_multiple *)puVar33[-1]);" (call_expression "read_multiple\n                ((File_read *)puVar33[-4],*(off_t *)(puVar33 + -3),(Read_multiple *)puVar33[-1])" identifier (argument_list "((File_read *)puVar33[-4],*(off_t *)(puVar33 + -3),(Read_multiple *)puVar33[-1])" ( (cast_expression "(File_read *)puVar33[-4]" ( (type_descriptor "File_read *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) , (pointer_expression "*(off_t *)(puVar33 + -3)" * (cast_expression "(off_t *)(puVar33 + -3)" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + -3)" ( (binary_expression "puVar33 + -3" identifier + number_literal) )))) , (cast_expression "(Read_multiple *)puVar33[-1]" ( (type_descriptor "Read_multiple *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-1]" identifier [ number_literal ])) ))) ;)) })) (if_statement "if (rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_start != (pointer)0x0) {\n      puVar33[-4] = rm.\n                    super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                    ._M_impl._M_start;\n      puVar33[-5] = 0x3289b8;\n      operator_delete((void *)puVar33[-4]);\n    }" if (parenthesized_expression "(rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n        ._M_impl._M_start != (pointer)0x0)" ( (ERROR "rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::" (comma_expression "rm.\n        super__Vector_base<gold::File_read::Read_multiple_entry,_std" (binary_expression "rm.\n        super__Vector_base<gold" (field_expression "rm.\n        super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::File_read::Read_multiple_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Read_multiple_entry>_>\n        ._M_impl._M_start != (pointer)0x0" (field_expression "Read_multiple_entry>_>\n        ._M_impl._M_start" (field_expression "Read_multiple_entry>_>\n        ._M_impl" (binary_expression "Read_multiple_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n      puVar33[-4] = rm.\n                    super__Vector_base<gold::File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                    ._M_impl._M_start;\n      puVar33[-5] = 0x3289b8;\n      operator_delete((void *)puVar33[-4]);\n    }" { (ERROR "puVar33[-4] = rm.\n                    super__Vector_base<gold::" (assignment_expression "puVar33[-4] = rm.\n                    super__Vector_base<gold" (subscript_expression "puVar33[-4]" identifier [ number_literal ]) = (binary_expression "rm.\n                    super__Vector_base<gold" (field_expression "rm.\n                    super__Vector_base" identifier . field_identifier) < identifier)) : :) (labeled_statement "File_read::Read_multiple_entry,_std::allocator<gold::File_read::Read_multiple_entry>_>\n                    ._M_impl._M_start;" statement_identifier (ERROR "::Read_multiple_entry,_std::allocator<gold:" : : (comma_expression "Read_multiple_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "File_read::Read_multiple_entry>_>\n                    ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Read_multiple_entry>_>\n                    ._M_impl._M_start;" (field_expression "Read_multiple_entry>_>\n                    ._M_impl._M_start" (field_expression "Read_multiple_entry>_>\n                    ._M_impl" (binary_expression "Read_multiple_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (expression_statement "puVar33[-5] = 0x3289b8;" (assignment_expression "puVar33[-5] = 0x3289b8" (subscript_expression "puVar33[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "operator_delete((void *)puVar33[-4]);" (call_expression "operator_delete((void *)puVar33[-4])" identifier (argument_list "((void *)puVar33[-4])" ( (cast_expression "(void *)puVar33[-4]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar33[-4]" identifier [ number_literal ])) ))) ;) })) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00328650(int *param_1,undefined4 param_2,int param_3,int param_4,int *param_5)\n\n{\n  uint *puVar1;\n  int iVar2;\n  code *pcVar3;\n  undefined **ppuVar4;\n  byte bVar5;\n  char cVar6;\n  undefined4 *****pppppuVar7;\n  undefined4 uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  byte bVar14;\n  int iVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint auStack_d0 [9];\n  undefined1 auStack_ac [15];\n  char local_9d;\n  undefined4 ****local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined4 local_90;\n  undefined4 ****local_8c;\n  undefined4 local_88;\n  undefined **local_84;\n  uint local_80;\n  uint local_7c;\n  undefined4 ****local_78;\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  uint local_5c;\n  int local_58;\n  uint *local_54;\n  uint local_50;\n  undefined4 local_44;\n  int local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 ****local_34;\n  uint local_30;\n  undefined4 ****local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_84 = &__DT_PLTGOT;\n  puVar18 = auStack_ac;\n  local_40 = 0;\n  local_70 = param_1[10];\n  local_58 = param_3 + 0x40;\n  local_3c = 0;\n  local_38 = 0;\n  if (1 < local_70) {\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00328650(int *param_1,undefined4 param_2,int param_3,int param_4,int *param_5)\n\n{\n  uint *puVar1;\n  int iVar2;\n  code *pcVar3;\n  undefined **ppuVar4;\n  byte bVar5;\n  char cVar6;\n  undefined4 *****pppppuVar7;\n  undefined4 uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  byte bVar14;\n  int iVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint auStack_d0 [9];\n  undefined1 auStack_ac [15];\n  char local_9d;\n  undefined4 ****local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined4 local_90;\n  undefined4 ****local_8c;\n  undefined4 local_88;\n  undefined **local_84;\n  uint local_80;\n  uint local_7c;\n  undefined4 ****local_78;\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  uint local_5c;\n  int local_58;\n  uint *local_54;\n  uint local_50;\n  undefined4 local_44;\n  int local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 ****local_34;\n  uint local_30;\n  undefined4 ****local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_84 = &__DT_PLTGOT;\n  puVar18 = auStack_ac;\n  local_40 = 0;\n  local_70 = param_1[10];\n  local_58 = param_3 + 0x40;\n  local_3c = 0;\n  local_38 = 0;\n  if (1 < local_70) {\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00328650(int *param_1,undefined4 param_2,int param_3,int param_4,int *param_5)" identifier (parameter_list "(int *param_1,undefined4 param_2,int param_3,int param_4,int *param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * 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 "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  int iVar2;\n  code *pcVar3;\n  undefined **ppuVar4;\n  byte bVar5;\n  char cVar6;\n  undefined4 *****pppppuVar7;\n  undefined4 uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  byte bVar14;\n  int iVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint auStack_d0 [9];\n  undefined1 auStack_ac [15];\n  char local_9d;\n  undefined4 ****local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined4 local_90;\n  undefined4 ****local_8c;\n  undefined4 local_88;\n  undefined **local_84;\n  uint local_80;\n  uint local_7c;\n  undefined4 ****local_78;\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  uint local_5c;\n  int local_58;\n  uint *local_54;\n  uint local_50;\n  undefined4 local_44;\n  int local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 ****local_34;\n  uint local_30;\n  undefined4 ****local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_84 = &__DT_PLTGOT;\n  puVar18 = auStack_ac;\n  local_40 = 0;\n  local_70 = param_1[10];\n  local_58 = param_3 + 0x40;\n  local_3c = 0;\n  local_38 = 0;\n  if (1 < local_70) {\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined **ppuVar4;" type_identifier (pointer_declarator "**ppuVar4" * (pointer_declarator "*ppuVar4" * identifier)) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined4 *****pppppuVar7;" type_identifier (pointer_declarator "*****pppppuVar7" * (pointer_declarator "****pppppuVar7" * (pointer_declarator "***pppppuVar7" * (pointer_declarator "**pppppuVar7" * (pointer_declarator "*pppppuVar7" * identifier))))) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "uint auStack_d0 [9];" type_identifier (array_declarator "auStack_d0 [9]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_ac [15];" type_identifier (array_declarator "auStack_ac [15]" identifier [ number_literal ]) ;) (declaration "char local_9d;" primitive_type identifier ;) (declaration "undefined4 ****local_9c;" type_identifier (pointer_declarator "****local_9c" * (pointer_declarator "***local_9c" * (pointer_declarator "**local_9c" * (pointer_declarator "*local_9c" * identifier)))) ;) (declaration "undefined4 local_98;" type_identifier identifier ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "undefined4 ****local_8c;" type_identifier (pointer_declarator "****local_8c" * (pointer_declarator "***local_8c" * (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)))) ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "undefined **local_84;" type_identifier (pointer_declarator "**local_84" * (pointer_declarator "*local_84" * identifier)) ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "uint local_7c;" type_identifier identifier ;) (declaration "undefined4 ****local_78;" type_identifier (pointer_declarator "****local_78" * (pointer_declarator "***local_78" * (pointer_declarator "**local_78" * (pointer_declarator "*local_78" * identifier)))) ;) (declaration "int *local_74;" primitive_type (pointer_declarator "*local_74" * identifier) ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint local_60;" type_identifier identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "uint *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 ****local_34;" type_identifier (pointer_declarator "****local_34" * (pointer_declarator "***local_34" * (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)))) ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "undefined4 ****local_2c;" type_identifier (pointer_declarator "****local_2c" * (pointer_declarator "***local_2c" * (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)))) ;) (declaration "uint local_28;" type_identifier identifier ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "local_84 = &__DT_PLTGOT;" (assignment_expression "local_84 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "puVar18 = auStack_ac;" (assignment_expression "puVar18 = auStack_ac" identifier = identifier) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_70 = param_1[10];" (assignment_expression "local_70 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "local_58 = param_3 + 0x40;" (assignment_expression "local_58 = param_3 + 0x40" identifier = (binary_expression "param_3 + 0x40" identifier + number_literal)) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (if_statement "if (1 < local_70) {\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }" if (parenthesized_expression "(1 < local_70)" ( (binary_expression "1 < local_70" number_literal < identifier) )) (compound_statement "{\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }" { (expression_statement "local_74 = &DAT_005ea7c8;" (assignment_expression "local_74 = &DAT_005ea7c8" identifier = (pointer_expression "&DAT_005ea7c8" & identifier)) ;) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_9d = '\x01';" (assignment_expression "local_9d = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (do_statement "do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);" do (compound_statement "{\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    }" { (while_statement "while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }" { (expression_statement "local_54 = (uint *)(local_50 * 0x1c + *param_5);" (assignment_expression "local_54 = (uint *)(local_50 * 0x1c + *param_5)" identifier = (cast_expression "(uint *)(local_50 * 0x1c + *param_5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 * 0x1c + *param_5)" ( (binary_expression "local_50 * 0x1c + *param_5" (binary_expression "local_50 * 0x1c" identifier * number_literal) + (pointer_expression "*param_5" * identifier)) )))) ;) (expression_statement "*local_54 = 0;" (assignment_expression "*local_54 = 0" (pointer_expression "*local_54" * identifier) = number_literal) ;) (expression_statement "iVar2 = *(int *)(param_1[0xe] + local_50 * 4);" (assignment_expression "iVar2 = *(int *)(param_1[0xe] + local_50 * 4)" identifier = (pointer_expression "*(int *)(param_1[0xe] + local_50 * 4)" * (cast_expression "(int *)(param_1[0xe] + local_50 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xe] + local_50 * 4)" ( (binary_expression "param_1[0xe] + local_50 * 4" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) + (binary_expression "local_50 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar2 != 0) break;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00328950:\n        local_50 = local_50 + 1;" statement_identifier : (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;)) (expression_statement "local_58 = local_58 + 0x40;" (assignment_expression "local_58 = local_58 + 0x40" identifier = (binary_expression "local_58 + 0x40" identifier + number_literal)) ;) (if_statement "if (local_50 == local_70) goto LAB_00328964;" if (parenthesized_expression "(local_50 == local_70)" ( (binary_expression "local_50 == local_70" identifier == identifier) )) (goto_statement "goto LAB_00328964;" goto statement_identifier ;)) })) (expression_statement "uVar10 = *(uint *)(local_58 + 4);" (assignment_expression "uVar10 = *(uint *)(local_58 + 4)" identifier = (pointer_expression "*(uint *)(local_58 + 4)" * (cast_expression "(uint *)(local_58 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 4)" ( (binary_expression "local_58 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;" (assignment_expression "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" identifier = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar10 == 8) goto LAB_00328950;" if (parenthesized_expression "(uVar10 == 8)" ( (binary_expression "uVar10 == 8" identifier == number_literal) )) (goto_statement "goto LAB_00328950;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(*local_74 + 8);" (assignment_expression "iVar9 = *(int *)(*local_74 + 8)" identifier = (pointer_expression "*(int *)(*local_74 + 8)" * (cast_expression "(int *)(*local_74 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_74 + 8)" ( (binary_expression "*local_74 + 8" (pointer_expression "*local_74" * identifier) + number_literal) ))))) ;) (if_statement "if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f02" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f02" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x1a1d93" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e23;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e23" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }" if (parenthesized_expression "((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0))" ( (binary_expression "(((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)" (parenthesized_expression "(((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9))))" ( (binary_expression "((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))" (parenthesized_expression "((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0'))" ( (binary_expression "(*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')" (parenthesized_expression "(*(char *)(iVar9 + 0x318d) == '\0')" ( (binary_expression "*(char *)(iVar9 + 0x318d) == '\0'" (pointer_expression "*(char *)(iVar9 + 0x318d)" * (cast_expression "(char *)(iVar9 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x318d)" ( (binary_expression "iVar9 + 0x318d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar9 + 0x3095) == '\0')" ( (binary_expression "*(char *)(iVar9 + 0x3095) == '\0'" (pointer_expression "*(char *)(iVar9 + 0x3095)" * (cast_expression "(char *)(iVar9 + 0x3095)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x3095)" ( (binary_expression "iVar9 + 0x3095" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "((uVar10 != 4 && (uVar10 != 9)))" ( (parenthesized_expression "(uVar10 != 4 && (uVar10 != 9))" ( (binary_expression "uVar10 != 4 && (uVar10 != 9)" (binary_expression "uVar10 != 4" identifier != number_literal) && (parenthesized_expression "(uVar10 != 9)" ( (binary_expression "uVar10 != 9" identifier != number_literal) ))) )) ))) )) || (parenthesized_expression "((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)" ( (binary_expression "(*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0" (parenthesized_expression "(*(uint *)(local_58 + 0xc) >> 0x18 & 2)" ( (binary_expression "*(uint *)(local_58 + 0xc) >> 0x18 & 2" (binary_expression "*(uint *)(local_58 + 0xc) >> 0x18" (pointer_expression "*(uint *)(local_58 + 0xc)" * (cast_expression "(uint *)(local_58 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0xc)" ( (binary_expression "local_58 + 0xc" identifier + number_literal) )))) >> number_literal) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }" { (expression_statement "bVar5 = *(byte *)(iVar2 + 0x90);" (assignment_expression "bVar5 = *(byte *)(iVar2 + 0x90)" identifier = (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "bVar14 = bVar5 >> 5;" (assignment_expression "bVar14 = bVar5 >> 5" identifier = (binary_expression "bVar5 >> 5" identifier >> number_literal)) ;) (expression_statement "local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;" (assignment_expression "local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01" identifier = (binary_expression "CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01" (call_expression "CONCAT31(local_5c._1_3_,bVar14)" identifier (argument_list "(local_5c._1_3_,bVar14)" ( (field_expression "local_5c._1_3_" identifier . field_identifier) , identifier ))) & number_literal)) ;) (if_statement "if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }" if (parenthesized_expression "((bVar14 & 1) == 0)" ( (binary_expression "(bVar14 & 1) == 0" (parenthesized_expression "(bVar14 & 1)" ( (binary_expression "bVar14 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }" { (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 4)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 4" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f78" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f78" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xe3;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xe3" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f19;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f19" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_64 = *(uint *)(iVar2 + 0x14);" (assignment_expression "local_64 = *(uint *)(iVar2 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x14)" * (cast_expression "(uint *)(iVar2 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_60 = *(uint *)(iVar2 + 0x18);" (assignment_expression "local_60 = *(uint *)(iVar2 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x18)" * (cast_expression "(uint *)(iVar2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 2)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00328e68;" goto statement_identifier ;)) (expression_statement "local_78 = *(undefined4 *****)(iVar2 + 0xc);" (assignment_expression "local_78 = *(undefined4 *****)(iVar2 + 0xc)" identifier = (pointer_expression "*(undefined4 *****)(iVar2 + 0xc)" * (cast_expression "(undefined4 *****)(iVar2 + 0xc)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_7c = *(uint *)(iVar2 + 0x10);" (assignment_expression "local_7c = *(uint *)(iVar2 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x10)" * (cast_expression "(uint *)(iVar2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }" else (compound_statement "{\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }" { (expression_statement "local_78 = *(undefined4 *****)(iVar2 + 0xc);" (assignment_expression "local_78 = *(undefined4 *****)(iVar2 + 0xc)" identifier = (pointer_expression "*(undefined4 *****)(iVar2 + 0xc)" * (cast_expression "(undefined4 *****)(iVar2 + 0xc)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_7c = *(uint *)(iVar2 + 0x10);" (assignment_expression "local_7c = *(uint *)(iVar2 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x10)" * (cast_expression "(uint *)(iVar2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) }))) (expression_statement "puVar1 = (uint *)(param_1[0x21] + local_50 * 8);" (assignment_expression "puVar1 = (uint *)(param_1[0x21] + local_50 * 8)" identifier = (cast_expression "(uint *)(param_1[0x21] + local_50 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x21] + local_50 * 8)" ( (binary_expression "param_1[0x21] + local_50 * 8" (subscript_expression "param_1[0x21]" identifier [ number_literal ]) + (binary_expression "local_50 * 8" identifier * number_literal)) )))) ;) (expression_statement "local_6c = *puVar1;" (assignment_expression "local_6c = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "local_68 = puVar1[1];" (assignment_expression "local_68 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (if_statement "if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }" if (parenthesized_expression "((local_68 & local_6c) == 0xffffffff)" ( (binary_expression "(local_68 & local_6c) == 0xffffffff" (parenthesized_expression "(local_68 & local_6c)" ( (binary_expression "local_68 & local_6c" identifier & identifier) )) == number_literal) )) (compound_statement "{\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }" { (expression_statement "local_8c = local_78;" (assignment_expression "local_8c = local_78" identifier = identifier) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (if_statement "if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(local_7c != 0)" ( (binary_expression "local_7c != 0" identifier != number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f97" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f97" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;" (assignment_expression "*(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3" (pointer_expression "*(undefined ***)(puVar18 + -0x10)" * (cast_expression "(undefined ***)(puVar18 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "local_84 + -0x672d3" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328ebf;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328ebf" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;" if (parenthesized_expression "((undefined4 *****)local_78 == (undefined4 *****)0x0)" ( (binary_expression "(undefined4 *****)local_78 == (undefined4 *****)0x0" (cast_expression "(undefined4 *****)local_78" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_00328950;" goto statement_identifier ;)) (expression_statement "pppppuVar7 = (undefined4 *****)local_78;" (assignment_expression "pppppuVar7 = (undefined4 *****)local_78" identifier = (cast_expression "(undefined4 *****)local_78" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }" if (parenthesized_expression "((char)local_5c != '\0')" ( (binary_expression "(char)local_5c != '\0'" (cast_expression "(char)local_5c" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }" { (if_statement "if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;" if (parenthesized_expression "(*(int *)(iVar2 + 0x8c) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x8c) == 0" (pointer_expression "*(int *)(iVar2 + 0x8c)" * (cast_expression "(int *)(iVar2 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x8c)" ( (binary_expression "iVar2 + 0x8c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00328fac;" goto statement_identifier ;)) (expression_statement "*local_54 = *(int *)(iVar2 + 0x8c) + local_64;" (assignment_expression "*local_54 = *(int *)(iVar2 + 0x8c) + local_64" (pointer_expression "*local_54" * identifier) = (binary_expression "*(int *)(iVar2 + 0x8c) + local_64" (pointer_expression "*(int *)(iVar2 + 0x8c)" * (cast_expression "(int *)(iVar2 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x8c)" ( (binary_expression "iVar2 + 0x8c" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00328dcc;" goto statement_identifier ;)) (expression_statement "uVar10 = *(uint *)(iVar2 + 4);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 4)" identifier = (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_54[2] = *(uint *)(iVar2 + 8);" (assignment_expression "local_54[2] = *(uint *)(iVar2 + 8)" (subscript_expression "local_54[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_54[1] = uVar10;" (assignment_expression "local_54[1] = uVar10" (subscript_expression "local_54[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);" (assignment_expression "uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5)" identifier = (call_expression "CONCAT31(local_5c._1_3_,bVar5 >> 5)" identifier (argument_list "(local_5c._1_3_,bVar5 >> 5)" ( (field_expression "local_5c._1_3_" identifier . field_identifier) , (binary_expression "bVar5 >> 5" identifier >> number_literal) )))) ;) (expression_statement "iVar9 = *(int *)(*local_74 + 8);" (assignment_expression "iVar9 = *(int *)(*local_74 + 8)" identifier = (pointer_expression "*(int *)(*local_74 + 8)" * (cast_expression "(int *)(*local_74 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_74 + 8)" ( (binary_expression "*local_74 + 8" (pointer_expression "*local_74" * identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_003288fd;" goto statement_identifier ;) })) (if_statement "if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))" ( (binary_expression "((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0)" (parenthesized_expression "((int)local_60 < 0)" ( (binary_expression "(int)local_60 < 0" (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0)" ( (comma_expression "local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (assignment_expression "local_6c = *(uint *)(param_4 + 0xc)" identifier = (pointer_expression "*(uint *)(param_4 + 0xc)" * (cast_expression "(uint *)(param_4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) ))))) , (comma_expression "iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (assignment_expression "iVar15 = local_60 + CARRY4((uint)local_78,local_64)" identifier = (binary_expression "local_60 + CARRY4((uint)local_78,local_64)" identifier + (call_expression "CARRY4((uint)local_78,local_64)" identifier (argument_list "((uint)local_78,local_64)" ( (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))))) , (comma_expression "uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (assignment_expression "uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64))" identifier = (call_expression "(uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64))" ( (binary_expression "*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)" (pointer_expression "*(undefined1 **)(param_4 + 8)" * (cast_expression "(undefined1 **)(param_4 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) < (cast_expression "(undefined1 *)((int)local_78 + local_64)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + local_64)" ( (binary_expression "(int)local_78 + local_64" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) )))) , (comma_expression "iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (assignment_expression "iVar21 = local_6c - iVar15" identifier = (binary_expression "local_6c - iVar15" identifier - identifier)) , (binary_expression "(SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (parenthesized_expression "(SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10))" ( (binary_expression "SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)" (call_expression "SBORROW4(local_6c,iVar15)" identifier (argument_list "(local_6c,iVar15)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar21,uVar10)" identifier (argument_list "(iVar21,uVar10)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar21 - uVar10) < 0" (cast_expression "(int)(iVar21 - uVar10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar21 - uVar10)" ( (binary_expression "iVar21 - uVar10" identifier - identifier) ))) < number_literal)))))) ))) )) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f89" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x6f;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x6f" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328ea1;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328ea1" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*local_54 = local_64 + *(int *)(param_4 + 0x10);" (assignment_expression "*local_54 = local_64 + *(int *)(param_4 + 0x10)" (pointer_expression "*local_54" * identifier) = (binary_expression "local_64 + *(int *)(param_4 + 0x10)" identifier + (pointer_expression "*(int *)(param_4 + 0x10)" * (cast_expression "(int *)(param_4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))))) ;) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00328dcc;" goto statement_identifier ;)) (expression_statement "uVar10 = *(uint *)(iVar2 + 8);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 8)" identifier = (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_54[1] = *(uint *)(iVar2 + 4);" (assignment_expression "local_54[1] = *(uint *)(iVar2 + 4)" (subscript_expression "local_54[1]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_54[2] = uVar10;" (assignment_expression "local_54[2] = uVar10" (subscript_expression "local_54[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_54[4] = local_60;" (assignment_expression "local_54[4] = local_60" (subscript_expression "local_54[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_54[3] = local_64;" (assignment_expression "local_54[3] = local_64" (subscript_expression "local_54[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_54[5] = (uint)local_78;" (assignment_expression "local_54[5] = (uint)local_78" (subscript_expression "local_54[5]" identifier [ number_literal ]) = (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined2 *)(local_54 + 6) = 1;" (assignment_expression "*(undefined2 *)(local_54 + 6) = 1" (pointer_expression "*(undefined2 *)(local_54 + 6)" * (cast_expression "(undefined2 *)(local_54 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 6)" ( (binary_expression "local_54 + 6" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }" else (compound_statement "{\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }" { (expression_statement "uVar10 = *(uint *)(local_58 + 0x24);" (assignment_expression "uVar10 = *(uint *)(local_58 + 0x24)" identifier = (pointer_expression "*(uint *)(local_58 + 0x24)" * (cast_expression "(uint *)(local_58 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x24)" ( (binary_expression "local_58 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);" (assignment_expression "pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18)" identifier = (cast_expression "(undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18)" ( (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(*(int *)(local_58 + 0x20) != 0)" ( (binary_expression "*(int *)(local_58 + 0x20) != 0" (pointer_expression "*(int *)(local_58 + 0x20)" * (cast_expression "(int *)(local_58 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x20)" ( (binary_expression "local_58 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f97" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f97" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;" (assignment_expression "*(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3" (pointer_expression "*(undefined ***)(puVar18 + -0x10)" * (cast_expression "(undefined ***)(puVar18 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "local_84 + -0x672d3" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e08;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e08" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar9 = param_1[0xd];" (assignment_expression "iVar9 = param_1[0xd]" identifier = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) (if_statement "if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }" { (labeled_statement "LAB_00328c60:\n            local_80 = local_80 & 0xffffff00;" statement_identifier : (expression_statement "local_80 = local_80 & 0xffffff00;" (assignment_expression "local_80 = local_80 & 0xffffff00" identifier = (binary_expression "local_80 & 0xffffff00" identifier & number_literal)) ;)) }) (else_clause "else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }" else (compound_statement "{\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }" { (expression_statement "uVar10 = iVar9 + 4;" (assignment_expression "uVar10 = iVar9 + 4" identifier = (binary_expression "iVar9 + 4" identifier + number_literal)) ;) (expression_statement "uVar13 = *(uint *)(iVar9 + 8);" (assignment_expression "uVar13 = *(uint *)(iVar9 + 8)" identifier = (pointer_expression "*(uint *)(iVar9 + 8)" * (cast_expression "(uint *)(iVar9 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) (if_statement "if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;" if (parenthesized_expression "(*(uint *)(iVar9 + 8) == 0)" ( (binary_expression "*(uint *)(iVar9 + 8) == 0" (pointer_expression "*(uint *)(iVar9 + 8)" * (cast_expression "(uint *)(iVar9 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00328c60;" goto statement_identifier ;)) (do_statement "do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);" do (compound_statement "{\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            }" { (while_statement "while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }" while (parenthesized_expression "(uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50)" ( (comma_expression "uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50" (assignment_expression "uVar12 = uVar13" identifier = identifier) , (binary_expression "*(uint *)(uVar12 + 0x10) < local_50" (pointer_expression "*(uint *)(uVar12 + 0x10)" * (cast_expression "(uint *)(uVar12 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x10)" ( (binary_expression "uVar12 + 0x10" identifier + number_literal) )))) < identifier)) )) (compound_statement "{\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }" { (expression_statement "puVar1 = (uint *)(uVar12 + 0xc);" (assignment_expression "puVar1 = (uint *)(uVar12 + 0xc)" identifier = (cast_expression "(uint *)(uVar12 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0xc)" ( (binary_expression "uVar12 + 0xc" identifier + number_literal) )))) ;) (expression_statement "uVar13 = *puVar1;" (assignment_expression "uVar13 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "uVar12 = uVar11;" (assignment_expression "uVar12 = uVar11" identifier = identifier) ;) (if_statement "if (*puVar1 == 0) goto LAB_003287e8;" if (parenthesized_expression "(*puVar1 == 0)" ( (binary_expression "*puVar1 == 0" (pointer_expression "*puVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_003287e8;" goto statement_identifier ;)) })) (expression_statement "uVar13 = *(uint *)(uVar12 + 8);" (assignment_expression "uVar13 = *(uint *)(uVar12 + 8)" identifier = (pointer_expression "*(uint *)(uVar12 + 8)" * (cast_expression "(uint *)(uVar12 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 8)" ( (binary_expression "uVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = uVar12;" (assignment_expression "uVar11 = uVar12" identifier = identifier) ;) }) while (parenthesized_expression "(*(uint *)(uVar12 + 8) != 0)" ( (binary_expression "*(uint *)(uVar12 + 8) != 0" (pointer_expression "*(uint *)(uVar12 + 8)" * (cast_expression "(uint *)(uVar12 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 8)" ( (binary_expression "uVar12 + 8" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;" statement_identifier : (expression_statement "local_80 = uVar10 & 0xffffff00;" (assignment_expression "local_80 = uVar10 & 0xffffff00" identifier = (binary_expression "uVar10 & 0xffffff00" identifier & number_literal)) ;)) (if_statement "if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }" if (parenthesized_expression "((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50))" ( (binary_expression "(uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)" (parenthesized_expression "(uVar10 != uVar12)" ( (binary_expression "uVar10 != uVar12" identifier != identifier) )) && (parenthesized_expression "(*(uint *)(uVar12 + 0x10) <= local_50)" ( (binary_expression "*(uint *)(uVar12 + 0x10) <= local_50" (pointer_expression "*(uint *)(uVar12 + 0x10)" * (cast_expression "(uint *)(uVar12 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x10)" ( (binary_expression "uVar12 + 0x10" identifier + number_literal) )))) <= identifier) ))) )) (compound_statement "{\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }" { (expression_statement "local_80 = CONCAT31((int3)(uVar10 >> 8),1);" (assignment_expression "local_80 = CONCAT31((int3)(uVar10 >> 8),1)" identifier = (call_expression "CONCAT31((int3)(uVar10 >> 8),1)" identifier (argument_list "((int3)(uVar10 >> 8),1)" ( (call_expression "(int3)(uVar10 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar10 >> 8)" ( (binary_expression "uVar10 >> 8" identifier >> number_literal) ))) , number_literal )))) ;) (expression_statement "pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);" (assignment_expression "pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14)" identifier = (pointer_expression "*(undefined4 ******)(uVar12 + 0x14)" * (cast_expression "(undefined4 ******)(uVar12 + 0x14)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(uVar12 + 0x14)" ( (binary_expression "uVar12 + 0x14" identifier + number_literal) ))))) ;) })) }))) (if_statement "if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;" if (parenthesized_expression "(pppppuVar7 == (undefined4 *****)0x0)" ( (binary_expression "pppppuVar7 == (undefined4 *****)0x0" identifier == (cast_expression "(undefined4 *****)0x0" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_00328950;" goto statement_identifier ;)) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);" (assignment_expression "uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7)" identifier = (binary_expression "local_68 + CARRY4(local_6c,(uint)pppppuVar7)" identifier + (call_expression "CARRY4(local_6c,(uint)pppppuVar7)" identifier (argument_list "(local_6c,(uint)pppppuVar7)" ( identifier , (cast_expression "(uint)pppppuVar7" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;) (expression_statement "local_9c = pppppuVar7;" (assignment_expression "local_9c = pppppuVar7" identifier = identifier) ;) (if_statement "if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))" ( (binary_expression "local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7))" (binary_expression "local_7c < uVar10" identifier < identifier) || (binary_expression "local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7))" (binary_expression "local_7c - uVar10" identifier - identifier) < (call_expression "(uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7))" ( (binary_expression "local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)" identifier < (cast_expression "(undefined4 *****)(local_6c + (int)pppppuVar7)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(local_6c + (int)pppppuVar7)" ( (binary_expression "local_6c + (int)pppppuVar7" identifier + (cast_expression "(int)pppppuVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))))) )) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f9b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x317;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x317" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x1547d9" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f37;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f37" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar22 = CARRY4(local_64,local_6c);" (assignment_expression "bVar22 = CARRY4(local_64,local_6c)" identifier = (call_expression "CARRY4(local_64,local_6c)" identifier (argument_list "(local_64,local_6c)" ( identifier , identifier )))) ;) (expression_statement "local_64 = local_64 + local_6c;" (assignment_expression "local_64 = local_64 + local_6c" identifier = (binary_expression "local_64 + local_6c" identifier + identifier)) ;) (expression_statement "local_60 = local_60 + local_68 + (uint)bVar22;" (assignment_expression "local_60 = local_60 + local_68 + (uint)bVar22" identifier = (binary_expression "local_60 + local_68 + (uint)bVar22" (binary_expression "local_60 + local_68" identifier + identifier) + (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }" if (parenthesized_expression "((char)local_5c == '\0')" ( (binary_expression "(char)local_5c == '\0'" (cast_expression "(char)local_5c" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }" { (if_statement "if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0))" ( (binary_expression "((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)" (parenthesized_expression "((int)local_60 < 0)" ( (binary_expression "(int)local_60 < 0" (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)" ( (comma_expression "iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64)" identifier = (binary_expression "local_60 + CARRY4((uint)pppppuVar7,local_64)" identifier + (call_expression "CARRY4((uint)pppppuVar7,local_64)" identifier (argument_list "((uint)pppppuVar7,local_64)" ( (cast_expression "(uint)pppppuVar7" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))))) , (comma_expression "uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64))" identifier = (call_expression "(uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64))" ( (binary_expression "*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)" (pointer_expression "*(undefined1 **)(param_4 + 8)" * (cast_expression "(undefined1 **)(param_4 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) < (cast_expression "(undefined1 *)((int)pppppuVar7 + local_64)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppuVar7 + local_64)" ( (binary_expression "(int)pppppuVar7 + local_64" (cast_expression "(int)pppppuVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) )))) , (comma_expression "iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "iVar9 = *(int *)(param_4 + 0xc) - iVar21" identifier = (binary_expression "*(int *)(param_4 + 0xc) - iVar21" (pointer_expression "*(int *)(param_4 + 0xc)" * (cast_expression "(int *)(param_4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) )))) - identifier)) , (binary_expression "(SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10))" ( (binary_expression "SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)" (call_expression "SBORROW4(*(int *)(param_4 + 0xc),iVar21)" identifier (argument_list "(*(int *)(param_4 + 0xc),iVar21)" ( (pointer_expression "*(int *)(param_4 + 0xc)" * (cast_expression "(int *)(param_4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) )))) , identifier ))) != (call_expression "SBORROW4(iVar9,uVar10)" identifier (argument_list "(iVar9,uVar10)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar9 - uVar10) < 0" (cast_expression "(int)(iVar9 - uVar10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar9 - uVar10)" ( (binary_expression "iVar9 - uVar10" identifier - identifier) ))) < number_literal))))) ))) )) (compound_statement "{\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f89" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x6f;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x6f" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;" (assignment_expression "*(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5" (pointer_expression "*(undefined1 **)(puVar18 + -0x14)" * (cast_expression "(undefined1 **)(puVar18 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = (pointer_expression "&LAB_00328fe5" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = local_64 + *(int *)(param_4 + 0x10);" (assignment_expression "local_5c = local_64 + *(int *)(param_4 + 0x10)" identifier = (binary_expression "local_64 + *(int *)(param_4 + 0x10)" identifier + (pointer_expression "*(int *)(param_4 + 0x10)" * (cast_expression "(int *)(param_4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))))) ;) (if_statement "if ((char)local_80 == '\0') goto LAB_00328869;" if (parenthesized_expression "((char)local_80 == '\0')" ( (binary_expression "(char)local_80 == '\0'" (cast_expression "(char)local_80" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00328869;" goto statement_identifier ;)) (labeled_statement "LAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(puVar18 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -4)" * (cast_expression "(undefined4 *)(puVar18 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "*(undefined4 **)(puVar18 + -8) = &local_44;" (assignment_expression "*(undefined4 **)(puVar18 + -8) = &local_44" (pointer_expression "*(undefined4 **)(puVar18 + -8)" * (cast_expression "(undefined4 **)(puVar18 + -8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "*(uint *)(puVar18 + -0xc) = local_50;" (assignment_expression "*(uint *)(puVar18 + -0xc) = local_50" (pointer_expression "*(uint *)(puVar18 + -0xc)" * (cast_expression "(uint *)(puVar18 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar18 + -0x10) = param_1;" (assignment_expression "*(int **)(puVar18 + -0x10) = param_1" (pointer_expression "*(int **)(puVar18 + -0x10)" * (cast_expression "(int **)(puVar18 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328bc3;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328bc3" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = FUN_0028b8b0();" (assignment_expression "uVar8 = FUN_0028b8b0()" identifier = (call_expression "FUN_0028b8b0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_78 = *(undefined4 *****)(local_58 + 8);" (assignment_expression "local_78 = *(undefined4 *****)(local_58 + 8)" identifier = (pointer_expression "*(undefined4 *****)(local_58 + 8)" * (cast_expression "(undefined4 *****)(local_58 + 8)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(local_58 + 8)" ( (binary_expression "local_58 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(local_58 + 0xc);" (assignment_expression "uVar10 = *(uint *)(local_58 + 0xc)" identifier = (pointer_expression "*(uint *)(local_58 + 0xc)" * (cast_expression "(uint *)(local_58 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0xc)" ( (binary_expression "local_58 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;" (assignment_expression "*(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18" (pointer_expression "*(uint *)(puVar18 + -4)" * (cast_expression "(uint *)(puVar18 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = (binary_expression "(uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18" (binary_expression "(uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8" (binary_expression "(uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8" (binary_expression "(uint)local_78 >> 0x18" (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "((uint)local_78 & 0xff0000) >> 8" (parenthesized_expression "((uint)local_78 & 0xff0000)" ( (binary_expression "(uint)local_78 & 0xff0000" (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((uint)local_78 & 0xff00) << 8" (parenthesized_expression "((uint)local_78 & 0xff00)" ( (binary_expression "(uint)local_78 & 0xff00" (cast_expression "(uint)local_78" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(int)local_78 << 0x18" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal))) ;) (expression_statement "*(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;" (assignment_expression "*(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (pointer_expression "*(uint *)(puVar18 + -8)" * (cast_expression "(uint *)(puVar18 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x10) = 0x40;" (assignment_expression "*(undefined4 *)(puVar18 + -0x10) = 0x40" (pointer_expression "*(undefined4 *)(puVar18 + -0x10)" * (cast_expression "(undefined4 *)(puVar18 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;" (assignment_expression "*(undefined4 ******)(puVar18 + -0x14) = pppppuVar7" (pointer_expression "*(undefined4 ******)(puVar18 + -0x14)" * (cast_expression "(undefined4 ******)(puVar18 + -0x14)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar18 + -0x18) = local_5c;" (assignment_expression "*(uint *)(puVar18 + -0x18) = local_5c" (pointer_expression "*(uint *)(puVar18 + -0x18)" * (cast_expression "(uint *)(puVar18 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x18)" ( (binary_expression "puVar18 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x1c) = local_44;" (assignment_expression "*(undefined4 *)(puVar18 + -0x1c) = local_44" (pointer_expression "*(undefined4 *)(puVar18 + -0x1c)" * (cast_expression "(undefined4 *)(puVar18 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x1c)" ( (binary_expression "puVar18 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x20) = uVar8;" (assignment_expression "*(undefined4 *)(puVar18 + -0x20) = uVar8" (pointer_expression "*(undefined4 *)(puVar18 + -0x20)" * (cast_expression "(undefined4 *)(puVar18 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x20)" ( (binary_expression "puVar18 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x24) = 0x328bf3;" (assignment_expression "*(undefined4 *)(puVar18 + -0x24) = 0x328bf3" (pointer_expression "*(undefined4 *)(puVar18 + -0x24)" * (cast_expression "(undefined4 *)(puVar18 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x24)" ( (binary_expression "puVar18 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar6 = FUN_0036f6a0();" (assignment_expression "cVar6 = FUN_0036f6a0()" identifier = (call_expression "FUN_0036f6a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar17 = puVar18;" (assignment_expression "puVar17 = puVar18" identifier = identifier) ;) (if_statement "if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }" { (expression_statement "iVar9 = *param_1;" (assignment_expression "iVar9 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*(uint *)(puVar18 + -8) = local_50;" (assignment_expression "*(uint *)(puVar18 + -8) = local_50" (pointer_expression "*(uint *)(puVar18 + -8)" * (cast_expression "(uint *)(puVar18 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar18 + -0xc) = param_1;" (assignment_expression "*(int **)(puVar18 + -0xc) = param_1" (pointer_expression "*(int **)(puVar18 + -0xc)" * (cast_expression "(int **)(puVar18 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 ******)(puVar18 + -0x10) = &local_34;" (assignment_expression "*(undefined4 ******)(puVar18 + -0x10) = &local_34" (pointer_expression "*(undefined4 ******)(puVar18 + -0x10)" * (cast_expression "(undefined4 ******)(puVar18 + -0x10)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "pcVar3 = *(code **)(iVar9 + 0x40);" (assignment_expression "pcVar3 = *(code **)(iVar9 + 0x40)" identifier = (pointer_expression "*(code **)(iVar9 + 0x40)" * (cast_expression "(code **)(iVar9 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328c13;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328c13" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "local_78 = local_34;" (assignment_expression "local_78 = local_34" identifier = identifier) ;) (expression_statement "*(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;" (assignment_expression "*(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922" (pointer_expression "*(undefined ***)(puVar18 + -0x14)" * (cast_expression "(undefined ***)(puVar18 + -0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = (binary_expression "local_84 + -0x57922" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x18) = 0x328c28;" (assignment_expression "*(undefined4 *)(puVar18 + -0x18) = 0x328c28" (pointer_expression "*(undefined4 *)(puVar18 + -0x18)" * (cast_expression "(undefined4 *)(puVar18 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x18)" ( (binary_expression "puVar18 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = gettext();" (assignment_expression "uVar8 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *****)(puVar18 + -0xc) = local_78;" (assignment_expression "*(undefined4 *****)(puVar18 + -0xc) = local_78" (pointer_expression "*(undefined4 *****)(puVar18 + -0xc)" * (cast_expression "(undefined4 *****)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x10) = uVar8;" (assignment_expression "*(undefined4 *)(puVar18 + -0x10) = uVar8" (pointer_expression "*(undefined4 *)(puVar18 + -0x10)" * (cast_expression "(undefined4 *)(puVar18 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar18 + -0x14) = param_1;" (assignment_expression "*(int **)(puVar18 + -0x14) = param_1" (pointer_expression "*(int **)(puVar18 + -0x14)" * (cast_expression "(int **)(puVar18 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x18) = 0x328c3b;" (assignment_expression "*(undefined4 *)(puVar18 + -0x18) = 0x328c3b" (pointer_expression "*(undefined4 *)(puVar18 + -0x18)" * (cast_expression "(undefined4 *)(puVar18 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x18)" ( (binary_expression "puVar18 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0028b750();" (call_expression "FUN_0028b750()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar17 = puVar18 + -4;" (assignment_expression "puVar17 = puVar18 + -4" identifier = (binary_expression "puVar18 + -4" identifier + number_literal)) ;) (if_statement "if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;" if (parenthesized_expression "((undefined4 *****)local_34 == &local_2c)" ( (binary_expression "(undefined4 *****)local_34 == &local_2c" (cast_expression "(undefined4 *****)local_34" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (pointer_expression "&local_2c" & identifier)) )) (goto_statement "goto LAB_003288be;" goto statement_identifier ;)) (expression_statement "puVar16 = puVar18 + -0x14;" (assignment_expression "puVar16 = puVar18 + -0x14" identifier = (binary_expression "puVar18 + -0x14" identifier + number_literal)) ;) (expression_statement "*(undefined4 *****)(puVar18 + -0x14) = local_34;" (assignment_expression "*(undefined4 *****)(puVar18 + -0x14) = local_34" (pointer_expression "*(undefined4 *****)(puVar18 + -0x14)" * (cast_expression "(undefined4 *****)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x18) = 0x328c58;" (assignment_expression "*(undefined4 *)(puVar18 + -0x18) = 0x328c58" (pointer_expression "*(undefined4 *)(puVar18 + -0x18)" * (cast_expression "(undefined4 *)(puVar18 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x18)" ( (binary_expression "puVar18 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_003288bb;" goto statement_identifier ;) })) }) (else_clause "else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }" else (compound_statement "{\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }" { (if_statement "if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x8c) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x8c) == 0" (pointer_expression "*(int *)(iVar2 + 0x8c)" * (cast_expression "(int *)(iVar2 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x8c)" ( (binary_expression "iVar2 + 0x8c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }" { (labeled_statement "LAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;" statement_identifier : (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f85" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f85" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xe34;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xe34" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328fca;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328fca" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = *(int *)(iVar2 + 0x8c) + local_64;" (assignment_expression "local_5c = *(int *)(iVar2 + 0x8c) + local_64" identifier = (binary_expression "*(int *)(iVar2 + 0x8c) + local_64" (pointer_expression "*(int *)(iVar2 + 0x8c)" * (cast_expression "(int *)(iVar2 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x8c)" ( (binary_expression "iVar2 + 0x8c" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((char)local_80 != '\0') goto LAB_00328baf;" if (parenthesized_expression "((char)local_80 != '\0')" ( (binary_expression "(char)local_80 != '\0'" (cast_expression "(char)local_80" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00328baf;" goto statement_identifier ;)) (labeled_statement "LAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);" statement_identifier : (expression_statement "uVar10 = *(uint *)(local_58 + 0x18);" (assignment_expression "uVar10 = *(uint *)(local_58 + 0x18)" identifier = (pointer_expression "*(uint *)(local_58 + 0x18)" * (cast_expression "(uint *)(local_58 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x18)" ( (binary_expression "local_58 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "uVar13 = *(uint *)(local_58 + 0x1c);" (assignment_expression "uVar13 = *(uint *)(local_58 + 0x1c)" identifier = (pointer_expression "*(uint *)(local_58 + 0x1c)" * (cast_expression "(uint *)(local_58 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x1c)" ( (binary_expression "local_58 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;" (assignment_expression "local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" identifier = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) (expression_statement "local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);" (assignment_expression "local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18)" identifier = (cast_expression "(undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18)" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18)" ( (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8" (binary_expression "uVar13 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar13 & 0xff0000) >> 8" (parenthesized_expression "(uVar13 & 0xff0000)" ( (binary_expression "uVar13 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar13 & 0xff00) << 8" (parenthesized_expression "(uVar13 & 0xff00)" ( (binary_expression "uVar13 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar13 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "cVar6 = local_9d;" (assignment_expression "cVar6 = local_9d" identifier = identifier) ;) (if_statement "if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }" if (parenthesized_expression "((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0))" ( (binary_expression "(local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)" (parenthesized_expression "(local_3c != local_40)" ( (binary_expression "local_3c != local_40" identifier != identifier) )) && (parenthesized_expression "(uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)" ( (comma_expression "uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10))" identifier = (call_expression "(uint)(local_78 < *(undefined4 ******)(local_3c + -0x10))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_78 < *(undefined4 ******)(local_3c + -0x10))" ( (binary_expression "local_78 < *(undefined4 ******)(local_3c + -0x10)" identifier < (pointer_expression "*(undefined4 ******)(local_3c + -0x10)" * (cast_expression "(undefined4 ******)(local_3c + -0x10)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(local_3c + -0x10)" ( (binary_expression "local_3c + -0x10" identifier + number_literal) ))))) )))) , (comma_expression "iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "iVar9 = local_30 - *(int *)(local_3c + -0xc)" identifier = (binary_expression "local_30 - *(int *)(local_3c + -0xc)" identifier - (pointer_expression "*(int *)(local_3c + -0xc)" * (cast_expression "(int *)(local_3c + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_3c + -0xc)" ( (binary_expression "local_3c + -0xc" identifier + number_literal) )))))) , (comma_expression "cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "cVar6 = (char)local_80" identifier = (cast_expression "(char)local_80" ( (type_descriptor "char" primitive_type) ) identifier)) , (binary_expression "(SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0" (parenthesized_expression "(SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10))" ( (binary_expression "SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)" (call_expression "SBORROW4(local_30,*(int *)(local_3c + -0xc))" identifier (argument_list "(local_30,*(int *)(local_3c + -0xc))" ( identifier , (pointer_expression "*(int *)(local_3c + -0xc)" * (cast_expression "(int *)(local_3c + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_3c + -0xc)" ( (binary_expression "local_3c + -0xc" identifier + number_literal) )))) ))) != (call_expression "SBORROW4(iVar9,uVar10)" identifier (argument_list "(iVar9,uVar10)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar9 - uVar10) < 0" (cast_expression "(int)(iVar9 - uVar10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar9 - uVar10)" ( (binary_expression "iVar9 - uVar10" identifier - identifier) ))) < number_literal))))) ))) )) (compound_statement "{\n              cVar6 = local_9d;\n            }" { (expression_statement "cVar6 = local_9d;" (assignment_expression "cVar6 = local_9d" identifier = identifier) ;) })) (expression_statement "local_9d = cVar6;" (assignment_expression "local_9d = cVar6" identifier = identifier) ;) (expression_statement "local_28 = local_5c;" (assignment_expression "local_28 = local_5c" identifier = identifier) ;) (expression_statement "*(undefined4 ******)(puVar18 + -0xc) = &local_34;" (assignment_expression "*(undefined4 ******)(puVar18 + -0xc) = &local_34" (pointer_expression "*(undefined4 ******)(puVar18 + -0xc)" * (cast_expression "(undefined4 ******)(puVar18 + -0xc)" ( (type_descriptor "undefined4 ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "puVar16 = puVar18 + -0x10;" (assignment_expression "puVar16 = puVar18 + -0x10" identifier = (binary_expression "puVar18 + -0x10" identifier + number_literal)) ;) (expression_statement "*(int **)(puVar18 + -0x10) = &local_40;" (assignment_expression "*(int **)(puVar18 + -0x10) = &local_40" (pointer_expression "*(int **)(puVar18 + -0x10)" * (cast_expression "(int **)(puVar18 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x3288bb;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x3288bb" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = local_78;" (assignment_expression "local_34 = local_78" identifier = identifier) ;) (expression_statement "local_2c = pppppuVar7;" (assignment_expression "local_2c = pppppuVar7" identifier = identifier) ;) (expression_statement "FUN_00320060();" (call_expression "FUN_00320060()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_003288bb:\n            puVar17 = puVar16 + 0x10;" statement_identifier : (expression_statement "puVar17 = puVar16 + 0x10;" (assignment_expression "puVar17 = puVar16 + 0x10" identifier = (binary_expression "puVar16 + 0x10" identifier + number_literal)) ;)) }))) (labeled_statement "LAB_003288be:\n          *local_54 = local_5c;" statement_identifier : (expression_statement "*local_54 = local_5c;" (assignment_expression "*local_54 = local_5c" (pointer_expression "*local_54" * identifier) = identifier) ;)) (expression_statement "puVar18 = puVar17;" (assignment_expression "puVar18 = puVar17" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }" { (labeled_statement "LAB_00328dcc:\n            ppuVar4 = local_84;" statement_identifier : (expression_statement "ppuVar4 = local_84;" (assignment_expression "ppuVar4 = local_84" identifier = identifier) ;)) (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f8b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)ppuVar4 + -0x19cca3" (cast_expression "(int)ppuVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328dea;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328dea" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar13 = *(uint *)(iVar2 + 4);" (assignment_expression "uVar13 = *(uint *)(iVar2 + 4)" identifier = (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = *(int *)(iVar2 + 8);" (assignment_expression "iVar21 = *(int *)(iVar2 + 8)" identifier = (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(*local_74 + 8);" (assignment_expression "iVar9 = *(int *)(*local_74 + 8)" identifier = (pointer_expression "*(int *)(*local_74 + 8)" * (cast_expression "(int *)(*local_74 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_74 + 8)" ( (binary_expression "*local_74 + 8" (pointer_expression "*local_74" * identifier) + number_literal) ))))) ;) (expression_statement "uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);" (assignment_expression "uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5)" identifier = (call_expression "CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5)" identifier (argument_list "(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5)" ( (field_expression "local_5c._1_3_" identifier . field_identifier) , (binary_expression "*(byte *)(iVar2 + 0x90) >> 5" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "local_54[1] = uVar13 + local_6c;" (assignment_expression "local_54[1] = uVar13 + local_6c" (subscript_expression "local_54[1]" identifier [ number_literal ]) = (binary_expression "uVar13 + local_6c" identifier + identifier)) ;) (expression_statement "local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);" (assignment_expression "local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c)" (subscript_expression "local_54[2]" identifier [ number_literal ]) = (binary_expression "iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c)" (binary_expression "iVar21 + local_68" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar13,local_6c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar13,local_6c)" identifier (argument_list "(uVar13,local_6c)" ( identifier , identifier )))))) ;) (labeled_statement "LAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;" statement_identifier : (expression_statement "local_5c = uVar10 & 0xffffff01;" (assignment_expression "local_5c = uVar10 & 0xffffff01" identifier = (binary_expression "uVar10 & 0xffffff01" identifier & number_literal)) ;)) (expression_statement "local_54[3] = local_64;" (assignment_expression "local_54[3] = local_64" (subscript_expression "local_54[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_54[4] = local_60;" (assignment_expression "local_54[4] = local_60" (subscript_expression "local_54[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_54[5] = (uint)pppppuVar7;" (assignment_expression "local_54[5] = (uint)pppppuVar7" (subscript_expression "local_54[5]" identifier [ number_literal ]) = (cast_expression "(uint)pppppuVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;" (assignment_expression "*(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff" (pointer_expression "*(bool *)(local_54 + 6)" * (cast_expression "(bool *)(local_54 + 6)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 6)" ( (binary_expression "local_54 + 6" identifier + number_literal) )))) = (binary_expression "(local_6c & local_68) == 0xffffffff" (parenthesized_expression "(local_6c & local_68)" ( (binary_expression "local_6c & local_68" identifier & identifier) )) == number_literal)) ;) (expression_statement "*(char *)((int)local_54 + 0x19) = (char)local_5c;" (assignment_expression "*(char *)((int)local_54 + 0x19) = (char)local_5c" (pointer_expression "*(char *)((int)local_54 + 0x19)" * (cast_expression "(char *)((int)local_54 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x19)" ( (binary_expression "(int)local_54 + 0x19" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)local_5c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f02" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f02" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x1a1d93" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e3e;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e3e" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;" (assignment_expression "bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7" identifier = (binary_expression "(*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7" (parenthesized_expression "(*(byte *)(iVar9 + 0x318d) ^ 1)" ( (binary_expression "*(byte *)(iVar9 + 0x318d) ^ 1" (pointer_expression "*(byte *)(iVar9 + 0x318d)" * (cast_expression "(byte *)(iVar9 + 0x318d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x318d)" ( (binary_expression "iVar9 + 0x318d" identifier + number_literal) )))) ^ number_literal) )) & (binary_expression "&DAT_00000008 < pppppuVar7" (pointer_expression "&DAT_00000008" & identifier) < identifier))) ;) (expression_statement "bVar24 = bVar5 == 0;" (assignment_expression "bVar24 = bVar5 == 0" identifier = (binary_expression "bVar5 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }" { (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar19 = *(byte **)(iVar2 + 0x20);" (assignment_expression "pbVar19 = *(byte **)(iVar2 + 0x20)" identifier = (pointer_expression "*(byte **)(iVar2 + 0x20)" * (cast_expression "(byte **)(iVar2 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pbVar20 = (byte *)((int)local_84 + -0x15ffb6);" (assignment_expression "pbVar20 = (byte *)((int)local_84 + -0x15ffb6)" identifier = (cast_expression "(byte *)((int)local_84 + -0x15ffb6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + -0x15ffb6)" ( (binary_expression "(int)local_84 + -0x15ffb6" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);" do (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar19 < *pbVar20;" (assignment_expression "bVar22 = *pbVar19 < *pbVar20" identifier = (binary_expression "*pbVar19 < *pbVar20" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar24 = *pbVar19 == *pbVar20;" (assignment_expression "bVar24 = *pbVar19 == *pbVar20" identifier = (binary_expression "*pbVar19 == *pbVar20" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }" { (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar19 = *(byte **)(iVar2 + 0x20);" (assignment_expression "pbVar19 = *(byte **)(iVar2 + 0x20)" identifier = (pointer_expression "*(byte **)(iVar2 + 0x20)" * (cast_expression "(byte **)(iVar2 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pbVar20 = (byte *)((int)local_84 + -0x15ffaa);" (assignment_expression "pbVar20 = (byte *)((int)local_84 + -0x15ffaa)" identifier = (cast_expression "(byte *)((int)local_84 + -0x15ffaa)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + -0x15ffaa)" ( (binary_expression "(int)local_84 + -0x15ffaa" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);" do (compound_statement "{\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar19 < *pbVar20;" (assignment_expression "bVar23 = *pbVar19 < *pbVar20" identifier = (binary_expression "*pbVar19 < *pbVar20" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar19 == *pbVar20;" (assignment_expression "bVar22 = *pbVar19 == *pbVar20" identifier = (binary_expression "*pbVar19 == *pbVar20" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }" if (parenthesized_expression "((!bVar23 && !bVar22) != bVar23)" ( (binary_expression "(!bVar23 && !bVar22) != bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) != identifier) )) (compound_statement "{\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }" { (expression_statement "bVar5 = 0;" (assignment_expression "bVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0032894a;" goto statement_identifier ;) })) })) (expression_statement "*(uint *)(puVar18 + -8) = local_50;" (assignment_expression "*(uint *)(puVar18 + -8) = local_50" (pointer_expression "*(uint *)(puVar18 + -8)" * (cast_expression "(uint *)(puVar18 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar18 + -0xc) = param_1;" (assignment_expression "*(int **)(puVar18 + -0xc) = param_1" (pointer_expression "*(int **)(puVar18 + -0xc)" * (cast_expression "(int **)(puVar18 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)(puVar18 + -0x10) = param_2" (pointer_expression "*(undefined4 *)(puVar18 + -0x10)" * (cast_expression "(undefined4 *)(puVar18 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328d4c;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328d4c" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar5 = FUN_002790d0();" (assignment_expression "bVar5 = FUN_002790d0()" identifier = (call_expression "FUN_002790d0()" identifier (argument_list "()" ( )))) ;) })) (labeled_statement "LAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;" statement_identifier : (expression_statement "*(byte *)((int)local_54 + 0x1a) = bVar5;" (assignment_expression "*(byte *)((int)local_54 + 0x1a) = bVar5" (pointer_expression "*(byte *)((int)local_54 + 0x1a)" * (cast_expression "(byte *)((int)local_54 + 0x1a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x1a)" ( (binary_expression "(int)local_54 + 0x1a" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (goto_statement "goto LAB_00328950;" goto statement_identifier ;) })) (if_statement "if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }" if (parenthesized_expression "((uint)param_1[10] <= local_50)" ( (binary_expression "(uint)param_1[10] <= local_50" (cast_expression "(uint)param_1[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[10]" identifier [ number_literal ])) <= identifier) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f45" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f45" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x549;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x549" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cc7b" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e5c;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e5c" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);" (assignment_expression "iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4)" identifier = (pointer_expression "*(int *)(*(int *)param_1[0x11] + local_50 * 4)" * (cast_expression "(int *)(*(int *)param_1[0x11] + local_50 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1[0x11] + local_50 * 4)" ( (binary_expression "*(int *)param_1[0x11] + local_50 * 4" (pointer_expression "*(int *)param_1[0x11]" * (cast_expression "(int *)param_1[0x11]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x11]" identifier [ number_literal ]))) + (binary_expression "local_50 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f9b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x2ce;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x2ce" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x1547d9" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328efb;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328efb" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = *(int *)(iVar2 + 0x10);" (assignment_expression "iVar2 = *(int *)(iVar2 + 0x10)" identifier = (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f9b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x2d0;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x2d0" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x1547d9" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328edd;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328edd" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar5 = *(byte *)(iVar2 + 0x1c);" (assignment_expression "bVar5 = *(byte *)(iVar2 + 0x1c)" identifier = (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }" if (parenthesized_expression "((bVar5 & 4) == 0)" ( (binary_expression "(bVar5 & 4) == 0" (parenthesized_expression "(bVar5 & 4)" ( (binary_expression "bVar5 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f78" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f78" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xe3;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xe3" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328fac;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328fac" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar10 = *(uint *)(iVar2 + 0x14);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x14)" * (cast_expression "(uint *)(iVar2 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(iVar2 + 0x18);" (assignment_expression "uVar13 = *(uint *)(iVar2 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x18)" * (cast_expression "(uint *)(iVar2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_54[3] = uVar10;" (assignment_expression "local_54[3] = uVar10" (subscript_expression "local_54[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_54[4] = uVar13;" (assignment_expression "local_54[4] = uVar13" (subscript_expression "local_54[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }" if (parenthesized_expression "((bVar5 & 2) == 0)" ( (binary_expression "(bVar5 & 2) == 0" (parenthesized_expression "(bVar5 & 2)" ( (binary_expression "bVar5 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f7b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xcf;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xcf" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f8e;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f8e" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar11 = *(uint *)(iVar2 + 0xc);" (assignment_expression "uVar11 = *(uint *)(iVar2 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar2 + 0xc)" * (cast_expression "(uint *)(iVar2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_54[5] = uVar11;" (assignment_expression "local_54[5] = uVar11" (subscript_expression "local_54[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }" if (parenthesized_expression "((int)uVar13 < 0)" ( (binary_expression "(int)uVar13 < 0" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }" { (labeled_statement "LAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;" statement_identifier : (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f89" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x6f;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x6f" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f70;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f70" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "local_64 = uVar11 + uVar10;" (assignment_expression "local_64 = uVar11 + uVar10" identifier = (binary_expression "uVar11 + uVar10" identifier + identifier)) ;) (expression_statement "local_60 = uVar13 + CARRY4(uVar11,uVar10);" (assignment_expression "local_60 = uVar13 + CARRY4(uVar11,uVar10)" identifier = (binary_expression "uVar13 + CARRY4(uVar11,uVar10)" identifier + (call_expression "CARRY4(uVar11,uVar10)" identifier (argument_list "(uVar11,uVar10)" ( identifier , identifier ))))) ;) (expression_statement "local_6c = *(uint *)(param_4 + 0xc);" (assignment_expression "local_6c = *(uint *)(param_4 + 0xc)" identifier = (pointer_expression "*(uint *)(param_4 + 0xc)" * (cast_expression "(uint *)(param_4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);" (assignment_expression "uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64)" identifier = (call_expression "(uint)(*(uint *)(param_4 + 8) < local_64)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_4 + 8) < local_64)" ( (binary_expression "*(uint *)(param_4 + 8) < local_64" (pointer_expression "*(uint *)(param_4 + 8)" * (cast_expression "(uint *)(param_4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) < identifier) )))) ;) (expression_statement "local_94 = uVar11;" (assignment_expression "local_94 = uVar11" identifier = identifier) ;) (if_statement "if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;" if (parenthesized_expression "((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0)" ( (binary_expression "(SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0" (parenthesized_expression "(SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13))" ( (binary_expression "SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)" (call_expression "SBORROW4(local_6c,local_60)" identifier (argument_list "(local_6c,local_60)" ( identifier , identifier ))) != (call_expression "SBORROW4(local_6c - local_60,uVar13)" identifier (argument_list "(local_6c - local_60,uVar13)" ( (binary_expression "local_6c - local_60" identifier - identifier) , identifier )))) )) != (binary_expression "(int)((local_6c - local_60) - uVar13) < 0" (cast_expression "(int)((local_6c - local_60) - uVar13)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((local_6c - local_60) - uVar13)" ( (binary_expression "(local_6c - local_60) - uVar13" (parenthesized_expression "(local_6c - local_60)" ( (binary_expression "local_6c - local_60" identifier - identifier) )) - identifier) ))) < number_literal)) )) (goto_statement "goto LAB_00328f55;" goto statement_identifier ;)) (expression_statement "*local_54 = *(int *)(param_4 + 0x10) + uVar10;" (assignment_expression "*local_54 = *(int *)(param_4 + 0x10) + uVar10" (pointer_expression "*local_54" * identifier) = (binary_expression "*(int *)(param_4 + 0x10) + uVar10" (pointer_expression "*(int *)(param_4 + 0x10)" * (cast_expression "(int *)(param_4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }" if (parenthesized_expression "((bVar5 & 1) == 0)" ( (binary_expression "(bVar5 & 1) == 0" (parenthesized_expression "(bVar5 & 1)" ( (binary_expression "bVar5 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f8b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f55;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f55" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar10 = *(uint *)(iVar2 + 4);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 4)" identifier = (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (expression_statement "local_54[2] = *(uint *)(iVar2 + 8);" (assignment_expression "local_54[2] = *(uint *)(iVar2 + 8)" (subscript_expression "local_54[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_54[1] = uVar10;" (assignment_expression "local_54[1] = uVar10" (subscript_expression "local_54[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined2 *)(local_54 + 6) = 0;" (assignment_expression "*(undefined2 *)(local_54 + 6) = 0" (pointer_expression "*(undefined2 *)(local_54 + 6)" * (cast_expression "(undefined2 *)(local_54 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 6)" ( (binary_expression "local_54 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)local_54 + 0x1a) = 0;" (assignment_expression "*(undefined1 *)((int)local_54 + 0x1a) = 0" (pointer_expression "*(undefined1 *)((int)local_54 + 0x1a)" * (cast_expression "(undefined1 *)((int)local_54 + 0x1a)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + 0x1a)" ( (binary_expression "(int)local_54 + 0x1a" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_58 = local_58 + 0x40;" (assignment_expression "local_58 = local_58 + 0x40" identifier = (binary_expression "local_58 + 0x40" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_50 != local_70)" ( (binary_expression "local_50 != local_70" identifier != identifier) )) ;) (labeled_statement "LAB_00328964:\n    iVar9 = local_3c;" statement_identifier : (expression_statement "iVar9 = local_3c;" (assignment_expression "iVar9 = local_3c" identifier = identifier) ;)) (expression_statement "iVar2 = local_40;" (assignment_expression "iVar2 = local_40" identifier = identifier) ;) (if_statement "if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }" if (parenthesized_expression "(local_3c != local_40)" ( (binary_expression "local_3c != local_40" identifier != identifier) )) (compound_statement "{\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }" { (if_statement "if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }" if (parenthesized_expression "(local_9d == '\0')" ( (binary_expression "local_9d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }" { (expression_statement "*(undefined4 *)(puVar18 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -4)" * (cast_expression "(undefined4 *)(puVar18 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = iVar9 - iVar2 >> 4;" (assignment_expression "uVar13 = iVar9 - iVar2 >> 4" identifier = (binary_expression "iVar9 - iVar2 >> 4" (binary_expression "iVar9 - iVar2" identifier - identifier) >> number_literal)) ;) (expression_statement "uVar10 = 0x1f;" (assignment_expression "uVar10 = 0x1f" identifier = number_literal) ;) (if_statement "if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }" { (for_statement "for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }" for ( ; (binary_expression "uVar13 >> uVar10 == 0" (binary_expression "uVar13 >> uVar10" identifier >> identifier) == number_literal) ; (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ) (compound_statement "{\n          }" { })) })) (expression_statement "*(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;" (assignment_expression "*(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2" (pointer_expression "*(uint *)(puVar18 + -8)" * (cast_expression "(uint *)(puVar18 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "(0x1f - (uVar10 ^ 0x1f)) * 2" (parenthesized_expression "(0x1f - (uVar10 ^ 0x1f))" ( (binary_expression "0x1f - (uVar10 ^ 0x1f)" number_literal - (parenthesized_expression "(uVar10 ^ 0x1f)" ( (binary_expression "uVar10 ^ 0x1f" identifier ^ number_literal) ))) )) * number_literal)) ;) (expression_statement "*(int *)(puVar18 + -0xc) = iVar9;" (assignment_expression "*(int *)(puVar18 + -0xc) = iVar9" (pointer_expression "*(int *)(puVar18 + -0xc)" * (cast_expression "(int *)(puVar18 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar18 + -0x10) = iVar2;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar2" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328d76;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328d76" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00328410();" (call_expression "FUN_00328410()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }" if (parenthesized_expression "(iVar9 - iVar2 < 0x101)" ( (binary_expression "iVar9 - iVar2 < 0x101" (binary_expression "iVar9 - iVar2" identifier - identifier) < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }" { (expression_statement "*(undefined4 *)(puVar18 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -8)" * (cast_expression "(undefined4 *)(puVar18 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0xc) = iVar9;" (assignment_expression "*(int *)(puVar18 + -0xc) = iVar9" (pointer_expression "*(int *)(puVar18 + -0xc)" * (cast_expression "(int *)(puVar18 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar18 + -0x10) = iVar2;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar2" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328dc4;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328dc4" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003281a0();" (call_expression "FUN_003281a0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }" else (compound_statement "{\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }" { (expression_statement "iVar21 = iVar2 + 0x100;" (assignment_expression "iVar21 = iVar2 + 0x100" identifier = (binary_expression "iVar2 + 0x100" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -8)" * (cast_expression "(undefined4 *)(puVar18 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0xc) = iVar21;" (assignment_expression "*(int *)(puVar18 + -0xc) = iVar21" (pointer_expression "*(int *)(puVar18 + -0xc)" * (cast_expression "(int *)(puVar18 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar18 + -0x10) = iVar2;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar2" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328d93;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328d93" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003281a0();" (call_expression "FUN_003281a0()" identifier (argument_list "()" ( ))) ;) (for_statement "for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }" for ( ; (binary_expression "iVar9 != iVar21" identifier != identifier) ; (assignment_expression "iVar21 = iVar21 + 0x10" identifier = (binary_expression "iVar21 + 0x10" identifier + number_literal)) ) (compound_statement "{\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }" { (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = iVar21;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar21" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328dac;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328dac" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00328120();" (call_expression "FUN_00328120()" identifier (argument_list "()" ( ))) ;) })) }))) })) (expression_statement "iVar2 = param_1[7];" (assignment_expression "iVar2 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }" { (expression_statement "*(undefined4 *)(puVar18 + -4) = 0x328e61;" (assignment_expression "*(undefined4 *)(puVar18 + -4) = 0x328e61" (pointer_expression "*(undefined4 *)(puVar18 + -4)" * (cast_expression "(undefined4 *)(puVar18 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00317c50();" (call_expression "FUN_00317c50()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00328e68:\n        ppuVar4 = local_84;" statement_identifier : (expression_statement "ppuVar4 = local_84;" (assignment_expression "ppuVar4 = local_84" identifier = identifier) ;)) (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b" (pointer_expression "*(undefined ***)(puVar18 + -8)" * (cast_expression "(undefined ***)(puVar18 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "local_84 + -0x54f7b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xcf;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xcf" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" * (cast_expression "(undefined4 *)(puVar18 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "(int)ppuVar4 + -0x19cca3" (cast_expression "(int)ppuVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e86;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e86" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(int **)(puVar18 + -4) = &local_40;" (assignment_expression "*(int **)(puVar18 + -4) = &local_40" (pointer_expression "*(int **)(puVar18 + -4)" * (cast_expression "(int **)(puVar18 + -4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "*(int *)(puVar18 + -8) = param_1[9];" (assignment_expression "*(int *)(puVar18 + -8) = param_1[9]" (pointer_expression "*(int *)(puVar18 + -8)" * (cast_expression "(int *)(puVar18 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(puVar18 + -0xc) = param_1[8];" (assignment_expression "*(int *)(puVar18 + -0xc) = param_1[8]" (pointer_expression "*(int *)(puVar18 + -0xc)" * (cast_expression "(int *)(puVar18 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(puVar18 + -0x10) = iVar2 + 0x1c;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar2 + 0x1c" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = (binary_expression "iVar2 + 0x1c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x3289a2;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x3289a2" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0023d3d0();" (call_expression "FUN_0023d3d0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }" { (expression_statement "*(int *)(puVar18 + -0x10) = local_40;" (assignment_expression "*(int *)(puVar18 + -0x10) = local_40" (pointer_expression "*(int *)(puVar18 + -0x10)" * (cast_expression "(int *)(puVar18 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x3289b8;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x3289b8" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" * (cast_expression "(undefined4 *)(puVar18 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (do_statement do (compound_statement { (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 (binary_expression IDENT * LIT) + (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (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 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 IDENT = (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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 * (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 ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 * (abstract_pointer_declarator *)))))) ) 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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT ))))) , (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) )))) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT - IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) != (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) < LIT)))))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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) )))) = LIT) ;) }) (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) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression 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 IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT ))))) , (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) )))) , (comma_expression (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) != (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) != (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) < LIT))))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << 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) )))) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (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 * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (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 = (binary_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 * (abstract_pointer_declarator *)))))) ) IDENT) == (pointer_expression & IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) != (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) == (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) < LIT))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (binary_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 ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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) )))) = (binary_expression (parenthesized_expression ( (binary_expression IDENT & 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) )))) = (cast_expression ( (type_descriptor TYPE) ) 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }))) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ^ LIT) )) & (binary_expression (pointer_expression & IDENT) < IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (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) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( 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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , IDENT )))) )) != (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - IDENT) ))) < LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (for_statement for ( ; (binary_expression (binary_expression IDENT >> IDENT) == LIT) ; (assignment_expression IDENT = (binary_expression IDENT - LIT)) ) (compound_statement { })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_expression ( (binary_expression LIT - (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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 ( ))) ;) (for_statement for ( ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (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 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 * (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) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (return_statement return ;) })))
(function_definition "void FUN_00328650(int *param_1,undefined4 param_2,int param_3,int param_4,int *param_5)\n\n{\n  uint *puVar1;\n  int iVar2;\n  code *pcVar3;\n  undefined **ppuVar4;\n  byte bVar5;\n  char cVar6;\n  undefined4 *****pppppuVar7;\n  undefined4 uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  byte bVar14;\n  int iVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint auStack_d0 [9];\n  undefined1 auStack_ac [15];\n  char local_9d;\n  undefined4 ****local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined4 local_90;\n  undefined4 ****local_8c;\n  undefined4 local_88;\n  undefined **local_84;\n  uint local_80;\n  uint local_7c;\n  undefined4 ****local_78;\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  uint local_5c;\n  int local_58;\n  uint *local_54;\n  uint local_50;\n  undefined4 local_44;\n  int local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 ****local_34;\n  uint local_30;\n  undefined4 ****local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_84 = &__DT_PLTGOT;\n  puVar18 = auStack_ac;\n  local_40 = 0;\n  local_70 = param_1[10];\n  local_58 = param_3 + 0x40;\n  local_3c = 0;\n  local_38 = 0;\n  if (1 < local_70) {\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00328650(int *param_1,undefined4 param_2,int param_3,int param_4,int *param_5)" (identifier "FUN_00328650") (parameter_list "(int *param_1,undefined4 param_2,int param_3,int param_4,int *param_5)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (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 "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  uint *puVar1;\n  int iVar2;\n  code *pcVar3;\n  undefined **ppuVar4;\n  byte bVar5;\n  char cVar6;\n  undefined4 *****pppppuVar7;\n  undefined4 uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  byte bVar14;\n  int iVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint auStack_d0 [9];\n  undefined1 auStack_ac [15];\n  char local_9d;\n  undefined4 ****local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined4 local_90;\n  undefined4 ****local_8c;\n  undefined4 local_88;\n  undefined **local_84;\n  uint local_80;\n  uint local_7c;\n  undefined4 ****local_78;\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  uint local_5c;\n  int local_58;\n  uint *local_54;\n  uint local_50;\n  undefined4 local_44;\n  int local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 ****local_34;\n  uint local_30;\n  undefined4 ****local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_84 = &__DT_PLTGOT;\n  puVar18 = auStack_ac;\n  local_40 = 0;\n  local_70 = param_1[10];\n  local_58 = param_3 + 0x40;\n  local_3c = 0;\n  local_38 = 0;\n  if (1 < local_70) {\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }\n  return;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "undefined **ppuVar4;" (type_identifier "undefined") (pointer_declarator "**ppuVar4" (* "*") (pointer_declarator "*ppuVar4" (* "*") (identifier "ppuVar4"))) (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "undefined4 *****pppppuVar7;" (type_identifier "undefined4") (pointer_declarator "*****pppppuVar7" (* "*") (pointer_declarator "****pppppuVar7" (* "*") (pointer_declarator "***pppppuVar7" (* "*") (pointer_declarator "**pppppuVar7" (* "*") (pointer_declarator "*pppppuVar7" (* "*") (identifier "pppppuVar7")))))) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined1 *puVar17;" (type_identifier "undefined1") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined1 *puVar18;" (type_identifier "undefined1") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "bool bVar24;" (primitive_type "bool") (identifier "bVar24") (; ";")) (declaration "byte bVar25;" (type_identifier "byte") (identifier "bVar25") (; ";")) (declaration "uint auStack_d0 [9];" (type_identifier "uint") (array_declarator "auStack_d0 [9]" (identifier "auStack_d0") ([ "[") (number_literal "9") (] "]")) (; ";")) (declaration "undefined1 auStack_ac [15];" (type_identifier "undefined1") (array_declarator "auStack_ac [15]" (identifier "auStack_ac") ([ "[") (number_literal "15") (] "]")) (; ";")) (declaration "char local_9d;" (primitive_type "char") (identifier "local_9d") (; ";")) (declaration "undefined4 ****local_9c;" (type_identifier "undefined4") (pointer_declarator "****local_9c" (* "*") (pointer_declarator "***local_9c" (* "*") (pointer_declarator "**local_9c" (* "*") (pointer_declarator "*local_9c" (* "*") (identifier "local_9c"))))) (; ";")) (declaration "undefined4 local_98;" (type_identifier "undefined4") (identifier "local_98") (; ";")) (declaration "uint local_94;" (type_identifier "uint") (identifier "local_94") (; ";")) (declaration "undefined4 local_90;" (type_identifier "undefined4") (identifier "local_90") (; ";")) (declaration "undefined4 ****local_8c;" (type_identifier "undefined4") (pointer_declarator "****local_8c" (* "*") (pointer_declarator "***local_8c" (* "*") (pointer_declarator "**local_8c" (* "*") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c"))))) (; ";")) (declaration "undefined4 local_88;" (type_identifier "undefined4") (identifier "local_88") (; ";")) (declaration "undefined **local_84;" (type_identifier "undefined") (pointer_declarator "**local_84" (* "*") (pointer_declarator "*local_84" (* "*") (identifier "local_84"))) (; ";")) (declaration "uint local_80;" (type_identifier "uint") (identifier "local_80") (; ";")) (declaration "uint local_7c;" (type_identifier "uint") (identifier "local_7c") (; ";")) (declaration "undefined4 ****local_78;" (type_identifier "undefined4") (pointer_declarator "****local_78" (* "*") (pointer_declarator "***local_78" (* "*") (pointer_declarator "**local_78" (* "*") (pointer_declarator "*local_78" (* "*") (identifier "local_78"))))) (; ";")) (declaration "int *local_74;" (primitive_type "int") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "uint local_70;" (type_identifier "uint") (identifier "local_70") (; ";")) (declaration "uint local_6c;" (type_identifier "uint") (identifier "local_6c") (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "uint local_64;" (type_identifier "uint") (identifier "local_64") (; ";")) (declaration "uint local_60;" (type_identifier "uint") (identifier "local_60") (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "uint *local_54;" (type_identifier "uint") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 ****local_34;" (type_identifier "undefined4") (pointer_declarator "****local_34" (* "*") (pointer_declarator "***local_34" (* "*") (pointer_declarator "**local_34" (* "*") (pointer_declarator "*local_34" (* "*") (identifier "local_34"))))) (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (declaration "undefined4 ****local_2c;" (type_identifier "undefined4") (pointer_declarator "****local_2c" (* "*") (pointer_declarator "***local_2c" (* "*") (pointer_declarator "**local_2c" (* "*") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c"))))) (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_84 = &__DT_PLTGOT;" (assignment_expression "local_84 = &__DT_PLTGOT" (identifier "local_84") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "puVar18 = auStack_ac;" (assignment_expression "puVar18 = auStack_ac" (identifier "puVar18") (= "=") (identifier "auStack_ac")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70 = param_1[10];" (assignment_expression "local_70 = param_1[10]" (identifier "local_70") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "local_58 = param_3 + 0x40;" (assignment_expression "local_58 = param_3 + 0x40" (identifier "local_58") (= "=") (binary_expression "param_3 + 0x40" (identifier "param_3") (+ "+") (number_literal "0x40"))) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (if_statement "if (1 < local_70) {\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }" (if "if") (parenthesized_expression "(1 < local_70)" (( "(") (binary_expression "1 < local_70" (number_literal "1") (< "<") (identifier "local_70")) () ")")) (compound_statement "{\n    local_74 = &DAT_005ea7c8;\n    local_50 = 1;\n    local_9d = '\x01';\n    do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);\nLAB_00328964:\n    iVar9 = local_3c;\n    iVar2 = local_40;\n    if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }\n    if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }\n  }" ({ "{") (expression_statement "local_74 = &DAT_005ea7c8;" (assignment_expression "local_74 = &DAT_005ea7c8" (identifier "local_74") (= "=") (pointer_expression "&DAT_005ea7c8" (& "&") (identifier "DAT_005ea7c8"))) (; ";")) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_9d = '\x01';" (assignment_expression "local_9d = '\x01'" (identifier "local_9d") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (do_statement "do {\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    } while (local_50 != local_70);" (do "do") (compound_statement "{\n      while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }\n      uVar10 = *(uint *)(local_58 + 4);\n      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n      if (uVar10 == 8) goto LAB_00328950;\n      iVar9 = *(int *)(*local_74 + 8);\n      if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }\n      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }\n      if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }\n      iVar2 = *(int *)(iVar2 + 0x10);\n      if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }\n      bVar5 = *(byte *)(iVar2 + 0x1c);\n      if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 0x14);\n      uVar13 = *(uint *)(iVar2 + 0x18);\n      local_54[3] = uVar10;\n      local_54[4] = uVar13;\n      if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }\n      uVar11 = *(uint *)(iVar2 + 0xc);\n      local_54[5] = uVar11;\n      if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }\n      local_90 = 0;\n      local_64 = uVar11 + uVar10;\n      local_60 = uVar13 + CARRY4(uVar11,uVar10);\n      local_6c = *(uint *)(param_4 + 0xc);\n      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);\n      local_94 = uVar11;\n      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;\n      *local_54 = *(int *)(param_4 + 0x10) + uVar10;\n      if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }\n      uVar10 = *(uint *)(iVar2 + 4);\n      local_50 = local_50 + 1;\n      local_54[2] = *(uint *)(iVar2 + 8);\n      local_54[1] = uVar10;\n      *(undefined2 *)(local_54 + 6) = 0;\n      *(undefined1 *)((int)local_54 + 0x1a) = 0;\n      local_58 = local_58 + 0x40;\n    }" ({ "{") (while_statement "while( true ) {\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        local_54 = (uint *)(local_50 * 0x1c + *param_5);\n        *local_54 = 0;\n        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);\n        if (iVar2 != 0) break;\nLAB_00328950:\n        local_50 = local_50 + 1;\n        local_58 = local_58 + 0x40;\n        if (local_50 == local_70) goto LAB_00328964;\n      }" ({ "{") (expression_statement "local_54 = (uint *)(local_50 * 0x1c + *param_5);" (assignment_expression "local_54 = (uint *)(local_50 * 0x1c + *param_5)" (identifier "local_54") (= "=") (cast_expression "(uint *)(local_50 * 0x1c + *param_5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 * 0x1c + *param_5)" (( "(") (binary_expression "local_50 * 0x1c + *param_5" (binary_expression "local_50 * 0x1c" (identifier "local_50") (* "*") (number_literal "0x1c")) (+ "+") (pointer_expression "*param_5" (* "*") (identifier "param_5"))) () ")")))) (; ";")) (expression_statement "*local_54 = 0;" (assignment_expression "*local_54 = 0" (pointer_expression "*local_54" (* "*") (identifier "local_54")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = *(int *)(param_1[0xe] + local_50 * 4);" (assignment_expression "iVar2 = *(int *)(param_1[0xe] + local_50 * 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1[0xe] + local_50 * 4)" (* "*") (cast_expression "(int *)(param_1[0xe] + local_50 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xe] + local_50 * 4)" (( "(") (binary_expression "param_1[0xe] + local_50 * 4" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "local_50 * 4" (identifier "local_50") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (iVar2 != 0) break;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00328950:\n        local_50 = local_50 + 1;" (statement_identifier "LAB_00328950") (: ":") (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" (identifier "local_50") (= "=") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "local_58 = local_58 + 0x40;" (assignment_expression "local_58 = local_58 + 0x40" (identifier "local_58") (= "=") (binary_expression "local_58 + 0x40" (identifier "local_58") (+ "+") (number_literal "0x40"))) (; ";")) (if_statement "if (local_50 == local_70) goto LAB_00328964;" (if "if") (parenthesized_expression "(local_50 == local_70)" (( "(") (binary_expression "local_50 == local_70" (identifier "local_50") (== "==") (identifier "local_70")) () ")")) (goto_statement "goto LAB_00328964;" (goto "goto") (statement_identifier "LAB_00328964") (; ";"))) (} "}"))) (expression_statement "uVar10 = *(uint *)(local_58 + 4);" (assignment_expression "uVar10 = *(uint *)(local_58 + 4)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(local_58 + 4)" (* "*") (cast_expression "(uint *)(local_58 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 4)" (( "(") (binary_expression "local_58 + 4" (identifier "local_58") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;" (assignment_expression "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (identifier "uVar10") (= "=") (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" (identifier "uVar10") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" (( "(") (binary_expression "uVar10 & 0xff0000" (identifier "uVar10") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" (( "(") (binary_expression "uVar10 & 0xff00" (identifier "uVar10") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar10 << 0x18" (identifier "uVar10") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (uVar10 == 8) goto LAB_00328950;" (if "if") (parenthesized_expression "(uVar10 == 8)" (( "(") (binary_expression "uVar10 == 8" (identifier "uVar10") (== "==") (number_literal "8")) () ")")) (goto_statement "goto LAB_00328950;" (goto "goto") (statement_identifier "LAB_00328950") (; ";"))) (expression_statement "iVar9 = *(int *)(*local_74 + 8);" (assignment_expression "iVar9 = *(int *)(*local_74 + 8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(*local_74 + 8)" (* "*") (cast_expression "(int *)(*local_74 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_74 + 8)" (( "(") (binary_expression "*local_74 + 8" (pointer_expression "*local_74" (* "*") (identifier "local_74")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar9 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n        *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;\n        FUN_002446e0();\n      }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f02" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f02" (identifier "local_84") (+ "+") (number_literal "-0x54f02"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x1a1d93" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e23;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e23" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328e23")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }" (if "if") (parenthesized_expression "((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0))" (( "(") (binary_expression "(((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)" (parenthesized_expression "(((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9))))" (( "(") (binary_expression "((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||\n          ((uVar10 != 4 && (uVar10 != 9)))" (parenthesized_expression "((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')" (parenthesized_expression "(*(char *)(iVar9 + 0x318d) == '\0')" (( "(") (binary_expression "*(char *)(iVar9 + 0x318d) == '\0'" (pointer_expression "*(char *)(iVar9 + 0x318d)" (* "*") (cast_expression "(char *)(iVar9 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x318d)" (( "(") (binary_expression "iVar9 + 0x318d" (identifier "iVar9") (+ "+") (number_literal "0x318d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar9 + 0x3095) == '\0')" (( "(") (binary_expression "*(char *)(iVar9 + 0x3095) == '\0'" (pointer_expression "*(char *)(iVar9 + 0x3095)" (* "*") (cast_expression "(char *)(iVar9 + 0x3095)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x3095)" (( "(") (binary_expression "iVar9 + 0x3095" (identifier "iVar9") (+ "+") (number_literal "0x3095")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((uVar10 != 4 && (uVar10 != 9)))" (( "(") (parenthesized_expression "(uVar10 != 4 && (uVar10 != 9))" (( "(") (binary_expression "uVar10 != 4 && (uVar10 != 9)" (binary_expression "uVar10 != 4" (identifier "uVar10") (!= "!=") (number_literal "4")) (&& "&&") (parenthesized_expression "(uVar10 != 9)" (( "(") (binary_expression "uVar10 != 9" (identifier "uVar10") (!= "!=") (number_literal "9")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)" (( "(") (binary_expression "(*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0" (parenthesized_expression "(*(uint *)(local_58 + 0xc) >> 0x18 & 2)" (( "(") (binary_expression "*(uint *)(local_58 + 0xc) >> 0x18 & 2" (binary_expression "*(uint *)(local_58 + 0xc) >> 0x18" (pointer_expression "*(uint *)(local_58 + 0xc)" (* "*") (cast_expression "(uint *)(local_58 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 0xc)" (( "(") (binary_expression "local_58 + 0xc" (identifier "local_58") (+ "+") (number_literal "0xc")) () ")")))) (>> ">>") (number_literal "0x18")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        bVar5 = *(byte *)(iVar2 + 0x90);\n        bVar14 = bVar5 >> 5;\n        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;\n        if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }\n        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);\n        local_6c = *puVar1;\n        local_68 = puVar1[1];\n        if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }\n        bVar22 = false;\n        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;\n        bVar24 = bVar5 == 0;\n        if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }\nLAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;\n        goto LAB_00328950;\n      }" ({ "{") (expression_statement "bVar5 = *(byte *)(iVar2 + 0x90);" (assignment_expression "bVar5 = *(byte *)(iVar2 + 0x90)" (identifier "bVar5") (= "=") (pointer_expression "*(byte *)(iVar2 + 0x90)" (* "*") (cast_expression "(byte *)(iVar2 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x90)" (( "(") (binary_expression "iVar2 + 0x90" (identifier "iVar2") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (expression_statement "bVar14 = bVar5 >> 5;" (assignment_expression "bVar14 = bVar5 >> 5" (identifier "bVar14") (= "=") (binary_expression "bVar5 >> 5" (identifier "bVar5") (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;" (assignment_expression "local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01" (identifier "local_5c") (= "=") (binary_expression "CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01" (call_expression "CONCAT31(local_5c._1_3_,bVar14)" (identifier "CONCAT31") (argument_list "(local_5c._1_3_,bVar14)" (( "(") (field_expression "local_5c._1_3_" (identifier "local_5c") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "bVar14") () ")"))) (& "&") (number_literal "0xffffff01"))) (; ";")) (if_statement "if ((bVar14 & 1) == 0) {\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }\n        else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }" (if "if") (parenthesized_expression "((bVar14 & 1) == 0)" (( "(") (binary_expression "(bVar14 & 1) == 0" (parenthesized_expression "(bVar14 & 1)" (( "(") (binary_expression "bVar14 & 1" (identifier "bVar14") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }\n          local_64 = *(uint *)(iVar2 + 0x14);\n          local_60 = *(uint *)(iVar2 + 0x18);\n          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n        }" ({ "{") (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x1c) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 4)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x1c) & 4" (pointer_expression "*(byte *)(iVar2 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar2 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n            *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f78" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f78" (identifier "local_84") (+ "+") (number_literal "-0x54f78"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xe3;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xe3" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xe3")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x19cca3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f19;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f19" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328f19")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_64 = *(uint *)(iVar2 + 0x14);" (assignment_expression "local_64 = *(uint *)(iVar2 + 0x14)" (identifier "local_64") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x14)" (* "*") (cast_expression "(uint *)(iVar2 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_60 = *(uint *)(iVar2 + 0x18);" (assignment_expression "local_60 = *(uint *)(iVar2 + 0x18)" (identifier "local_60") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x18)" (* "*") (cast_expression "(uint *)(iVar2 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;" (if "if") (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 2)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar2 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar2 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00328e68;" (goto "goto") (statement_identifier "LAB_00328e68") (; ";"))) (expression_statement "local_78 = *(undefined4 *****)(iVar2 + 0xc);" (assignment_expression "local_78 = *(undefined4 *****)(iVar2 + 0xc)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 *****)(iVar2 + 0xc)" (* "*") (cast_expression "(undefined4 *****)(iVar2 + 0xc)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_7c = *(uint *)(iVar2 + 0x10);" (assignment_expression "local_7c = *(uint *)(iVar2 + 0x10)" (identifier "local_7c") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x10)" (* "*") (cast_expression "(uint *)(iVar2 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }" (else "else") (compound_statement "{\n          local_78 = *(undefined4 *****)(iVar2 + 0xc);\n          local_7c = *(uint *)(iVar2 + 0x10);\n          local_64 = 0;\n          local_60 = 0;\n        }" ({ "{") (expression_statement "local_78 = *(undefined4 *****)(iVar2 + 0xc);" (assignment_expression "local_78 = *(undefined4 *****)(iVar2 + 0xc)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 *****)(iVar2 + 0xc)" (* "*") (cast_expression "(undefined4 *****)(iVar2 + 0xc)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_7c = *(uint *)(iVar2 + 0x10);" (assignment_expression "local_7c = *(uint *)(iVar2 + 0x10)" (identifier "local_7c") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x10)" (* "*") (cast_expression "(uint *)(iVar2 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "puVar1 = (uint *)(param_1[0x21] + local_50 * 8);" (assignment_expression "puVar1 = (uint *)(param_1[0x21] + local_50 * 8)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(param_1[0x21] + local_50 * 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x21] + local_50 * 8)" (( "(") (binary_expression "param_1[0x21] + local_50 * 8" (subscript_expression "param_1[0x21]" (identifier "param_1") ([ "[") (number_literal "0x21") (] "]")) (+ "+") (binary_expression "local_50 * 8" (identifier "local_50") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "local_6c = *puVar1;" (assignment_expression "local_6c = *puVar1" (identifier "local_6c") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "local_68 = puVar1[1];" (assignment_expression "local_68 = puVar1[1]" (identifier "local_68") (= "=") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((local_68 & local_6c) == 0xffffffff) {\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }\n        else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }" (if "if") (parenthesized_expression "((local_68 & local_6c) == 0xffffffff)" (( "(") (binary_expression "(local_68 & local_6c) == 0xffffffff" (parenthesized_expression "(local_68 & local_6c)" (( "(") (binary_expression "local_68 & local_6c" (identifier "local_68") (& "&") (identifier "local_6c")) () ")")) (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n          local_8c = local_78;\n          local_88 = 0;\n          if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }\n          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;\n          pppppuVar7 = (undefined4 *****)local_78;\n          if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }\n          if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }\n          *local_54 = local_64 + *(int *)(param_4 + 0x10);\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n          uVar10 = *(uint *)(iVar2 + 8);\n          local_54[1] = *(uint *)(iVar2 + 4);\n          local_54[2] = uVar10;\n          local_54[4] = local_60;\n          local_54[3] = local_64;\n          local_54[5] = (uint)local_78;\n          *(undefined2 *)(local_54 + 6) = 1;\n        }" ({ "{") (expression_statement "local_8c = local_78;" (assignment_expression "local_8c = local_78" (identifier "local_8c") (= "=") (identifier "local_78")) (; ";")) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_7c != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "(local_7c != 0)" (( "(") (binary_expression "local_7c != 0" (identifier "local_7c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f97" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f97" (identifier "local_84") (+ "+") (number_literal "-0x54f97"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xc0")) (; ";")) (expression_statement "*(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;" (assignment_expression "*(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3" (pointer_expression "*(undefined ***)(puVar18 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar18 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_84 + -0x672d3" (identifier "local_84") (+ "+") (number_literal "-0x672d3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328ebf;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328ebf" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328ebf")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;" (if "if") (parenthesized_expression "((undefined4 *****)local_78 == (undefined4 *****)0x0)" (( "(") (binary_expression "(undefined4 *****)local_78 == (undefined4 *****)0x0" (cast_expression "(undefined4 *****)local_78" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_78")) (== "==") (cast_expression "(undefined4 *****)0x0" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00328950;" (goto "goto") (statement_identifier "LAB_00328950") (; ";"))) (expression_statement "pppppuVar7 = (undefined4 *****)local_78;" (assignment_expression "pppppuVar7 = (undefined4 *****)local_78" (identifier "pppppuVar7") (= "=") (cast_expression "(undefined4 *****)local_78" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_78"))) (; ";")) (if_statement "if ((char)local_5c != '\0') {\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }" (if "if") (parenthesized_expression "((char)local_5c != '\0')" (( "(") (binary_expression "(char)local_5c != '\0'" (cast_expression "(char)local_5c" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_5c")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;\n            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;\n            uVar10 = *(uint *)(iVar2 + 4);\n            local_54[2] = *(uint *)(iVar2 + 8);\n            local_54[1] = uVar10;\n            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);\n            iVar9 = *(int *)(*local_74 + 8);\n            goto LAB_003288fd;\n          }" ({ "{") (if_statement "if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x8c) == 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x8c) == 0" (pointer_expression "*(int *)(iVar2 + 0x8c)" (* "*") (cast_expression "(int *)(iVar2 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x8c)" (( "(") (binary_expression "iVar2 + 0x8c" (identifier "iVar2") (+ "+") (number_literal "0x8c")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00328fac;" (goto "goto") (statement_identifier "LAB_00328fac") (; ";"))) (expression_statement "*local_54 = *(int *)(iVar2 + 0x8c) + local_64;" (assignment_expression "*local_54 = *(int *)(iVar2 + 0x8c) + local_64" (pointer_expression "*local_54" (* "*") (identifier "local_54")) (= "=") (binary_expression "*(int *)(iVar2 + 0x8c) + local_64" (pointer_expression "*(int *)(iVar2 + 0x8c)" (* "*") (cast_expression "(int *)(iVar2 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x8c)" (( "(") (binary_expression "iVar2 + 0x8c" (identifier "iVar2") (+ "+") (number_literal "0x8c")) () ")")))) (+ "+") (identifier "local_64"))) (; ";")) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;" (if "if") (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar2 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00328dcc;" (goto "goto") (statement_identifier "LAB_00328dcc") (; ";"))) (expression_statement "uVar10 = *(uint *)(iVar2 + 4);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 4)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(iVar2 + 4)" (* "*") (cast_expression "(uint *)(iVar2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_54[2] = *(uint *)(iVar2 + 8);" (assignment_expression "local_54[2] = *(uint *)(iVar2 + 8)" (subscript_expression "local_54[2]" (identifier "local_54") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_54[1] = uVar10;" (assignment_expression "local_54[1] = uVar10" (subscript_expression "local_54[1]" (identifier "local_54") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);" (assignment_expression "uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5)" (identifier "uVar10") (= "=") (call_expression "CONCAT31(local_5c._1_3_,bVar5 >> 5)" (identifier "CONCAT31") (argument_list "(local_5c._1_3_,bVar5 >> 5)" (( "(") (field_expression "local_5c._1_3_" (identifier "local_5c") (. ".") (field_identifier "_1_3_")) (, ",") (binary_expression "bVar5 >> 5" (identifier "bVar5") (>> ">>") (number_literal "5")) () ")")))) (; ";")) (expression_statement "iVar9 = *(int *)(*local_74 + 8);" (assignment_expression "iVar9 = *(int *)(*local_74 + 8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(*local_74 + 8)" (* "*") (cast_expression "(int *)(*local_74 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_74 + 8)" (( "(") (binary_expression "*local_74 + 8" (pointer_expression "*local_74" (* "*") (identifier "local_74")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (goto_statement "goto LAB_003288fd;" (goto "goto") (statement_identifier "LAB_003288fd") (; ";")) (} "}"))) (if_statement "if (((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "(((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))" (( "(") (binary_expression "((int)local_60 < 0) ||\n             (local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0)" (parenthesized_expression "((int)local_60 < 0)" (( "(") (binary_expression "(int)local_60 < 0" (cast_expression "(int)local_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_60")) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0)" (( "(") (comma_expression "local_6c = *(uint *)(param_4 + 0xc),\n             iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (assignment_expression "local_6c = *(uint *)(param_4 + 0xc)" (identifier "local_6c") (= "=") (pointer_expression "*(uint *)(param_4 + 0xc)" (* "*") (cast_expression "(uint *)(param_4 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xc)" (( "(") (binary_expression "param_4 + 0xc" (identifier "param_4") (+ "+") (number_literal "0xc")) () ")"))))) (, ",") (comma_expression "iVar15 = local_60 + CARRY4((uint)local_78,local_64),\n             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (assignment_expression "iVar15 = local_60 + CARRY4((uint)local_78,local_64)" (identifier "iVar15") (= "=") (binary_expression "local_60 + CARRY4((uint)local_78,local_64)" (identifier "local_60") (+ "+") (call_expression "CARRY4((uint)local_78,local_64)" (identifier "CARRY4") (argument_list "((uint)local_78,local_64)" (( "(") (cast_expression "(uint)local_78" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_78")) (, ",") (identifier "local_64") () ")"))))) (, ",") (comma_expression "uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (assignment_expression "uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64))" (identifier "uVar10") (= "=") (call_expression "(uint)(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64))" (( "(") (binary_expression "*(undefined1 **)(param_4 + 8) <\n                            (undefined1 *)((int)local_78 + local_64)" (pointer_expression "*(undefined1 **)(param_4 + 8)" (* "*") (cast_expression "(undefined1 **)(param_4 + 8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")")))) (< "<") (cast_expression "(undefined1 *)((int)local_78 + local_64)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_78 + local_64)" (( "(") (binary_expression "(int)local_78 + local_64" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (+ "+") (identifier "local_64")) () ")")))) () ")")))) (, ",") (comma_expression "iVar21 = local_6c - iVar15,\n             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (assignment_expression "iVar21 = local_6c - iVar15" (identifier "iVar21") (= "=") (binary_expression "local_6c - iVar15" (identifier "local_6c") (- "-") (identifier "iVar15"))) (, ",") (binary_expression "(SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0" (parenthesized_expression "(SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10))" (( "(") (binary_expression "SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)" (call_expression "SBORROW4(local_6c,iVar15)" (identifier "SBORROW4") (argument_list "(local_6c,iVar15)" (( "(") (identifier "local_6c") (, ",") (identifier "iVar15") () ")"))) (!= "!=") (call_expression "SBORROW4(iVar21,uVar10)" (identifier "SBORROW4") (argument_list "(iVar21,uVar10)" (( "(") (identifier "iVar21") (, ",") (identifier "uVar10") () ")")))) () ")")) (!= "!=") (binary_expression "(int)(iVar21 - uVar10) < 0" (cast_expression "(int)(iVar21 - uVar10)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar21 - uVar10)" (( "(") (binary_expression "iVar21 - uVar10" (identifier "iVar21") (- "-") (identifier "uVar10")) () ")"))) (< "<") (number_literal "0"))))))) () ")"))) () ")")) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n            *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f89" (identifier "local_84") (+ "+") (number_literal "-0x54f89"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x6f;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x6f" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x6f")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x19cca3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328ea1;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328ea1" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328ea1")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*local_54 = local_64 + *(int *)(param_4 + 0x10);" (assignment_expression "*local_54 = local_64 + *(int *)(param_4 + 0x10)" (pointer_expression "*local_54" (* "*") (identifier "local_54")) (= "=") (binary_expression "local_64 + *(int *)(param_4 + 0x10)" (identifier "local_64") (+ "+") (pointer_expression "*(int *)(param_4 + 0x10)" (* "*") (cast_expression "(int *)(param_4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;" (if "if") (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar2 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00328dcc;" (goto "goto") (statement_identifier "LAB_00328dcc") (; ";"))) (expression_statement "uVar10 = *(uint *)(iVar2 + 8);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 8)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_54[1] = *(uint *)(iVar2 + 4);" (assignment_expression "local_54[1] = *(uint *)(iVar2 + 4)" (subscript_expression "local_54[1]" (identifier "local_54") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*(uint *)(iVar2 + 4)" (* "*") (cast_expression "(uint *)(iVar2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_54[2] = uVar10;" (assignment_expression "local_54[2] = uVar10" (subscript_expression "local_54[2]" (identifier "local_54") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "local_54[4] = local_60;" (assignment_expression "local_54[4] = local_60" (subscript_expression "local_54[4]" (identifier "local_54") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_60")) (; ";")) (expression_statement "local_54[3] = local_64;" (assignment_expression "local_54[3] = local_64" (subscript_expression "local_54[3]" (identifier "local_54") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_64")) (; ";")) (expression_statement "local_54[5] = (uint)local_78;" (assignment_expression "local_54[5] = (uint)local_78" (subscript_expression "local_54[5]" (identifier "local_54") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(uint)local_78" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_78"))) (; ";")) (expression_statement "*(undefined2 *)(local_54 + 6) = 1;" (assignment_expression "*(undefined2 *)(local_54 + 6) = 1" (pointer_expression "*(undefined2 *)(local_54 + 6)" (* "*") (cast_expression "(undefined2 *)(local_54 + 6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 6)" (( "(") (binary_expression "local_54 + 6" (identifier "local_54") (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }" (else "else") (compound_statement "{\n          uVar10 = *(uint *)(local_58 + 0x24);\n          pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);\n          if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }\n          iVar9 = param_1[0xd];\n          if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }\n          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;\n          local_98 = 0;\n          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);\n          local_9c = pppppuVar7;\n          if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }\n          bVar22 = CARRY4(local_64,local_6c);\n          local_64 = local_64 + local_6c;\n          local_60 = local_60 + local_68 + (uint)bVar22;\n          if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }\nLAB_003288be:\n          *local_54 = local_5c;\n          puVar18 = puVar17;\n          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }\n          uVar13 = *(uint *)(iVar2 + 4);\n          iVar21 = *(int *)(iVar2 + 8);\n          iVar9 = *(int *)(*local_74 + 8);\n          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);\n          local_54[1] = uVar13 + local_6c;\n          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);\nLAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;\n          local_54[3] = local_64;\n          local_54[4] = local_60;\n          local_54[5] = (uint)pppppuVar7;\n          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;\n          *(char *)((int)local_54 + 0x19) = (char)local_5c;\n          if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }\n        }" ({ "{") (expression_statement "uVar10 = *(uint *)(local_58 + 0x24);" (assignment_expression "uVar10 = *(uint *)(local_58 + 0x24)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(local_58 + 0x24)" (* "*") (cast_expression "(uint *)(local_58 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 0x24)" (( "(") (binary_expression "local_58 + 0x24" (identifier "local_58") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18);" (assignment_expression "pppppuVar7 = (undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18)" (identifier "pppppuVar7") (= "=") (cast_expression "(undefined4 *****)\n                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18)" (( "(") (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" (identifier "uVar10") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" (( "(") (binary_expression "uVar10 & 0xff0000" (identifier "uVar10") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" (( "(") (binary_expression "uVar10 & 0xff00" (identifier "uVar10") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar10 << 0x18" (identifier "uVar10") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (if_statement "if (*(int *)(local_58 + 0x20) != 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "(*(int *)(local_58 + 0x20) != 0)" (( "(") (binary_expression "*(int *)(local_58 + 0x20) != 0" (pointer_expression "*(int *)(local_58 + 0x20)" (* "*") (cast_expression "(int *)(local_58 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 0x20)" (( "(") (binary_expression "local_58 + 0x20" (identifier "local_58") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc0;\n            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f97" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f97" (identifier "local_84") (+ "+") (number_literal "-0x54f97"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xc0")) (; ";")) (expression_statement "*(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;" (assignment_expression "*(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3" (pointer_expression "*(undefined ***)(puVar18 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar18 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_84 + -0x672d3" (identifier "local_84") (+ "+") (number_literal "-0x672d3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e08;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e08" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328e08")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar9 = param_1[0xd];" (assignment_expression "iVar9 = param_1[0xd]" (identifier "iVar9") (= "=") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (if_statement "if (iVar9 == 0) {\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }\n          else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00328c60:\n            local_80 = local_80 & 0xffffff00;\n          }" ({ "{") (labeled_statement "LAB_00328c60:\n            local_80 = local_80 & 0xffffff00;" (statement_identifier "LAB_00328c60") (: ":") (expression_statement "local_80 = local_80 & 0xffffff00;" (assignment_expression "local_80 = local_80 & 0xffffff00" (identifier "local_80") (= "=") (binary_expression "local_80 & 0xffffff00" (identifier "local_80") (& "&") (number_literal "0xffffff00"))) (; ";"))) (} "}")) (else_clause "else {\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }" (else "else") (compound_statement "{\n            uVar10 = iVar9 + 4;\n            uVar13 = *(uint *)(iVar9 + 8);\n            uVar11 = uVar10;\n            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;\n            do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);\nLAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;\n            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }\n          }" ({ "{") (expression_statement "uVar10 = iVar9 + 4;" (assignment_expression "uVar10 = iVar9 + 4" (identifier "uVar10") (= "=") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar13 = *(uint *)(iVar9 + 8);" (assignment_expression "uVar13 = *(uint *)(iVar9 + 8)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(iVar9 + 8)" (* "*") (cast_expression "(uint *)(iVar9 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" (identifier "uVar11") (= "=") (identifier "uVar10")) (; ";")) (if_statement "if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;" (if "if") (parenthesized_expression "(*(uint *)(iVar9 + 8) == 0)" (( "(") (binary_expression "*(uint *)(iVar9 + 8) == 0" (pointer_expression "*(uint *)(iVar9 + 8)" (* "*") (cast_expression "(uint *)(iVar9 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00328c60;" (goto "goto") (statement_identifier "LAB_00328c60") (; ";"))) (do_statement "do {\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            } while (*(uint *)(uVar12 + 8) != 0);" (do "do") (compound_statement "{\n              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }\n              uVar13 = *(uint *)(uVar12 + 8);\n              uVar11 = uVar12;\n            }" ({ "{") (while_statement "while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }" (while "while") (parenthesized_expression "(uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50)" (( "(") (comma_expression "uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50" (assignment_expression "uVar12 = uVar13" (identifier "uVar12") (= "=") (identifier "uVar13")) (, ",") (binary_expression "*(uint *)(uVar12 + 0x10) < local_50" (pointer_expression "*(uint *)(uVar12 + 0x10)" (* "*") (cast_expression "(uint *)(uVar12 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x10)" (( "(") (binary_expression "uVar12 + 0x10" (identifier "uVar12") (+ "+") (number_literal "0x10")) () ")")))) (< "<") (identifier "local_50"))) () ")")) (compound_statement "{\n                puVar1 = (uint *)(uVar12 + 0xc);\n                uVar13 = *puVar1;\n                uVar12 = uVar11;\n                if (*puVar1 == 0) goto LAB_003287e8;\n              }" ({ "{") (expression_statement "puVar1 = (uint *)(uVar12 + 0xc);" (assignment_expression "puVar1 = (uint *)(uVar12 + 0xc)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(uVar12 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0xc)" (( "(") (binary_expression "uVar12 + 0xc" (identifier "uVar12") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "uVar13 = *puVar1;" (assignment_expression "uVar13 = *puVar1" (identifier "uVar13") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "uVar12 = uVar11;" (assignment_expression "uVar12 = uVar11" (identifier "uVar12") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (*puVar1 == 0) goto LAB_003287e8;" (if "if") (parenthesized_expression "(*puVar1 == 0)" (( "(") (binary_expression "*puVar1 == 0" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003287e8;" (goto "goto") (statement_identifier "LAB_003287e8") (; ";"))) (} "}"))) (expression_statement "uVar13 = *(uint *)(uVar12 + 8);" (assignment_expression "uVar13 = *(uint *)(uVar12 + 8)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(uVar12 + 8)" (* "*") (cast_expression "(uint *)(uVar12 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 8)" (( "(") (binary_expression "uVar12 + 8" (identifier "uVar12") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar11 = uVar12;" (assignment_expression "uVar11 = uVar12" (identifier "uVar11") (= "=") (identifier "uVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(uint *)(uVar12 + 8) != 0)" (( "(") (binary_expression "*(uint *)(uVar12 + 8) != 0" (pointer_expression "*(uint *)(uVar12 + 8)" (* "*") (cast_expression "(uint *)(uVar12 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 8)" (( "(") (binary_expression "uVar12 + 8" (identifier "uVar12") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_003287e8:\n            local_80 = uVar10 & 0xffffff00;" (statement_identifier "LAB_003287e8") (: ":") (expression_statement "local_80 = uVar10 & 0xffffff00;" (assignment_expression "local_80 = uVar10 & 0xffffff00" (identifier "local_80") (= "=") (binary_expression "uVar10 & 0xffffff00" (identifier "uVar10") (& "&") (number_literal "0xffffff00"))) (; ";"))) (if_statement "if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }" (if "if") (parenthesized_expression "((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50))" (( "(") (binary_expression "(uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)" (parenthesized_expression "(uVar10 != uVar12)" (( "(") (binary_expression "uVar10 != uVar12" (identifier "uVar10") (!= "!=") (identifier "uVar12")) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(uVar12 + 0x10) <= local_50)" (( "(") (binary_expression "*(uint *)(uVar12 + 0x10) <= local_50" (pointer_expression "*(uint *)(uVar12 + 0x10)" (* "*") (cast_expression "(uint *)(uVar12 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x10)" (( "(") (binary_expression "uVar12 + 0x10" (identifier "uVar12") (+ "+") (number_literal "0x10")) () ")")))) (<= "<=") (identifier "local_50")) () ")"))) () ")")) (compound_statement "{\n              local_80 = CONCAT31((int3)(uVar10 >> 8),1);\n              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);\n            }" ({ "{") (expression_statement "local_80 = CONCAT31((int3)(uVar10 >> 8),1);" (assignment_expression "local_80 = CONCAT31((int3)(uVar10 >> 8),1)" (identifier "local_80") (= "=") (call_expression "CONCAT31((int3)(uVar10 >> 8),1)" (identifier "CONCAT31") (argument_list "((int3)(uVar10 >> 8),1)" (( "(") (call_expression "(int3)(uVar10 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "(uVar10 >> 8)" (( "(") (binary_expression "uVar10 >> 8" (identifier "uVar10") (>> ">>") (number_literal "8")) () ")"))) (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);" (assignment_expression "pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14)" (identifier "pppppuVar7") (= "=") (pointer_expression "*(undefined4 ******)(uVar12 + 0x14)" (* "*") (cast_expression "(undefined4 ******)(uVar12 + 0x14)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(uVar12 + 0x14)" (( "(") (binary_expression "uVar12 + 0x14" (identifier "uVar12") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;" (if "if") (parenthesized_expression "(pppppuVar7 == (undefined4 *****)0x0)" (( "(") (binary_expression "pppppuVar7 == (undefined4 *****)0x0" (identifier "pppppuVar7") (== "==") (cast_expression "(undefined4 *****)0x0" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00328950;" (goto "goto") (statement_identifier "LAB_00328950") (; ";"))) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" (identifier "local_98") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);" (assignment_expression "uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7)" (identifier "uVar10") (= "=") (binary_expression "local_68 + CARRY4(local_6c,(uint)pppppuVar7)" (identifier "local_68") (+ "+") (call_expression "CARRY4(local_6c,(uint)pppppuVar7)" (identifier "CARRY4") (argument_list "(local_6c,(uint)pppppuVar7)" (( "(") (identifier "local_6c") (, ",") (cast_expression "(uint)pppppuVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppuVar7")) () ")"))))) (; ";")) (expression_statement "local_9c = pppppuVar7;" (assignment_expression "local_9c = pppppuVar7" (identifier "local_9c") (= "=") (identifier "pppppuVar7")) (; ";")) (if_statement "if (local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))\n          {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "(local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))" (( "(") (binary_expression "local_7c < uVar10 ||\n              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7))" (binary_expression "local_7c < uVar10" (identifier "local_7c") (< "<") (identifier "uVar10")) (|| "||") (binary_expression "local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7))" (binary_expression "local_7c - uVar10" (identifier "local_7c") (- "-") (identifier "uVar10")) (< "<") (call_expression "(uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7))" (( "(") (binary_expression "local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)" (identifier "local_78") (< "<") (cast_expression "(undefined4 *****)(local_6c + (int)pppppuVar7)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(local_6c + (int)pppppuVar7)" (( "(") (binary_expression "local_6c + (int)pppppuVar7" (identifier "local_6c") (+ "+") (cast_expression "(int)pppppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppuVar7"))) () ")")))) () ")"))))) () ")")) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n            *(undefined4 *)(puVar18 + -0xc) = 0x317;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f9b" (identifier "local_84") (+ "+") (number_literal "-0x54f9b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x317;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x317" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x317")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x1547d9" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x1547d9"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f37;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f37" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328f37")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar22 = CARRY4(local_64,local_6c);" (assignment_expression "bVar22 = CARRY4(local_64,local_6c)" (identifier "bVar22") (= "=") (call_expression "CARRY4(local_64,local_6c)" (identifier "CARRY4") (argument_list "(local_64,local_6c)" (( "(") (identifier "local_64") (, ",") (identifier "local_6c") () ")")))) (; ";")) (expression_statement "local_64 = local_64 + local_6c;" (assignment_expression "local_64 = local_64 + local_6c" (identifier "local_64") (= "=") (binary_expression "local_64 + local_6c" (identifier "local_64") (+ "+") (identifier "local_6c"))) (; ";")) (expression_statement "local_60 = local_60 + local_68 + (uint)bVar22;" (assignment_expression "local_60 = local_60 + local_68 + (uint)bVar22" (identifier "local_60") (= "=") (binary_expression "local_60 + local_68 + (uint)bVar22" (binary_expression "local_60 + local_68" (identifier "local_60") (+ "+") (identifier "local_68")) (+ "+") (cast_expression "(uint)bVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar22")))) (; ";")) (if_statement "if ((char)local_5c == '\0') {\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }\n          else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }" (if "if") (parenthesized_expression "((char)local_5c == '\0')" (( "(") (binary_expression "(char)local_5c == '\0'" (cast_expression "(char)local_5c" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_5c")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }\n            local_5c = local_64 + *(int *)(param_4 + 0x10);\n            if ((char)local_80 == '\0') goto LAB_00328869;\nLAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;\n            *(undefined4 **)(puVar18 + -8) = &local_44;\n            *(uint *)(puVar18 + -0xc) = local_50;\n            *(int **)(puVar18 + -0x10) = param_1;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;\n            uVar8 = FUN_0028b8b0();\n            local_78 = *(undefined4 *****)(local_58 + 8);\n            uVar10 = *(uint *)(local_58 + 0xc);\n            *(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;\n            *(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;\n            *(undefined4 *)(puVar18 + -0xc) = 1;\n            *(undefined4 *)(puVar18 + -0x10) = 0x40;\n            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;\n            *(uint *)(puVar18 + -0x18) = local_5c;\n            *(undefined4 *)(puVar18 + -0x1c) = local_44;\n            *(undefined4 *)(puVar18 + -0x20) = uVar8;\n            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;\n            cVar6 = FUN_0036f6a0();\n            puVar17 = puVar18;\n            if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }\n          }" ({ "{") (if_statement "if (((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)) {\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }" (if "if") (parenthesized_expression "(((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0))" (( "(") (binary_expression "((int)local_60 < 0) ||\n               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)" (parenthesized_expression "((int)local_60 < 0)" (( "(") (binary_expression "(int)local_60 < 0" (cast_expression "(int)local_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_60")) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0)" (( "(") (comma_expression "iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),\n               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64)" (identifier "iVar21") (= "=") (binary_expression "local_60 + CARRY4((uint)pppppuVar7,local_64)" (identifier "local_60") (+ "+") (call_expression "CARRY4((uint)pppppuVar7,local_64)" (identifier "CARRY4") (argument_list "((uint)pppppuVar7,local_64)" (( "(") (cast_expression "(uint)pppppuVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppuVar7")) (, ",") (identifier "local_64") () ")"))))) (, ",") (comma_expression "uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)),\n               iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64))" (identifier "uVar10") (= "=") (call_expression "(uint)(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64))" (( "(") (binary_expression "*(undefined1 **)(param_4 + 8) <\n                              (undefined1 *)((int)pppppuVar7 + local_64)" (pointer_expression "*(undefined1 **)(param_4 + 8)" (* "*") (cast_expression "(undefined1 **)(param_4 + 8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")")))) (< "<") (cast_expression "(undefined1 *)((int)pppppuVar7 + local_64)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppuVar7 + local_64)" (( "(") (binary_expression "(int)pppppuVar7 + local_64" (cast_expression "(int)pppppuVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppuVar7")) (+ "+") (identifier "local_64")) () ")")))) () ")")))) (, ",") (comma_expression "iVar9 = *(int *)(param_4 + 0xc) - iVar21,\n               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "iVar9 = *(int *)(param_4 + 0xc) - iVar21" (identifier "iVar9") (= "=") (binary_expression "*(int *)(param_4 + 0xc) - iVar21" (pointer_expression "*(int *)(param_4 + 0xc)" (* "*") (cast_expression "(int *)(param_4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xc)" (( "(") (binary_expression "param_4 + 0xc" (identifier "param_4") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (identifier "iVar21"))) (, ",") (binary_expression "(SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=\n               (int)(iVar9 - uVar10) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10))" (( "(") (binary_expression "SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)" (call_expression "SBORROW4(*(int *)(param_4 + 0xc),iVar21)" (identifier "SBORROW4") (argument_list "(*(int *)(param_4 + 0xc),iVar21)" (( "(") (pointer_expression "*(int *)(param_4 + 0xc)" (* "*") (cast_expression "(int *)(param_4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xc)" (( "(") (binary_expression "param_4 + 0xc" (identifier "param_4") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "iVar21") () ")"))) (!= "!=") (call_expression "SBORROW4(iVar9,uVar10)" (identifier "SBORROW4") (argument_list "(iVar9,uVar10)" (( "(") (identifier "iVar9") (, ",") (identifier "uVar10") () ")")))) () ")")) (!= "!=") (binary_expression "(int)(iVar9 - uVar10) < 0" (cast_expression "(int)(iVar9 - uVar10)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar9 - uVar10)" (( "(") (binary_expression "iVar9 - uVar10" (identifier "iVar9") (- "-") (identifier "uVar10")) () ")"))) (< "<") (number_literal "0")))))) () ")"))) () ")")) (compound_statement "{\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n              *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;\n              FUN_002446e0();\n            }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f89" (identifier "local_84") (+ "+") (number_literal "-0x54f89"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x6f;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x6f" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x6f")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x19cca3"))) (; ";")) (expression_statement "*(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;" (assignment_expression "*(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5" (pointer_expression "*(undefined1 **)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined1 **)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&LAB_00328fe5" (& "&") (identifier "LAB_00328fe5"))) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_5c = local_64 + *(int *)(param_4 + 0x10);" (assignment_expression "local_5c = local_64 + *(int *)(param_4 + 0x10)" (identifier "local_5c") (= "=") (binary_expression "local_64 + *(int *)(param_4 + 0x10)" (identifier "local_64") (+ "+") (pointer_expression "*(int *)(param_4 + 0x10)" (* "*") (cast_expression "(int *)(param_4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (if_statement "if ((char)local_80 == '\0') goto LAB_00328869;" (if "if") (parenthesized_expression "((char)local_80 == '\0')" (( "(") (binary_expression "(char)local_80 == '\0'" (cast_expression "(char)local_80" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_80")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00328869;" (goto "goto") (statement_identifier "LAB_00328869") (; ";"))) (labeled_statement "LAB_00328baf:\n            *(undefined4 *)(puVar18 + -4) = 0;" (statement_identifier "LAB_00328baf") (: ":") (expression_statement "*(undefined4 *)(puVar18 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -4)" (( "(") (binary_expression "puVar18 + -4" (identifier "puVar18") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (expression_statement "*(undefined4 **)(puVar18 + -8) = &local_44;" (assignment_expression "*(undefined4 **)(puVar18 + -8) = &local_44" (pointer_expression "*(undefined4 **)(puVar18 + -8)" (* "*") (cast_expression "(undefined4 **)(puVar18 + -8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&local_44" (& "&") (identifier "local_44"))) (; ";")) (expression_statement "*(uint *)(puVar18 + -0xc) = local_50;" (assignment_expression "*(uint *)(puVar18 + -0xc) = local_50" (pointer_expression "*(uint *)(puVar18 + -0xc)" (* "*") (cast_expression "(uint *)(puVar18 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "*(int **)(puVar18 + -0x10) = param_1;" (assignment_expression "*(int **)(puVar18 + -0x10) = param_1" (pointer_expression "*(int **)(puVar18 + -0x10)" (* "*") (cast_expression "(int **)(puVar18 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328bc3;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328bc3" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328bc3")) (; ";")) (expression_statement "uVar8 = FUN_0028b8b0();" (assignment_expression "uVar8 = FUN_0028b8b0()" (identifier "uVar8") (= "=") (call_expression "FUN_0028b8b0()" (identifier "FUN_0028b8b0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_78 = *(undefined4 *****)(local_58 + 8);" (assignment_expression "local_78 = *(undefined4 *****)(local_58 + 8)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 *****)(local_58 + 8)" (* "*") (cast_expression "(undefined4 *****)(local_58 + 8)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(local_58 + 8)" (( "(") (binary_expression "local_58 + 8" (identifier "local_58") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(uint *)(local_58 + 0xc);" (assignment_expression "uVar10 = *(uint *)(local_58 + 0xc)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(local_58 + 0xc)" (* "*") (cast_expression "(uint *)(local_58 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 0xc)" (( "(") (binary_expression "local_58 + 0xc" (identifier "local_58") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;" (assignment_expression "*(uint *)(puVar18 + -4) =\n                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18" (pointer_expression "*(uint *)(puVar18 + -4)" (* "*") (cast_expression "(uint *)(puVar18 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -4)" (( "(") (binary_expression "puVar18 + -4" (identifier "puVar18") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "(uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18" (binary_expression "(uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |\n                 ((uint)local_78 & 0xff00) << 8" (binary_expression "(uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8" (binary_expression "(uint)local_78 >> 0x18" (cast_expression "(uint)local_78" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_78")) (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "((uint)local_78 & 0xff0000) >> 8" (parenthesized_expression "((uint)local_78 & 0xff0000)" (( "(") (binary_expression "(uint)local_78 & 0xff0000" (cast_expression "(uint)local_78" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_78")) (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((uint)local_78 & 0xff00) << 8" (parenthesized_expression "((uint)local_78 & 0xff00)" (( "(") (binary_expression "(uint)local_78 & 0xff00" (cast_expression "(uint)local_78" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_78")) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(int)local_78 << 0x18" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "*(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n            ;" (assignment_expression "*(uint *)(puVar18 + -8) =\n                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (pointer_expression "*(uint *)(puVar18 + -8)" (* "*") (cast_expression "(uint *)(puVar18 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" (identifier "uVar10") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" (( "(") (binary_expression "uVar10 & 0xff0000" (identifier "uVar10") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" (( "(") (binary_expression "uVar10 & 0xff00" (identifier "uVar10") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar10 << 0x18" (identifier "uVar10") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x10) = 0x40;" (assignment_expression "*(undefined4 *)(puVar18 + -0x10) = 0x40" (pointer_expression "*(undefined4 *)(puVar18 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x40")) (; ";")) (expression_statement "*(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;" (assignment_expression "*(undefined4 ******)(puVar18 + -0x14) = pppppuVar7" (pointer_expression "*(undefined4 ******)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 ******)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "pppppuVar7")) (; ";")) (expression_statement "*(uint *)(puVar18 + -0x18) = local_5c;" (assignment_expression "*(uint *)(puVar18 + -0x18) = local_5c" (pointer_expression "*(uint *)(puVar18 + -0x18)" (* "*") (cast_expression "(uint *)(puVar18 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x18)" (( "(") (binary_expression "puVar18 + -0x18" (identifier "puVar18") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x1c) = local_44;" (assignment_expression "*(undefined4 *)(puVar18 + -0x1c) = local_44" (pointer_expression "*(undefined4 *)(puVar18 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x1c)" (( "(") (binary_expression "puVar18 + -0x1c" (identifier "puVar18") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_44")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x20) = uVar8;" (assignment_expression "*(undefined4 *)(puVar18 + -0x20) = uVar8" (pointer_expression "*(undefined4 *)(puVar18 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x20)" (( "(") (binary_expression "puVar18 + -0x20" (identifier "puVar18") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x24) = 0x328bf3;" (assignment_expression "*(undefined4 *)(puVar18 + -0x24) = 0x328bf3" (pointer_expression "*(undefined4 *)(puVar18 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x24)" (( "(") (binary_expression "puVar18 + -0x24" (identifier "puVar18") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x328bf3")) (; ";")) (expression_statement "cVar6 = FUN_0036f6a0();" (assignment_expression "cVar6 = FUN_0036f6a0()" (identifier "cVar6") (= "=") (call_expression "FUN_0036f6a0()" (identifier "FUN_0036f6a0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar17 = puVar18;" (assignment_expression "puVar17 = puVar18" (identifier "puVar17") (= "=") (identifier "puVar18")) (; ";")) (if_statement "if (cVar6 == '\0') {\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }" (if "if") (parenthesized_expression "(cVar6 == '\0')" (( "(") (binary_expression "cVar6 == '\0'" (identifier "cVar6") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              iVar9 = *param_1;\n              *(uint *)(puVar18 + -8) = local_50;\n              *(int **)(puVar18 + -0xc) = param_1;\n              *(undefined4 ******)(puVar18 + -0x10) = &local_34;\n              pcVar3 = *(code **)(iVar9 + 0x40);\n              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;\n              (*pcVar3)();\n              local_78 = local_34;\n              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;\n              uVar8 = gettext();\n              *(undefined4 *****)(puVar18 + -0xc) = local_78;\n              *(undefined4 *)(puVar18 + -0x10) = uVar8;\n              *(int **)(puVar18 + -0x14) = param_1;\n                    \n              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;\n              FUN_0028b750();\n              puVar17 = puVar18 + -4;\n              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;\n              puVar16 = puVar18 + -0x14;\n              *(undefined4 *****)(puVar18 + -0x14) = local_34;\n              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;\n              FUN_003ae080();\n              goto LAB_003288bb;\n            }" ({ "{") (expression_statement "iVar9 = *param_1;" (assignment_expression "iVar9 = *param_1" (identifier "iVar9") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*(uint *)(puVar18 + -8) = local_50;" (assignment_expression "*(uint *)(puVar18 + -8) = local_50" (pointer_expression "*(uint *)(puVar18 + -8)" (* "*") (cast_expression "(uint *)(puVar18 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "*(int **)(puVar18 + -0xc) = param_1;" (assignment_expression "*(int **)(puVar18 + -0xc) = param_1" (pointer_expression "*(int **)(puVar18 + -0xc)" (* "*") (cast_expression "(int **)(puVar18 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 ******)(puVar18 + -0x10) = &local_34;" (assignment_expression "*(undefined4 ******)(puVar18 + -0x10) = &local_34" (pointer_expression "*(undefined4 ******)(puVar18 + -0x10)" (* "*") (cast_expression "(undefined4 ******)(puVar18 + -0x10)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "pcVar3 = *(code **)(iVar9 + 0x40);" (assignment_expression "pcVar3 = *(code **)(iVar9 + 0x40)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(iVar9 + 0x40)" (* "*") (cast_expression "(code **)(iVar9 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328c13;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328c13" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328c13")) (; ";")) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_78 = local_34;" (assignment_expression "local_78 = local_34" (identifier "local_78") (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;" (assignment_expression "*(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922" (pointer_expression "*(undefined ***)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined ***)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "local_84 + -0x57922" (identifier "local_84") (+ "+") (number_literal "-0x57922"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x18) = 0x328c28;" (assignment_expression "*(undefined4 *)(puVar18 + -0x18) = 0x328c28" (pointer_expression "*(undefined4 *)(puVar18 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x18)" (( "(") (binary_expression "puVar18 + -0x18" (identifier "puVar18") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x328c28")) (; ";")) (expression_statement "uVar8 = gettext();" (assignment_expression "uVar8 = gettext()" (identifier "uVar8") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *****)(puVar18 + -0xc) = local_78;" (assignment_expression "*(undefined4 *****)(puVar18 + -0xc) = local_78" (pointer_expression "*(undefined4 *****)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *****)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_78")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x10) = uVar8;" (assignment_expression "*(undefined4 *)(puVar18 + -0x10) = uVar8" (pointer_expression "*(undefined4 *)(puVar18 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(int **)(puVar18 + -0x14) = param_1;" (assignment_expression "*(int **)(puVar18 + -0x14) = param_1" (pointer_expression "*(int **)(puVar18 + -0x14)" (* "*") (cast_expression "(int **)(puVar18 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x18) = 0x328c3b;" (assignment_expression "*(undefined4 *)(puVar18 + -0x18) = 0x328c3b" (pointer_expression "*(undefined4 *)(puVar18 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x18)" (( "(") (binary_expression "puVar18 + -0x18" (identifier "puVar18") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x328c3b")) (; ";")) (expression_statement "FUN_0028b750();" (call_expression "FUN_0028b750()" (identifier "FUN_0028b750") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar17 = puVar18 + -4;" (assignment_expression "puVar17 = puVar18 + -4" (identifier "puVar17") (= "=") (binary_expression "puVar18 + -4" (identifier "puVar18") (+ "+") (number_literal "-4"))) (; ";")) (if_statement "if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;" (if "if") (parenthesized_expression "((undefined4 *****)local_34 == &local_2c)" (( "(") (binary_expression "(undefined4 *****)local_34 == &local_2c" (cast_expression "(undefined4 *****)local_34" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_34")) (== "==") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) () ")")) (goto_statement "goto LAB_003288be;" (goto "goto") (statement_identifier "LAB_003288be") (; ";"))) (expression_statement "puVar16 = puVar18 + -0x14;" (assignment_expression "puVar16 = puVar18 + -0x14" (identifier "puVar16") (= "=") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14"))) (; ";")) (expression_statement "*(undefined4 *****)(puVar18 + -0x14) = local_34;" (assignment_expression "*(undefined4 *****)(puVar18 + -0x14) = local_34" (pointer_expression "*(undefined4 *****)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *****)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *****" (type_identifier "undefined4") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x18) = 0x328c58;" (assignment_expression "*(undefined4 *)(puVar18 + -0x18) = 0x328c58" (pointer_expression "*(undefined4 *)(puVar18 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x18)" (( "(") (binary_expression "puVar18 + -0x18" (identifier "puVar18") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x328c58")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_003288bb;" (goto "goto") (statement_identifier "LAB_003288bb") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }" (else "else") (compound_statement "{\n            if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }\n            local_5c = *(int *)(iVar2 + 0x8c) + local_64;\n            if ((char)local_80 != '\0') goto LAB_00328baf;\nLAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);\n            uVar13 = *(uint *)(local_58 + 0x1c);\n            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n            local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);\n            cVar6 = local_9d;\n            if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }\n            local_9d = cVar6;\n            local_28 = local_5c;\n            *(undefined4 ******)(puVar18 + -0xc) = &local_34;\n            puVar16 = puVar18 + -0x10;\n            *(int **)(puVar18 + -0x10) = &local_40;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;\n            local_34 = local_78;\n            local_2c = pppppuVar7;\n            FUN_00320060();\nLAB_003288bb:\n            puVar17 = puVar16 + 0x10;\n          }" ({ "{") (if_statement "if (*(int *)(iVar2 + 0x8c) == 0) {\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x8c) == 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x8c) == 0" (pointer_expression "*(int *)(iVar2 + 0x8c)" (* "*") (cast_expression "(int *)(iVar2 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x8c)" (( "(") (binary_expression "iVar2 + 0x8c" (identifier "iVar2") (+ "+") (number_literal "0x8c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;\n              *(undefined4 *)(puVar18 + -0xc) = 0xe34;\n              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;\n              FUN_002446e0();\n            }" ({ "{") (labeled_statement "LAB_00328fac:\n              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;" (statement_identifier "LAB_00328fac") (: ":") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f85" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f85" (identifier "local_84") (+ "+") (number_literal "-0x54f85"))) (; ";"))) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xe34;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xe34" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xe34")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x19cca3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328fca;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328fca" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328fca")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_5c = *(int *)(iVar2 + 0x8c) + local_64;" (assignment_expression "local_5c = *(int *)(iVar2 + 0x8c) + local_64" (identifier "local_5c") (= "=") (binary_expression "*(int *)(iVar2 + 0x8c) + local_64" (pointer_expression "*(int *)(iVar2 + 0x8c)" (* "*") (cast_expression "(int *)(iVar2 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x8c)" (( "(") (binary_expression "iVar2 + 0x8c" (identifier "iVar2") (+ "+") (number_literal "0x8c")) () ")")))) (+ "+") (identifier "local_64"))) (; ";")) (if_statement "if ((char)local_80 != '\0') goto LAB_00328baf;" (if "if") (parenthesized_expression "((char)local_80 != '\0')" (( "(") (binary_expression "(char)local_80 != '\0'" (cast_expression "(char)local_80" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_80")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00328baf;" (goto "goto") (statement_identifier "LAB_00328baf") (; ";"))) (labeled_statement "LAB_00328869:\n            uVar10 = *(uint *)(local_58 + 0x18);" (statement_identifier "LAB_00328869") (: ":") (expression_statement "uVar10 = *(uint *)(local_58 + 0x18);" (assignment_expression "uVar10 = *(uint *)(local_58 + 0x18)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(local_58 + 0x18)" (* "*") (cast_expression "(uint *)(local_58 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 0x18)" (( "(") (binary_expression "local_58 + 0x18" (identifier "local_58") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (expression_statement "uVar13 = *(uint *)(local_58 + 0x1c);" (assignment_expression "uVar13 = *(uint *)(local_58 + 0x1c)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(local_58 + 0x1c)" (* "*") (cast_expression "(uint *)(local_58 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 0x1c)" (( "(") (binary_expression "local_58 + 0x1c" (identifier "local_58") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;" (assignment_expression "local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" (identifier "local_30") (= "=") (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" (identifier "uVar10") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" (( "(") (binary_expression "uVar10 & 0xff0000" (identifier "uVar10") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" (( "(") (binary_expression "uVar10 & 0xff00" (identifier "uVar10") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar10 << 0x18" (identifier "uVar10") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18);" (assignment_expression "local_78 = (undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18)" (identifier "local_78") (= "=") (cast_expression "(undefined4 ****)\n                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18)" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18)" (( "(") (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |\n                       uVar13 << 0x18" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8" (binary_expression "uVar13 >> 0x18" (identifier "uVar13") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar13 & 0xff0000) >> 8" (parenthesized_expression "(uVar13 & 0xff0000)" (( "(") (binary_expression "uVar13 & 0xff0000" (identifier "uVar13") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar13 & 0xff00) << 8" (parenthesized_expression "(uVar13 & 0xff00)" (( "(") (binary_expression "uVar13 & 0xff00" (identifier "uVar13") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar13 << 0x18" (identifier "uVar13") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "cVar6 = local_9d;" (assignment_expression "cVar6 = local_9d" (identifier "cVar6") (= "=") (identifier "local_9d")) (; ";")) (if_statement "if ((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)) {\n              cVar6 = local_9d;\n            }" (if "if") (parenthesized_expression "((local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0))" (( "(") (binary_expression "(local_3c != local_40) &&\n               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)" (parenthesized_expression "(local_3c != local_40)" (( "(") (binary_expression "local_3c != local_40" (identifier "local_3c") (!= "!=") (identifier "local_40")) () ")")) (&& "&&") (parenthesized_expression "(uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0)" (( "(") (comma_expression "uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),\n               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10))" (identifier "uVar10") (= "=") (call_expression "(uint)(local_78 < *(undefined4 ******)(local_3c + -0x10))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_78 < *(undefined4 ******)(local_3c + -0x10))" (( "(") (binary_expression "local_78 < *(undefined4 ******)(local_3c + -0x10)" (identifier "local_78") (< "<") (pointer_expression "*(undefined4 ******)(local_3c + -0x10)" (* "*") (cast_expression "(undefined4 ******)(local_3c + -0x10)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(local_3c + -0x10)" (( "(") (binary_expression "local_3c + -0x10" (identifier "local_3c") (+ "+") (number_literal "-0x10")) () ")"))))) () ")")))) (, ",") (comma_expression "iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "iVar9 = local_30 - *(int *)(local_3c + -0xc)" (identifier "iVar9") (= "=") (binary_expression "local_30 - *(int *)(local_3c + -0xc)" (identifier "local_30") (- "-") (pointer_expression "*(int *)(local_3c + -0xc)" (* "*") (cast_expression "(int *)(local_3c + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_3c + -0xc)" (( "(") (binary_expression "local_3c + -0xc" (identifier "local_3c") (+ "+") (number_literal "-0xc")) () ")")))))) (, ",") (comma_expression "cVar6 = (char)local_80,\n               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0" (assignment_expression "cVar6 = (char)local_80" (identifier "cVar6") (= "=") (cast_expression "(char)local_80" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_80"))) (, ",") (binary_expression "(SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==\n               (int)(iVar9 - uVar10) < 0" (parenthesized_expression "(SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10))" (( "(") (binary_expression "SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)" (call_expression "SBORROW4(local_30,*(int *)(local_3c + -0xc))" (identifier "SBORROW4") (argument_list "(local_30,*(int *)(local_3c + -0xc))" (( "(") (identifier "local_30") (, ",") (pointer_expression "*(int *)(local_3c + -0xc)" (* "*") (cast_expression "(int *)(local_3c + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_3c + -0xc)" (( "(") (binary_expression "local_3c + -0xc" (identifier "local_3c") (+ "+") (number_literal "-0xc")) () ")")))) () ")"))) (!= "!=") (call_expression "SBORROW4(iVar9,uVar10)" (identifier "SBORROW4") (argument_list "(iVar9,uVar10)" (( "(") (identifier "iVar9") (, ",") (identifier "uVar10") () ")")))) () ")")) (== "==") (binary_expression "(int)(iVar9 - uVar10) < 0" (cast_expression "(int)(iVar9 - uVar10)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar9 - uVar10)" (( "(") (binary_expression "iVar9 - uVar10" (identifier "iVar9") (- "-") (identifier "uVar10")) () ")"))) (< "<") (number_literal "0")))))) () ")"))) () ")")) (compound_statement "{\n              cVar6 = local_9d;\n            }" ({ "{") (expression_statement "cVar6 = local_9d;" (assignment_expression "cVar6 = local_9d" (identifier "cVar6") (= "=") (identifier "local_9d")) (; ";")) (} "}"))) (expression_statement "local_9d = cVar6;" (assignment_expression "local_9d = cVar6" (identifier "local_9d") (= "=") (identifier "cVar6")) (; ";")) (expression_statement "local_28 = local_5c;" (assignment_expression "local_28 = local_5c" (identifier "local_28") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(undefined4 ******)(puVar18 + -0xc) = &local_34;" (assignment_expression "*(undefined4 ******)(puVar18 + -0xc) = &local_34" (pointer_expression "*(undefined4 ******)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 ******)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 ******" (type_identifier "undefined4") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "puVar16 = puVar18 + -0x10;" (assignment_expression "puVar16 = puVar18 + -0x10" (identifier "puVar16") (= "=") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10"))) (; ";")) (expression_statement "*(int **)(puVar18 + -0x10) = &local_40;" (assignment_expression "*(int **)(puVar18 + -0x10) = &local_40" (pointer_expression "*(int **)(puVar18 + -0x10)" (* "*") (cast_expression "(int **)(puVar18 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_40" (& "&") (identifier "local_40"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x3288bb;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x3288bb" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x3288bb")) (; ";")) (expression_statement "local_34 = local_78;" (assignment_expression "local_34 = local_78" (identifier "local_34") (= "=") (identifier "local_78")) (; ";")) (expression_statement "local_2c = pppppuVar7;" (assignment_expression "local_2c = pppppuVar7" (identifier "local_2c") (= "=") (identifier "pppppuVar7")) (; ";")) (expression_statement "FUN_00320060();" (call_expression "FUN_00320060()" (identifier "FUN_00320060") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_003288bb:\n            puVar17 = puVar16 + 0x10;" (statement_identifier "LAB_003288bb") (: ":") (expression_statement "puVar17 = puVar16 + 0x10;" (assignment_expression "puVar17 = puVar16 + 0x10" (identifier "puVar17") (= "=") (binary_expression "puVar16 + 0x10" (identifier "puVar16") (+ "+") (number_literal "0x10"))) (; ";"))) (} "}")))) (labeled_statement "LAB_003288be:\n          *local_54 = local_5c;" (statement_identifier "LAB_003288be") (: ":") (expression_statement "*local_54 = local_5c;" (assignment_expression "*local_54 = local_5c" (pointer_expression "*local_54" (* "*") (identifier "local_54")) (= "=") (identifier "local_5c")) (; ";"))) (expression_statement "puVar18 = puVar17;" (assignment_expression "puVar18 = puVar17" (identifier "puVar18") (= "=") (identifier "puVar17")) (; ";")) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 1)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar2 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar2 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00328dcc:\n            ppuVar4 = local_84;\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n            *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;\n            FUN_002446e0();\n          }" ({ "{") (labeled_statement "LAB_00328dcc:\n            ppuVar4 = local_84;" (statement_identifier "LAB_00328dcc") (: ":") (expression_statement "ppuVar4 = local_84;" (assignment_expression "ppuVar4 = local_84" (identifier "ppuVar4") (= "=") (identifier "local_84")) (; ";"))) (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f8b" (identifier "local_84") (+ "+") (number_literal "-0x54f8b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xc5")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)ppuVar4 + -0x19cca3" (cast_expression "(int)ppuVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar4")) (+ "+") (number_literal "-0x19cca3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328dea;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328dea" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328dea")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar13 = *(uint *)(iVar2 + 4);" (assignment_expression "uVar13 = *(uint *)(iVar2 + 4)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(iVar2 + 4)" (* "*") (cast_expression "(uint *)(iVar2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar21 = *(int *)(iVar2 + 8);" (assignment_expression "iVar21 = *(int *)(iVar2 + 8)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(*local_74 + 8);" (assignment_expression "iVar9 = *(int *)(*local_74 + 8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(*local_74 + 8)" (* "*") (cast_expression "(int *)(*local_74 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_74 + 8)" (( "(") (binary_expression "*local_74 + 8" (pointer_expression "*local_74" (* "*") (identifier "local_74")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);" (assignment_expression "uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5)" (identifier "uVar10") (= "=") (call_expression "CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5)" (identifier "CONCAT31") (argument_list "(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5)" (( "(") (field_expression "local_5c._1_3_" (identifier "local_5c") (. ".") (field_identifier "_1_3_")) (, ",") (binary_expression "*(byte *)(iVar2 + 0x90) >> 5" (pointer_expression "*(byte *)(iVar2 + 0x90)" (* "*") (cast_expression "(byte *)(iVar2 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x90)" (( "(") (binary_expression "iVar2 + 0x90" (identifier "iVar2") (+ "+") (number_literal "0x90")) () ")")))) (>> ">>") (number_literal "5")) () ")")))) (; ";")) (expression_statement "local_54[1] = uVar13 + local_6c;" (assignment_expression "local_54[1] = uVar13 + local_6c" (subscript_expression "local_54[1]" (identifier "local_54") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar13 + local_6c" (identifier "uVar13") (+ "+") (identifier "local_6c"))) (; ";")) (expression_statement "local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);" (assignment_expression "local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c)" (subscript_expression "local_54[2]" (identifier "local_54") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c)" (binary_expression "iVar21 + local_68" (identifier "iVar21") (+ "+") (identifier "local_68")) (+ "+") (cast_expression "(uint)CARRY4(uVar13,local_6c)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar13,local_6c)" (identifier "CARRY4") (argument_list "(uVar13,local_6c)" (( "(") (identifier "uVar13") (, ",") (identifier "local_6c") () ")")))))) (; ";")) (labeled_statement "LAB_003288fd:\n          local_5c = uVar10 & 0xffffff01;" (statement_identifier "LAB_003288fd") (: ":") (expression_statement "local_5c = uVar10 & 0xffffff01;" (assignment_expression "local_5c = uVar10 & 0xffffff01" (identifier "local_5c") (= "=") (binary_expression "uVar10 & 0xffffff01" (identifier "uVar10") (& "&") (number_literal "0xffffff01"))) (; ";"))) (expression_statement "local_54[3] = local_64;" (assignment_expression "local_54[3] = local_64" (subscript_expression "local_54[3]" (identifier "local_54") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_64")) (; ";")) (expression_statement "local_54[4] = local_60;" (assignment_expression "local_54[4] = local_60" (subscript_expression "local_54[4]" (identifier "local_54") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_60")) (; ";")) (expression_statement "local_54[5] = (uint)pppppuVar7;" (assignment_expression "local_54[5] = (uint)pppppuVar7" (subscript_expression "local_54[5]" (identifier "local_54") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(uint)pppppuVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppuVar7"))) (; ";")) (expression_statement "*(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;" (assignment_expression "*(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff" (pointer_expression "*(bool *)(local_54 + 6)" (* "*") (cast_expression "(bool *)(local_54 + 6)" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 6)" (( "(") (binary_expression "local_54 + 6" (identifier "local_54") (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "(local_6c & local_68) == 0xffffffff" (parenthesized_expression "(local_6c & local_68)" (( "(") (binary_expression "local_6c & local_68" (identifier "local_6c") (& "&") (identifier "local_68")) () ")")) (== "==") (number_literal "0xffffffff"))) (; ";")) (expression_statement "*(char *)((int)local_54 + 0x19) = (char)local_5c;" (assignment_expression "*(char *)((int)local_54 + 0x19) = (char)local_5c" (pointer_expression "*(char *)((int)local_54 + 0x19)" (* "*") (cast_expression "(char *)((int)local_54 + 0x19)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_54 + 0x19)" (( "(") (binary_expression "(int)local_54 + 0x19" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (+ "+") (number_literal "0x19")) () ")")))) (= "=") (cast_expression "(char)local_5c" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_5c"))) (; ";")) (if_statement "if (iVar9 == 0) {\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;\n            *(undefined4 *)(puVar18 + -0xc) = 0x5c;\n            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f02" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f02" (identifier "local_84") (+ "+") (number_literal "-0x54f02"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x1a1d93" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x1a1d93"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e3e;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e3e" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328e3e")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;" (assignment_expression "bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7" (identifier "bVar5") (= "=") (binary_expression "(*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7" (parenthesized_expression "(*(byte *)(iVar9 + 0x318d) ^ 1)" (( "(") (binary_expression "*(byte *)(iVar9 + 0x318d) ^ 1" (pointer_expression "*(byte *)(iVar9 + 0x318d)" (* "*") (cast_expression "(byte *)(iVar9 + 0x318d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x318d)" (( "(") (binary_expression "iVar9 + 0x318d" (identifier "iVar9") (+ "+") (number_literal "0x318d")) () ")")))) (^ "^") (number_literal "1")) () ")")) (& "&") (binary_expression "&DAT_00000008 < pppppuVar7" (pointer_expression "&DAT_00000008" (& "&") (identifier "DAT_00000008")) (< "<") (identifier "pppppuVar7")))) (; ";")) (expression_statement "bVar24 = bVar5 == 0;" (assignment_expression "bVar24 = bVar5 == 0" (identifier "bVar24") (= "=") (binary_expression "bVar5 == 0" (identifier "bVar5") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar24) {\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n          iVar9 = 0xc;\n          pbVar19 = *(byte **)(iVar2 + 0x20);\n          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar22 = (!bVar22 && !bVar24) == bVar22;\n          if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }\n          *(uint *)(puVar18 + -8) = local_50;\n          *(int **)(puVar18 + -0xc) = param_1;\n          *(undefined4 *)(puVar18 + -0x10) = param_2;\n                    \n          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;\n          bVar5 = FUN_002790d0();\n        }" ({ "{") (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" (identifier "iVar9") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar19 = *(byte **)(iVar2 + 0x20);" (assignment_expression "pbVar19 = *(byte **)(iVar2 + 0x20)" (identifier "pbVar19") (= "=") (pointer_expression "*(byte **)(iVar2 + 0x20)" (* "*") (cast_expression "(byte **)(iVar2 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "pbVar20 = (byte *)((int)local_84 + -0x15ffb6);" (assignment_expression "pbVar20 = (byte *)((int)local_84 + -0x15ffb6)" (identifier "pbVar20") (= "=") (cast_expression "(byte *)((int)local_84 + -0x15ffb6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_84 + -0x15ffb6)" (( "(") (binary_expression "(int)local_84 + -0x15ffb6" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x15ffb6")) () ")")))) (; ";")) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);" (do "do") (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar22 = *pbVar19 < *pbVar20;\n            bVar24 = *pbVar19 == *pbVar20;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar19 < *pbVar20;" (assignment_expression "bVar22 = *pbVar19 < *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar19 < *pbVar20" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar24 = *pbVar19 == *pbVar20;" (assignment_expression "bVar24 = *pbVar19 == *pbVar20" (identifier "bVar24") (= "=") (binary_expression "*pbVar19 == *pbVar20" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" (identifier "bVar22") (= "=") (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" (( "(") (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar22"))) (; ";")) (if_statement "if (!bVar22) {\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (compound_statement "{\n            iVar9 = 0xc;\n            pbVar19 = *(byte **)(iVar2 + 0x20);\n            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }\n          }" ({ "{") (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" (identifier "iVar9") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar19 = *(byte **)(iVar2 + 0x20);" (assignment_expression "pbVar19 = *(byte **)(iVar2 + 0x20)" (identifier "pbVar19") (= "=") (pointer_expression "*(byte **)(iVar2 + 0x20)" (* "*") (cast_expression "(byte **)(iVar2 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "pbVar20 = (byte *)((int)local_84 + -0x15ffaa);" (assignment_expression "pbVar20 = (byte *)((int)local_84 + -0x15ffaa)" (identifier "pbVar20") (= "=") (cast_expression "(byte *)((int)local_84 + -0x15ffaa)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_84 + -0x15ffaa)" (( "(") (binary_expression "(int)local_84 + -0x15ffaa" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x15ffaa")) () ")")))) (; ";")) (do_statement "do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);" (do "do") (compound_statement "{\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar23 = *pbVar19 < *pbVar20;\n              bVar22 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar19 < *pbVar20;" (assignment_expression "bVar23 = *pbVar19 < *pbVar20" (identifier "bVar23") (= "=") (binary_expression "*pbVar19 < *pbVar20" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar22 = *pbVar19 == *pbVar20;" (assignment_expression "bVar22 = *pbVar19 == *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar19 == *pbVar20" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (if_statement "if ((!bVar23 && !bVar22) != bVar23) {\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }" (if "if") (parenthesized_expression "((!bVar23 && !bVar22) != bVar23)" (( "(") (binary_expression "(!bVar23 && !bVar22) != bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" (( "(") (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (!= "!=") (identifier "bVar23")) () ")")) (compound_statement "{\n              bVar5 = 0;\n              goto LAB_0032894a;\n            }" ({ "{") (expression_statement "bVar5 = 0;" (assignment_expression "bVar5 = 0" (identifier "bVar5") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0032894a;" (goto "goto") (statement_identifier "LAB_0032894a") (; ";")) (} "}"))) (} "}"))) (expression_statement "*(uint *)(puVar18 + -8) = local_50;" (assignment_expression "*(uint *)(puVar18 + -8) = local_50" (pointer_expression "*(uint *)(puVar18 + -8)" (* "*") (cast_expression "(uint *)(puVar18 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "*(int **)(puVar18 + -0xc) = param_1;" (assignment_expression "*(int **)(puVar18 + -0xc) = param_1" (pointer_expression "*(int **)(puVar18 + -0xc)" (* "*") (cast_expression "(int **)(puVar18 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x10) = param_2;" (assignment_expression "*(undefined4 *)(puVar18 + -0x10) = param_2" (pointer_expression "*(undefined4 *)(puVar18 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328d4c;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328d4c" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328d4c")) (; ";")) (expression_statement "bVar5 = FUN_002790d0();" (assignment_expression "bVar5 = FUN_002790d0()" (identifier "bVar5") (= "=") (call_expression "FUN_002790d0()" (identifier "FUN_002790d0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (labeled_statement "LAB_0032894a:\n        *(byte *)((int)local_54 + 0x1a) = bVar5;" (statement_identifier "LAB_0032894a") (: ":") (expression_statement "*(byte *)((int)local_54 + 0x1a) = bVar5;" (assignment_expression "*(byte *)((int)local_54 + 0x1a) = bVar5" (pointer_expression "*(byte *)((int)local_54 + 0x1a)" (* "*") (cast_expression "(byte *)((int)local_54 + 0x1a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_54 + 0x1a)" (( "(") (binary_expression "(int)local_54 + 0x1a" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (+ "+") (number_literal "0x1a")) () ")")))) (= "=") (identifier "bVar5")) (; ";"))) (goto_statement "goto LAB_00328950;" (goto "goto") (statement_identifier "LAB_00328950") (; ";")) (} "}"))) (if_statement "if ((uint)param_1[10] <= local_50) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }" (if "if") (parenthesized_expression "((uint)param_1[10] <= local_50)" (( "(") (binary_expression "(uint)param_1[10] <= local_50" (cast_expression "(uint)param_1[10]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (<= "<=") (identifier "local_50")) () ")")) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;\n        *(undefined4 *)(puVar18 + -0xc) = 0x549;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;\n        FUN_002446e0();\n      }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f45" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f45" (identifier "local_84") (+ "+") (number_literal "-0x54f45"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x549;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x549" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x549")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x19cc7b" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x19cc7b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e5c;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e5c" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328e5c")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);" (assignment_expression "iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(int *)param_1[0x11] + local_50 * 4)" (* "*") (cast_expression "(int *)(*(int *)param_1[0x11] + local_50 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_1[0x11] + local_50 * 4)" (( "(") (binary_expression "*(int *)param_1[0x11] + local_50 * 4" (pointer_expression "*(int *)param_1[0x11]" (* "*") (cast_expression "(int *)param_1[0x11]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")))) (+ "+") (binary_expression "local_50 * 4" (identifier "local_50") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;\n        FUN_002446e0();\n      }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f9b" (identifier "local_84") (+ "+") (number_literal "-0x54f9b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x2ce;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x2ce" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x2ce")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x1547d9" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x1547d9"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328efb;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328efb" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328efb")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(iVar2 + 0x10);" (assignment_expression "iVar2 = *(int *)(iVar2 + 0x10)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar2 + 0x10)" (* "*") (cast_expression "(int *)(iVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (iVar2 == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;\n        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;\n        FUN_002446e0();\n      }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f9b" (identifier "local_84") (+ "+") (number_literal "-0x54f9b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x2d0;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x2d0" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x2d0")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x1547d9" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x1547d9"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328edd;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328edd" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328edd")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar5 = *(byte *)(iVar2 + 0x1c);" (assignment_expression "bVar5 = *(byte *)(iVar2 + 0x1c)" (identifier "bVar5") (= "=") (pointer_expression "*(byte *)(iVar2 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar2 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if ((bVar5 & 4) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }" (if "if") (parenthesized_expression "((bVar5 & 4) == 0)" (( "(") (binary_expression "(bVar5 & 4) == 0" (parenthesized_expression "(bVar5 & 4)" (( "(") (binary_expression "bVar5 & 4" (identifier "bVar5") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;\n        *(undefined4 *)(puVar18 + -0xc) = 0xe3;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;\n        FUN_002446e0();\n      }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f78" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f78" (identifier "local_84") (+ "+") (number_literal "-0x54f78"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xe3;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xe3" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xe3")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x19cca3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328fac;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328fac" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328fac")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = *(uint *)(iVar2 + 0x14);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 0x14)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x14)" (* "*") (cast_expression "(uint *)(iVar2 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(uint *)(iVar2 + 0x18);" (assignment_expression "uVar13 = *(uint *)(iVar2 + 0x18)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x18)" (* "*") (cast_expression "(uint *)(iVar2 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "local_54[3] = uVar10;" (assignment_expression "local_54[3] = uVar10" (subscript_expression "local_54[3]" (identifier "local_54") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "local_54[4] = uVar13;" (assignment_expression "local_54[4] = uVar13" (subscript_expression "local_54[4]" (identifier "local_54") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (if_statement "if ((bVar5 & 2) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }" (if "if") (parenthesized_expression "((bVar5 & 2) == 0)" (( "(") (binary_expression "(bVar5 & 2) == 0" (parenthesized_expression "(bVar5 & 2)" (( "(") (binary_expression "bVar5 & 2" (identifier "bVar5") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;\n        FUN_002446e0();\n      }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f7b" (identifier "local_84") (+ "+") (number_literal "-0x54f7b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xcf;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xcf" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xcf")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x19cca3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f8e;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f8e" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328f8e")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar11 = *(uint *)(iVar2 + 0xc);" (assignment_expression "uVar11 = *(uint *)(iVar2 + 0xc)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(iVar2 + 0xc)" (* "*") (cast_expression "(uint *)(iVar2 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_54[5] = uVar11;" (assignment_expression "local_54[5] = uVar11" (subscript_expression "local_54[5]" (identifier "local_54") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (if_statement "if ((int)uVar13 < 0) {\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }" (if "if") (parenthesized_expression "((int)uVar13 < 0)" (( "(") (binary_expression "(int)uVar13 < 0" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;\n        *(undefined4 *)(puVar18 + -0xc) = 0x6f;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;\n        FUN_002446e0();\n      }" ({ "{") (labeled_statement "LAB_00328f55:\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;" (statement_identifier "LAB_00328f55") (: ":") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f89" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f89" (identifier "local_84") (+ "+") (number_literal "-0x54f89"))) (; ";"))) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0x6f;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0x6f" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x6f")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x19cca3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f70;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f70" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328f70")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_64 = uVar11 + uVar10;" (assignment_expression "local_64 = uVar11 + uVar10" (identifier "local_64") (= "=") (binary_expression "uVar11 + uVar10" (identifier "uVar11") (+ "+") (identifier "uVar10"))) (; ";")) (expression_statement "local_60 = uVar13 + CARRY4(uVar11,uVar10);" (assignment_expression "local_60 = uVar13 + CARRY4(uVar11,uVar10)" (identifier "local_60") (= "=") (binary_expression "uVar13 + CARRY4(uVar11,uVar10)" (identifier "uVar13") (+ "+") (call_expression "CARRY4(uVar11,uVar10)" (identifier "CARRY4") (argument_list "(uVar11,uVar10)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar10") () ")"))))) (; ";")) (expression_statement "local_6c = *(uint *)(param_4 + 0xc);" (assignment_expression "local_6c = *(uint *)(param_4 + 0xc)" (identifier "local_6c") (= "=") (pointer_expression "*(uint *)(param_4 + 0xc)" (* "*") (cast_expression "(uint *)(param_4 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xc)" (( "(") (binary_expression "param_4 + 0xc" (identifier "param_4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);" (assignment_expression "uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64)" (identifier "uVar13") (= "=") (call_expression "(uint)(*(uint *)(param_4 + 8) < local_64)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(param_4 + 8) < local_64)" (( "(") (binary_expression "*(uint *)(param_4 + 8) < local_64" (pointer_expression "*(uint *)(param_4 + 8)" (* "*") (cast_expression "(uint *)(param_4 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")")))) (< "<") (identifier "local_64")) () ")")))) (; ";")) (expression_statement "local_94 = uVar11;" (assignment_expression "local_94 = uVar11" (identifier "local_94") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;" (if "if") (parenthesized_expression "((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0)" (( "(") (binary_expression "(SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=\n          (int)((local_6c - local_60) - uVar13) < 0" (parenthesized_expression "(SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13))" (( "(") (binary_expression "SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)" (call_expression "SBORROW4(local_6c,local_60)" (identifier "SBORROW4") (argument_list "(local_6c,local_60)" (( "(") (identifier "local_6c") (, ",") (identifier "local_60") () ")"))) (!= "!=") (call_expression "SBORROW4(local_6c - local_60,uVar13)" (identifier "SBORROW4") (argument_list "(local_6c - local_60,uVar13)" (( "(") (binary_expression "local_6c - local_60" (identifier "local_6c") (- "-") (identifier "local_60")) (, ",") (identifier "uVar13") () ")")))) () ")")) (!= "!=") (binary_expression "(int)((local_6c - local_60) - uVar13) < 0" (cast_expression "(int)((local_6c - local_60) - uVar13)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((local_6c - local_60) - uVar13)" (( "(") (binary_expression "(local_6c - local_60) - uVar13" (parenthesized_expression "(local_6c - local_60)" (( "(") (binary_expression "local_6c - local_60" (identifier "local_6c") (- "-") (identifier "local_60")) () ")")) (- "-") (identifier "uVar13")) () ")"))) (< "<") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00328f55;" (goto "goto") (statement_identifier "LAB_00328f55") (; ";"))) (expression_statement "*local_54 = *(int *)(param_4 + 0x10) + uVar10;" (assignment_expression "*local_54 = *(int *)(param_4 + 0x10) + uVar10" (pointer_expression "*local_54" (* "*") (identifier "local_54")) (= "=") (binary_expression "*(int *)(param_4 + 0x10) + uVar10" (pointer_expression "*(int *)(param_4 + 0x10)" (* "*") (cast_expression "(int *)(param_4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "uVar10"))) (; ";")) (if_statement "if ((bVar5 & 1) == 0) {\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }" (if "if") (parenthesized_expression "((bVar5 & 1) == 0)" (( "(") (binary_expression "(bVar5 & 1) == 0" (parenthesized_expression "(bVar5 & 1)" (( "(") (binary_expression "bVar5 & 1" (identifier "bVar5") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xc5;\n        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;\n        FUN_002446e0();\n      }" ({ "{") (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f8b" (identifier "local_84") (+ "+") (number_literal "-0x54f8b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xc5")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_84 + -0x19cca3" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-0x19cca3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328f55;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328f55" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328f55")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = *(uint *)(iVar2 + 4);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 4)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(iVar2 + 4)" (* "*") (cast_expression "(uint *)(iVar2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" (identifier "local_50") (= "=") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_54[2] = *(uint *)(iVar2 + 8);" (assignment_expression "local_54[2] = *(uint *)(iVar2 + 8)" (subscript_expression "local_54[2]" (identifier "local_54") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_54[1] = uVar10;" (assignment_expression "local_54[1] = uVar10" (subscript_expression "local_54[1]" (identifier "local_54") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*(undefined2 *)(local_54 + 6) = 0;" (assignment_expression "*(undefined2 *)(local_54 + 6) = 0" (pointer_expression "*(undefined2 *)(local_54 + 6)" (* "*") (cast_expression "(undefined2 *)(local_54 + 6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 6)" (( "(") (binary_expression "local_54 + 6" (identifier "local_54") (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)local_54 + 0x1a) = 0;" (assignment_expression "*(undefined1 *)((int)local_54 + 0x1a) = 0" (pointer_expression "*(undefined1 *)((int)local_54 + 0x1a)" (* "*") (cast_expression "(undefined1 *)((int)local_54 + 0x1a)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_54 + 0x1a)" (( "(") (binary_expression "(int)local_54 + 0x1a" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (+ "+") (number_literal "0x1a")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = local_58 + 0x40;" (assignment_expression "local_58 = local_58 + 0x40" (identifier "local_58") (= "=") (binary_expression "local_58 + 0x40" (identifier "local_58") (+ "+") (number_literal "0x40"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_50 != local_70)" (( "(") (binary_expression "local_50 != local_70" (identifier "local_50") (!= "!=") (identifier "local_70")) () ")")) (; ";")) (labeled_statement "LAB_00328964:\n    iVar9 = local_3c;" (statement_identifier "LAB_00328964") (: ":") (expression_statement "iVar9 = local_3c;" (assignment_expression "iVar9 = local_3c" (identifier "iVar9") (= "=") (identifier "local_3c")) (; ";"))) (expression_statement "iVar2 = local_40;" (assignment_expression "iVar2 = local_40" (identifier "iVar2") (= "=") (identifier "local_40")) (; ";")) (if_statement "if (local_3c != local_40) {\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }" (if "if") (parenthesized_expression "(local_3c != local_40)" (( "(") (binary_expression "local_3c != local_40" (identifier "local_3c") (!= "!=") (identifier "local_40")) () ")")) (compound_statement "{\n      if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }\n      iVar2 = param_1[7];\n      if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }\n      *(int **)(puVar18 + -4) = &local_40;\n      *(int *)(puVar18 + -8) = param_1[9];\n      *(int *)(puVar18 + -0xc) = param_1[8];\n      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;\n      FUN_0023d3d0();\n    }" ({ "{") (if_statement "if (local_9d == '\0') {\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }" (if "if") (parenthesized_expression "(local_9d == '\0')" (( "(") (binary_expression "local_9d == '\0'" (identifier "local_9d") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar18 + -4) = 0;\n        uVar13 = iVar9 - iVar2 >> 4;\n        uVar10 = 0x1f;\n        if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }\n        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;\n        *(int *)(puVar18 + -0xc) = iVar9;\n        *(int *)(puVar18 + -0x10) = iVar2;\n        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;\n        FUN_00328410();\n        if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar18 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -4)" (( "(") (binary_expression "puVar18 + -4" (identifier "puVar18") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar13 = iVar9 - iVar2 >> 4;" (assignment_expression "uVar13 = iVar9 - iVar2 >> 4" (identifier "uVar13") (= "=") (binary_expression "iVar9 - iVar2 >> 4" (binary_expression "iVar9 - iVar2" (identifier "iVar9") (- "-") (identifier "iVar2")) (>> ">>") (number_literal "4"))) (; ";")) (expression_statement "uVar10 = 0x1f;" (assignment_expression "uVar10 = 0x1f" (identifier "uVar10") (= "=") (number_literal "0x1f")) (; ";")) (if_statement "if (uVar13 != 0) {\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }" (if "if") (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }\n        }" ({ "{") (for_statement "for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {\n          }" (for "for") (( "(") (; ";") (binary_expression "uVar13 >> uVar10 == 0" (binary_expression "uVar13 >> uVar10" (identifier "uVar13") (>> ">>") (identifier "uVar10")) (== "==") (number_literal "0")) (; ";") (assignment_expression "uVar10 = uVar10 - 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 - 1" (identifier "uVar10") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n          }" ({ "{") (} "}"))) (} "}"))) (expression_statement "*(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;" (assignment_expression "*(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2" (pointer_expression "*(uint *)(puVar18 + -8)" (* "*") (cast_expression "(uint *)(puVar18 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "(0x1f - (uVar10 ^ 0x1f)) * 2" (parenthesized_expression "(0x1f - (uVar10 ^ 0x1f))" (( "(") (binary_expression "0x1f - (uVar10 ^ 0x1f)" (number_literal "0x1f") (- "-") (parenthesized_expression "(uVar10 ^ 0x1f)" (( "(") (binary_expression "uVar10 ^ 0x1f" (identifier "uVar10") (^ "^") (number_literal "0x1f")) () ")"))) () ")")) (* "*") (number_literal "2"))) (; ";")) (expression_statement "*(int *)(puVar18 + -0xc) = iVar9;" (assignment_expression "*(int *)(puVar18 + -0xc) = iVar9" (pointer_expression "*(int *)(puVar18 + -0xc)" (* "*") (cast_expression "(int *)(puVar18 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = iVar2;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar2" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328d76;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328d76" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328d76")) (; ";")) (expression_statement "FUN_00328410();" (call_expression "FUN_00328410()" (identifier "FUN_00328410") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar9 - iVar2 < 0x101) {\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }\n        else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }" (if "if") (parenthesized_expression "(iVar9 - iVar2 < 0x101)" (( "(") (binary_expression "iVar9 - iVar2 < 0x101" (binary_expression "iVar9 - iVar2" (identifier "iVar9") (- "-") (identifier "iVar2")) (< "<") (number_literal "0x101")) () ")")) (compound_statement "{\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar9;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;\n          FUN_003281a0();\n        }" ({ "{") (expression_statement "*(undefined4 *)(puVar18 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar18 + -0xc) = iVar9;" (assignment_expression "*(int *)(puVar18 + -0xc) = iVar9" (pointer_expression "*(int *)(puVar18 + -0xc)" (* "*") (cast_expression "(int *)(puVar18 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = iVar2;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar2" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328dc4;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328dc4" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328dc4")) (; ";")) (expression_statement "FUN_003281a0();" (call_expression "FUN_003281a0()" (identifier "FUN_003281a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }" (else "else") (compound_statement "{\n          iVar21 = iVar2 + 0x100;\n          *(undefined4 *)(puVar18 + -8) = 0;\n          *(int *)(puVar18 + -0xc) = iVar21;\n          *(int *)(puVar18 + -0x10) = iVar2;\n          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;\n          FUN_003281a0();\n          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }\n        }" ({ "{") (expression_statement "iVar21 = iVar2 + 0x100;" (assignment_expression "iVar21 = iVar2 + 0x100" (identifier "iVar21") (= "=") (binary_expression "iVar2 + 0x100" (identifier "iVar2") (+ "+") (number_literal "0x100"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar18 + -0xc) = iVar21;" (assignment_expression "*(int *)(puVar18 + -0xc) = iVar21" (pointer_expression "*(int *)(puVar18 + -0xc)" (* "*") (cast_expression "(int *)(puVar18 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar21")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = iVar2;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar2" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328d93;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328d93" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328d93")) (; ";")) (expression_statement "FUN_003281a0();" (call_expression "FUN_003281a0()" (identifier "FUN_003281a0") (argument_list "()" (( "(") () ")"))) (; ";")) (for_statement "for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }" (for "for") (( "(") (; ";") (binary_expression "iVar9 != iVar21" (identifier "iVar9") (!= "!=") (identifier "iVar21")) (; ";") (assignment_expression "iVar21 = iVar21 + 0x10" (identifier "iVar21") (= "=") (binary_expression "iVar21 + 0x10" (identifier "iVar21") (+ "+") (number_literal "0x10"))) () ")") (compound_statement "{\n            *(undefined4 *)(puVar18 + -0xc) = 0;\n            *(int *)(puVar18 + -0x10) = iVar21;\n            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;\n            FUN_00328120();\n          }" ({ "{") (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = iVar21;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar21" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar21")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328dac;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328dac" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328dac")) (; ";")) (expression_statement "FUN_00328120();" (call_expression "FUN_00328120()" (identifier "FUN_00328120") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar2 = param_1[7];" (assignment_expression "iVar2 = param_1[7]" (identifier "iVar2") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if (iVar2 == 0) {\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar18 + -4) = 0x328e61;\n        FUN_00317c50();\nLAB_00328e68:\n        ppuVar4 = local_84;\n        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;\n        *(undefined4 *)(puVar18 + -0xc) = 0xcf;\n        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;\n                    \n        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;\n        FUN_002446e0();\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar18 + -4) = 0x328e61;" (assignment_expression "*(undefined4 *)(puVar18 + -4) = 0x328e61" (pointer_expression "*(undefined4 *)(puVar18 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -4)" (( "(") (binary_expression "puVar18 + -4" (identifier "puVar18") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x328e61")) (; ";")) (expression_statement "FUN_00317c50();" (call_expression "FUN_00317c50()" (identifier "FUN_00317c50") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00328e68:\n        ppuVar4 = local_84;" (statement_identifier "LAB_00328e68") (: ":") (expression_statement "ppuVar4 = local_84;" (assignment_expression "ppuVar4 = local_84" (identifier "ppuVar4") (= "=") (identifier "local_84")) (; ";"))) (expression_statement "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;" (assignment_expression "*(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b" (pointer_expression "*(undefined ***)(puVar18 + -8)" (* "*") (cast_expression "(undefined ***)(puVar18 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_84 + -0x54f7b" (identifier "local_84") (+ "+") (number_literal "-0x54f7b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xc) = 0xcf;" (assignment_expression "*(undefined4 *)(puVar18 + -0xc) = 0xcf" (pointer_expression "*(undefined4 *)(puVar18 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xcf")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;" (assignment_expression "*(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)ppuVar4 + -0x19cca3" (cast_expression "(int)ppuVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar4")) (+ "+") (number_literal "-0x19cca3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x328e86;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x328e86" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x328e86")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(int **)(puVar18 + -4) = &local_40;" (assignment_expression "*(int **)(puVar18 + -4) = &local_40" (pointer_expression "*(int **)(puVar18 + -4)" (* "*") (cast_expression "(int **)(puVar18 + -4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -4)" (( "(") (binary_expression "puVar18 + -4" (identifier "puVar18") (+ "+") (number_literal "-4")) () ")")))) (= "=") (pointer_expression "&local_40" (& "&") (identifier "local_40"))) (; ";")) (expression_statement "*(int *)(puVar18 + -8) = param_1[9];" (assignment_expression "*(int *)(puVar18 + -8) = param_1[9]" (pointer_expression "*(int *)(puVar18 + -8)" (* "*") (cast_expression "(int *)(puVar18 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "*(int *)(puVar18 + -0xc) = param_1[8];" (assignment_expression "*(int *)(puVar18 + -0xc) = param_1[8]" (pointer_expression "*(int *)(puVar18 + -0xc)" (* "*") (cast_expression "(int *)(puVar18 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "*(int *)(puVar18 + -0x10) = iVar2 + 0x1c;" (assignment_expression "*(int *)(puVar18 + -0x10) = iVar2 + 0x1c" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x3289a2;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x3289a2" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x3289a2")) (; ";")) (expression_statement "FUN_0023d3d0();" (call_expression "FUN_0023d3d0()" (identifier "FUN_0023d3d0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_40 != 0) {\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }" (if "if") (parenthesized_expression "(local_40 != 0)" (( "(") (binary_expression "local_40 != 0" (identifier "local_40") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(puVar18 + -0x10) = local_40;\n      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;\n      FUN_003ae080();\n    }" ({ "{") (expression_statement "*(int *)(puVar18 + -0x10) = local_40;" (assignment_expression "*(int *)(puVar18 + -0x10) = local_40" (pointer_expression "*(int *)(puVar18 + -0x10)" (* "*") (cast_expression "(int *)(puVar18 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x14) = 0x3289b8;" (assignment_expression "*(undefined4 *)(puVar18 + -0x14) = 0x3289b8" (pointer_expression "*(undefined4 *)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x3289b8")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void write_sections(Sized_relobj_file<64,_true> * this, Layout *
   layout, uchar * pshdrs, Output_file * of, Views * pviews) */

void __thiscall
var_10::var_6<64,var_7>::write_sections
          (var_6<64,var_7> *this,type_24 *layout,type_13 *var_3,Output_file *of,
          Views *pviews)

{
  type_21 *var_36;
  type_1 *pp_Var2;
  int *piVar3;
  type_2 var_23;
  type_3 var_18;
  type_4 *var_12;
  type_5 *var_33;
  type_1 var_35;
  type_6 *var_61;
  type_7 *var_54;
  type_8 *var_55;
  type_9 **pp_Var12;
  type_9 *p_Var13;
  uint64_t uVar14;
  type_10 **ppuVar15;
  type_2 var_58;
  type_2 var_59;
  type_11 *******var_37;
  type_12 *var_15;
  type_13 *puVar20;
  type_11 uVar21;
  int var_32;
  type_14 var_14;
  type_1 p_Var24;
  type_1 p_Var25;
  int var_39;
  type_14 var_45;
  type_3 var_20;
  char cVar29;
  int var_30;
  type_15 *var_47;
  type_15 *puVar32;
  type_11 *var_64;
  type_3 *var_49;
  type_3 *var_50;
  type_2 var_60;
  bool var_48;
  bool var_51;
  bool bVar39;
  type_3 bVar40;
  type_16 auStack_d0 [6];
  type_17 a_Stack_b8 [2];
  type_14 uStack_b0;
  type_15 auStack_ac [15];
  char var_56;
  type_11 ******local_9c;
  type_11 local_98;
  type_14 local_94;
  type_11 local_90;
  type_11 ******local_8c;
  type_11 local_88;
  type_10 **var_16;
  type_14 var_34;
  type_14 var_26;
  type_11 ******var_38;
  type_18 **local_74;
  type_17 var_5;
  type_14 var_25;
  type_14 var_24;
  type_14 var_27;
  int var_28;
  type_13 *local_5c;
  type_13 *var_13;
  type_2 local_54;
  type_17 var_9;
  type_19 len;
  type_20 rm;
  type_11 ******local_34;
  type_14 var_46;
  type_11 ******local_2c;
  type_13 *local_28;
  
  bVar40 = 0;
  var_64 = (type_11 *)auStack_ac;
  var_16 = &_GLOBAL_OFFSET_TABLE_;
  rm.
  super__Vector_base<var_10::File_read::var_1,var_11::var_21<var_10::File_read::var_1>var_2>
  ._M_impl._M_start = (type_2)0x0;
  var_5 = (this->super_Sized_relobj<64,var_7>).super_Relobj.super_Object.shnum_;
  rm.
  super__Vector_base<var_10::File_read::var_1,var_11::var_21<var_10::File_read::var_1>var_2>
  ._M_impl._M_finish = (type_2)0x0;
  rm.
  super__Vector_base<var_10::File_read::var_1,var_11::var_21<var_10::File_read::var_1>var_2>
  ._M_impl._M_end_of_storage = (type_2)0x0;
  var_13 = var_3 + 0x40;
  if (var_4 < var_5) {
    var_9 = var_4;
    var_56 = '\x01';
    local_74 = &parameters;
    do {
      while( true ) {
        local_54 = (pviews->
                   super__Vector_base<var_10::var_6<64,var_7>::var_8,var_11::var_21<var_10::var_6<64,var_7>::var_8>var_2>
                   )._M_impl._M_start + var_9;
        local_54->view = (type_13 *)0x0;
        var_12 = (this->super_Sized_relobj<64,var_7>).super_Relobj.output_sections_.
                 super__Vector_base<var_10::type_4*,var_11::var_21<var_10::type_4*>var_2>.
                 _M_impl._M_start[var_9];
        if (var_12 != (type_4 *)0x0) break;
LAB_00328950:
        var_9 = var_9 + var_4;
        var_13 = var_13 + 0x40;
        if (var_9 == var_5) goto LAB_00328964;
      }
      var_14 = *(type_14 *)(var_13 + 4);
      var_14 = var_14 >> 0x18 | (var_14 & 0xff0000) >> 8 | (var_14 & 0xff00) << 8 | var_14 << 0x18;
      if (var_14 == 8) goto LAB_00328950;
      var_15 = (*local_74)->options_;
      if (var_15 == (type_12 *)0x0) {
        *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f02;
        *(type_11 *)((int)var_64 + -0xc) = 0x5c;
        *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
        *(type_11 *)((int)var_64 + -0x14) = 0x328e23;
        var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                            *(char **)((int)var_64 + -8));
      }
      if (((((var_15->relocatable_).value == false) && ((var_15->emit_relocs_).value == false)) ||
          ((var_14 != 4 && (var_14 != 9)))) || ((*(type_14 *)(var_13 + 0xc) >> 0x18 & 2) != 0)) {
        var_18 = var_12->field_0x90;
        var_20 = var_18 >> 5;
        local_5c = (type_13 *)(var_19(local_5c._1_3_,var_20) & 0xffffff01);
        if ((var_20 & 1) == 0) {
          var_20 = (var_12->super_Output_data).field_0x1c;
          if ((var_20 & 4) == 0) {
            *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f78;
            *(type_11 *)((int)var_64 + -0xc) = 0xe3;
            *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
            *(type_11 *)((int)var_64 + -0x14) = 0x328f19;
            var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                                *(char **)((int)var_64 + -8));
          }
          var_27 = (type_14)(var_12->super_Output_data).offset_;
          var_28 = *(int *)((int)&(var_12->super_Output_data).offset_ + 4);
          if ((var_20 & 2) == 0) goto LAB_00328e68;
          var_38 = *(type_11 ********)&(var_12->super_Output_data).data_size_;
          var_26 = *(type_14 *)((int)&(var_12->super_Output_data).data_size_ + 4);
        }
        else {
          var_27 = 0;
          var_28 = 0;
          var_38 = *(type_11 ********)&(var_12->super_Output_data).data_size_;
          var_26 = *(type_14 *)((int)&(var_12->super_Output_data).data_size_ + 4);
        }
        var_23 = (this->super_Sized_relobj<64,var_7>).section_offsets_.
                 super__Vector_base<var_22,var_11::var_21<var_22>var_2>
                 ._M_impl._M_start + var_9;
        var_25 = (type_14)*var_23;
        var_24 = *(type_14 *)((int)var_23 + 4);
        if ((var_24 & var_25) == 0xffffffff) {
          local_88 = 0;
          local_8c = var_38;
          if (var_26 != 0) {
            *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f97;
            *(type_11 *)((int)var_64 + -0xc) = 0xc0;
            *(type_10 ***)((int)var_64 + -0x10) = var_16 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(type_11 *)((int)var_64 + -0x14) = 0x328ebf;
            var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                                *(char **)((int)var_64 + -8));
          }
          if ((type_11 *******)var_38 == (type_11 *******)0x0) goto LAB_00328950;
          var_37 = (type_11 *******)var_38;
          if ((char)local_5c != '\0') {
            if (var_12->postprocessing_buffer_ == (type_13 *)0x0) goto LAB_00328fac;
            local_54->view = var_12->postprocessing_buffer_ + var_27;
            if (((var_12->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;
            uVar14 = (var_12->super_Output_data).address_;
            *(type_11 *)((int)&local_54->address + 4) =
                 *(type_11 *)((int)&(var_12->super_Output_data).address_ + 4);
            *(int *)&local_54->address = (int)uVar14;
            var_14 = var_19(local_5c._1_3_,var_18 >> 5);
            var_15 = (*local_74)->options_;
            goto LAB_003288fd;
          }
          if (var_28 < 0) {
LAB_00328e86:
            *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f89;
            *(type_11 *)((int)var_64 + -0xc) = 0x6f;
            *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
            *(type_11 *)((int)var_64 + -0x14) = 0x328ea1;
            var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                                *(char **)((int)var_64 + -8));
          }
          var_25 = *(type_14 *)((int)&of->file_size_ + 4);
          var_30 = var_28 + (type_14)var_29((type_14)var_38,var_27);
          var_14 = (type_14)(*(type_15 **)&of->file_size_ < (type_15 *)((int)var_38 + var_27)
                         );
          var_32 = var_25 - var_30;
          if ((var_31(var_25,var_30) != var_31(var_32,var_14)) != (int)(var_32 - var_14) < 0)
          goto LAB_00328e86;
          local_54->view = of->base_ + var_27;
          if (((var_12->super_Output_data).field_0x1c & 1) == 0) goto LAB_00328dcc;
          uVar21 = *(type_11 *)((int)&(var_12->super_Output_data).address_ + 4);
          *(int *)&local_54->address = (int)(var_12->super_Output_data).address_;
          *(type_11 *)((int)&local_54->address + 4) = uVar21;
          *(int *)((int)&local_54->offset + 4) = var_28;
          *(type_14 *)&local_54->offset = var_27;
          local_54->view_size = (type_19)var_38;
          local_54->is_input_output_view = true;
          local_54->is_postprocessing_view = false;
        }
        else {
          var_14 = *(type_14 *)(var_13 + 0x24);
          var_37 =
               (type_11 *******)
               (var_14 >> 0x18 | (var_14 & 0xff0000) >> 8 | (var_14 & 0xff00) << 8 | var_14 << 0x18)
          ;
          if (*(int *)(var_13 + 0x20) != 0) {
            *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f97;
            *(type_11 *)((int)var_64 + -0xc) = 0xc0;
            *(type_10 ***)((int)var_64 + -0x10) = var_16 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(type_11 *)((int)var_64 + -0x14) = 0x328e08;
            var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                                *(char **)((int)var_64 + -8));
          }
          var_33 = (this->super_Sized_relobj<64,var_7>).super_Relobj.super_Object.
                   compressed_sections_;
          if (var_33 == (type_5 *)0x0) {
LAB_00328c60:
            var_34 = var_34 & 0xffffff00;
          }
          else {
            var_36 = &(var_33->_M_t)._M_impl.super__Rb_tree_header;
            var_35 = (var_33->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;
            p_Var24 = &var_36->_M_header;
            if (var_35 == (type_1)0x0) goto LAB_00328c60;
            do {
              while (p_Var25 = var_35, p_Var25[1]._M_color < var_9) {
                pp_Var2 = &p_Var25->_M_right;
                var_35 = *pp_Var2;
                p_Var25 = p_Var24;
                if (*pp_Var2 == (type_1)0x0) goto LAB_003287e8;
              }
              var_35 = p_Var25->_M_left;
              p_Var24 = p_Var25;
            } while (p_Var25->_M_left != (type_1)0x0);
LAB_003287e8:
            var_34 = (type_14)var_36 & 0xffffff00;
            if ((var_36 != (type_21 *)p_Var25) &&
               (((type_21 *)p_Var25)->_M_node_count <= var_9)) {
              var_34 = var_19((int3)((type_14)var_36 >> 8),1);
              var_37 = *(type_11 ********)((int)p_Var25 + 0x14);
            }
          }
          if (var_37 == (type_11 *******)0x0) goto LAB_00328950;
          local_9c = var_37;
          local_98 = 0;
          var_14 = var_24 + var_29(var_25,(type_14)var_37);
          if (var_26 < var_14 ||
              var_26 - var_14 <
              (type_14)(var_38 < (type_11 *******)(var_25 + (int)var_37))) {
            *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f9b;
            *(type_11 *)((int)var_64 + -0xc) = 0x317;
            *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x1547d9;
                    /* WARNING: Subroutine does not return */
            *(type_11 *)((int)var_64 + -0x14) = 0x328f37;
            var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                                *(char **)((int)var_64 + -8));
          }
          var_48 = var_29(var_27,var_25);
          var_27 = var_27 + var_25;
          var_28 = var_28 + var_24 + (type_14)var_48;
          if ((char)local_5c == '\0') {
            if ((var_28 < 0) ||
               (var_39 = var_28 + (type_14)var_29((type_14)var_37,var_27),
               var_32 = *(int *)((int)&of->file_size_ + 4),
               var_14 = (type_14)(*(type_15 **)&of->file_size_ <
                              (type_15 *)((int)var_37 + var_27)),
               var_30 = var_32 - var_39,
               (var_31(var_32,var_39) != var_31(var_30,var_14)) != (int)(var_30 - var_14) < 0))
            {
              *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f89;
              *(type_11 *)((int)var_64 + -0xc) = 0x6f;
              *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
              *(type_15 **)((int)var_64 + -0x14) = &LAB_00328fe5;
              var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                                  *(char **)((int)var_64 + -8));
            }
            local_5c = of->base_ + var_27;
            if ((char)var_34 == '\0') goto LAB_00328869;
LAB_00328baf:
            *(type_11 *)((int)var_64 + -4) = 0;
            *(type_19 **)((int)var_64 + -8) = &len;
            *(type_17 *)((int)var_64 + -0xc) = var_9;
            *(var_6<64,var_7> **var_53)((int)var_64 + -0x10) = this;
            *(type_11 *)((int)var_64 + -0x14) = 0x328bc3;
            puVar20 = type_22::var_40
                                (*(type_22 **)((int)var_64 + -0x10),*(type_14 *)((int)var_64 + -0xc),
                                 *(type_19 **)((int)var_64 + -8),
                                 *(bool *)((int)var_64 + -4));
            var_38 = *(type_11 *******)(var_13 + 8);
            var_14 = *(type_14 *)(var_13 + 0xc);
            *(type_14 *)((int)var_64 + -4) =
                 (type_14)var_38 >> 0x18 | ((type_14)var_38 & 0xff0000) >> 8 |
                 ((type_14)var_38 & 0xff00) << 8 | (int)var_38 << 0x18;
            *(type_14 *)((int)var_64 + -8) =
                 var_14 >> 0x18 | (var_14 & 0xff0000) >> 8 | (var_14 & 0xff00) << 8 | var_14 << 0x18
            ;
            *(type_11 *)((int)var_64 + -0xc) = 1;
            *(type_11 *)((int)var_64 + -0x10) = 0x40;
            *(type_11 ********)((int)var_64 + -0x14) = var_37;
            *(type_13 **)((int)var_64 + -0x18) = local_5c;
            *(type_19 *)((int)var_64 + -0x1c) = len;
            *(type_13 **)((int)var_64 + -0x20) = puVar20;
            *(type_11 *)((int)var_64 + -0x24) = 0x328bf3;
            var_48 = var_41
                               (*(type_13 **)((int)var_64 + -0x20),*(type_16 *)((int)var_64 + -0x1c),
                                *(type_13 **)((int)var_64 + -0x18),*(type_16 *)((int)var_64 + -0x14),
                                *(int *)((int)var_64 + -0x10),*(bool *)((int)var_64 + -0xc),
                                *(type_23 *)((int)var_64 + -8));
            puVar32 = (type_15 *)var_64;
            if (!var_48) {
              pp_Var12 = (this->super_Sized_relobj<64,var_7>).super_Relobj.super_Object._vptr_Object
              ;
              *(type_17 *)((int)var_64 + -8) = var_9;
              *(var_6<64,var_7> **var_53)((int)var_64 + -0xc) = this;
              *(type_11 ********)((int)var_64 + -0x10) = &local_34;
              p_Var13 = pp_Var12[0x10];
              *(type_11 *)((int)var_64 + -0x14) = 0x328c13;
              (*p_Var13)();
              var_38 = local_34;
              *(type_10 ***)((int)var_64 + -0x14) = var_16 + -0x57922;
              *(type_11 *)((int)var_64 + -0x18) = 0x328c28;
              uVar21 = var_42();
              *(type_11 *******)((int)var_64 + -0xc) = var_38;
              *(type_11 *)((int)var_64 + -0x10) = uVar21;
              *(var_6<64,var_7> **var_53)((int)var_64 + -0x14) = this;
                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */
              *(type_11 *)((int)var_64 + -0x18) = 0x328c3b;
              Object::var_43(*(type_22 **)((int)var_64 + -0x14),*(char **)((int)var_64 + -0x10));
              puVar32 = (type_15 *)((int)var_64 + -4);
              if ((type_11 *******)local_34 == &local_2c) goto LAB_003288be;
              var_47 = (type_15 *)((int)var_64 + -0x14);
              *(type_11 *******)((int)var_64 + -0x14) = local_34;
              *(type_11 *)((int)var_64 + -0x18) = 0x328c58;
              var_44(*(void **)((int)var_64 + -0x14));
              goto LAB_003288bb;
            }
          }
          else {
            if (var_12->postprocessing_buffer_ == (type_13 *)0x0) {
LAB_00328fac:
              *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f85;
              *(type_11 *)((int)var_64 + -0xc) = 0xe34;
              *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
              *(type_11 *)((int)var_64 + -0x14) = 0x328fca;
              var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                                  *(char **)((int)var_64 + -8));
            }
            local_5c = var_12->postprocessing_buffer_ + var_27;
            if ((char)var_34 != '\0') goto LAB_00328baf;
LAB_00328869:
            var_14 = *(type_14 *)(var_13 + 0x18);
            var_45 = *(type_14 *)(var_13 + 0x1c);
            var_46 = var_14 >> 0x18 | (var_14 & 0xff0000) >> 8 | (var_14 & 0xff00) << 8 |
                       var_14 << 0x18;
            var_38 = (type_11 ******)
                       (var_45 >> 0x18 | (var_45 & 0xff0000) >> 8 | (var_45 & 0xff00) << 8 |
                       var_45 << 0x18);
            if (rm.
                super__Vector_base<var_10::type_26::var_1,var_11::var_21<var_10::type_26::var_1>var_2>
                ._M_impl._M_finish !=
                rm.
                super__Vector_base<var_10::type_26::var_1,var_11::var_21<var_10::type_26::var_1>var_2>
                ._M_impl._M_start) {
              piVar3 = (int *)((int)&rm.
                                     super__Vector_base<var_10::type_26::var_1,var_11::var_21<var_10::type_26::var_1>var_2>
                                     ._M_impl._M_finish[-1].file_offset + 4);
              var_14 = (type_14)(var_38 <
                             *(type_11 ********)
                              &rm.
                               super__Vector_base<var_10::type_26::var_1,var_11::var_21<var_10::type_26::var_1>var_2>
                               ._M_impl._M_finish[-1].file_offset);
              var_32 = var_46 - *piVar3;
              cVar29 = (char)var_34;
              if ((var_31(var_46,*piVar3) != var_31(var_32,var_14)) ==
                  (int)(var_32 - var_14) < 0) {
                cVar29 = var_56;
              }
              var_56 = cVar29;
            }
            local_2c = var_37;
            local_28 = local_5c;
            *(type_11 ********)((int)var_64 + -0xc) = &local_34;
            var_47 = (type_15 *)((int)var_64 + -0x10);
            *(type_20 **)((int)var_64 + -0x10) = &rm;
            local_34 = var_38;
                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */
            *(type_11 *)((int)var_64 + -0x14) = 0x3288bb;
            std::
            vector<var_10::File_read::var_1,var_11::var_21<var_10::File_read::var_1>var_2>
            ::emplace_back<var_10::File_read::var_1>
                      (*(vector<var_10::File_read::var_1,var_11::var_21<var_10::File_read::var_1>var_2>
                         **)((int)var_64 + -0x10),*(var_1 **)((int)var_64 + -0xc));
LAB_003288bb:
            puVar32 = var_47 + 0x10;
          }
LAB_003288be:
          local_54->view = local_5c;
          var_64 = (type_11 *)puVar32;
          if (((var_12->super_Output_data).field_0x1c & 1) == 0) {
LAB_00328dcc:
            ppuVar15 = var_16;
            *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f8b;
            *(type_11 *)((int)var_64 + -0xc) = 0xc5;
            *(int *)((int)var_64 + -0x10) = (int)ppuVar15 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
            *(type_11 *)((int)var_64 + -0x14) = 0x328dea;
            var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                                *(char **)((int)var_64 + -8));
          }
          var_45 = (type_14)(var_12->super_Output_data).address_;
          var_32 = *(int *)((int)&(var_12->super_Output_data).address_ + 4);
          var_15 = (*local_74)->options_;
          var_14 = var_19(local_5c._1_3_,(type_3)var_12->field_0x90 >> 5);
          *(type_14 *)&local_54->address = var_45 + var_25;
          *(type_14 *)((int)&local_54->address + 4) = var_32 + var_24 + (type_14)var_29(var_45,var_25)
          ;
LAB_003288fd:
          local_5c = (type_13 *)(var_14 & 0xffffff01);
          *(type_14 *)&local_54->offset = var_27;
          *(int *)((int)&local_54->offset + 4) = var_28;
          local_54->view_size = (type_19)var_37;
          local_54->is_input_output_view = (var_25 & var_24) == 0xffffffff;
          local_54->is_postprocessing_view = (bool)(char)local_5c;
          if (var_15 == (type_12 *)0x0) {
            *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f02;
            *(type_11 *)((int)var_64 + -0xc) = 0x5c;
            *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(type_11 *)((int)var_64 + -0x14) = 0x328e3e;
            var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                                *(char **)((int)var_64 + -8));
          }
        }
        var_51 = false;
        var_48 = (bool)(((var_15->relocatable_).value ^ 1U) & &DAT_00000008 < var_37);
        bVar39 = var_48 == false;
        if (!bVar39) {
          var_32 = 0xc;
          var_49 = (type_3 *)var_12->name_;
          var_50 = (type_3 *)((int)var_16 + -0x15ffb6);
          do {
            if (var_32 == 0) break;
            var_32 = var_32 + -1;
            var_51 = *var_49 < *var_50;
            bVar39 = *var_49 == *var_50;
            var_49 = var_49 + (type_14)bVar40 * -2 + 1;
            var_50 = var_50 + (type_14)bVar40 * -2 + 1;
          } while (bVar39);
          var_48 = false;
          var_51 = (!var_51 && !bVar39) == var_51;
          if (!var_51) {
            var_32 = 0xc;
            var_49 = (type_3 *)var_12->name_;
            var_50 = (type_3 *)((int)var_16 + -0x15ffaa);
            do {
              if (var_32 == 0) break;
              var_32 = var_32 + -1;
              var_48 = *var_49 < *var_50;
              var_51 = *var_49 == *var_50;
              var_49 = var_49 + (type_14)bVar40 * -2 + 1;
              var_50 = var_50 + (type_14)bVar40 * -2 + 1;
            } while (var_51);
            if ((!var_48 && !var_51) != var_48) {
              var_48 = false;
              goto LAB_0032894a;
            }
          }
          *(type_17 *)((int)var_64 + -8) = var_9;
          *(var_6<64,var_7> **var_53)((int)var_64 + -0xc) = this;
          *(type_24 **)((int)var_64 + -0x10) = layout;
                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */
          *(type_11 *)((int)var_64 + -0x14) = 0x328d4c;
          var_48 = type_24::var_52
                             (*(type_24 **)((int)var_64 + -0x10),*(type_25 **)((int)var_64 + -0xc),
                              *(type_14 *)((int)var_64 + -8));
        }
LAB_0032894a:
        local_54->is_ctors_reverse_view = var_48;
        goto LAB_00328950;
      }
      if ((this->super_Sized_relobj<64,var_7>).super_Relobj.super_Object.shnum_ <= var_9) {
        *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f45;
        *(type_11 *)((int)var_64 + -0xc) = 0x549;
        *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
        *(type_11 *)((int)var_64 + -0x14) = 0x328e5c;
        var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                            *(char **)((int)var_64 + -8));
      }
      var_54 = (((this->super_Sized_relobj<64,var_7>).super_Relobj.map_to_relocatable_relocs_)->
                super__Vector_base<var_10::type_7*,var_11::var_21<var_10::type_7*>var_2>var_53
                )._M_impl._M_start[var_9];
      if (var_54 == (type_7 *)0x0) {
        *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f9b;
        *(type_11 *)((int)var_64 + -0xc) = 0x2ce;
        *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x1547d9;
                    /* WARNING: Subroutine does not return */
        *(type_11 *)((int)var_64 + -0x14) = 0x328efb;
        var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                            *(char **)((int)var_64 + -8));
      }
      var_55 = var_54->posd_;
      if (var_55 == (type_8 *)0x0) {
        *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f9b;
        *(type_11 *)((int)var_64 + -0xc) = 0x2d0;
        *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x1547d9;
                    /* WARNING: Subroutine does not return */
        *(type_11 *)((int)var_64 + -0x14) = 0x328edd;
        var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                            *(char **)((int)var_64 + -8));
      }
      var_18 = var_55->field_0x1c;
      if ((var_18 & 4) == 0) {
        *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f78;
        *(type_11 *)((int)var_64 + -0xc) = 0xe3;
        *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(type_11 *)((int)var_64 + -0x14) = 0x328fac;
        var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                            *(char **)((int)var_64 + -8));
      }
      var_14 = (type_14)var_55->offset_;
      var_32 = *(int *)((int)&var_55->offset_ + 4);
      *(type_14 *)&local_54->offset = var_14;
      *(int *)((int)&local_54->offset + 4) = var_32;
      if ((var_18 & 2) == 0) {
        *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f7b;
        *(type_11 *)((int)var_64 + -0xc) = 0xcf;
        *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(type_11 *)((int)var_64 + -0x14) = 0x328f8e;
        var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                            *(char **)((int)var_64 + -8));
      }
      var_45 = (type_14)var_55->data_size_;
      local_54->view_size = var_45;
      if (var_32 < 0) {
LAB_00328f55:
        *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f89;
        *(type_11 *)((int)var_64 + -0xc) = 0x6f;
        *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(type_11 *)((int)var_64 + -0x14) = 0x328f70;
        var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                            *(char **)((int)var_64 + -8));
      }
      local_94 = var_45;
      local_90 = 0;
      var_28 = var_32 + (type_14)var_29(var_45,var_14);
      var_27 = var_45 + var_14;
      var_25 = *(type_14 *)((int)&of->file_size_ + 4);
      var_45 = (type_14)((type_14)of->file_size_ < var_45 + var_14);
      if ((var_31(var_25,var_28) != var_31(var_25 - var_28,var_45)) !=
          (int)((var_25 - var_28) - var_45) < 0) goto LAB_00328f55;
      local_54->view = of->base_ + var_14;
      if ((var_18 & 1) == 0) {
        *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f8b;
        *(type_11 *)((int)var_64 + -0xc) = 0xc5;
        *(int *)((int)var_64 + -0x10) = (int)var_16 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(type_11 *)((int)var_64 + -0x14) = 0x328f55;
        var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                            *(char **)((int)var_64 + -8));
      }
      uVar14 = var_55->address_;
      var_9 = var_9 + var_4;
      *(type_11 *)((int)&local_54->address + 4) = *(type_11 *)((int)&var_55->address_ + 4);
      *(int *)&local_54->address = (int)uVar14;
      local_54->is_input_output_view = false;
      local_54->is_postprocessing_view = false;
      local_54->is_ctors_reverse_view = false;
      var_13 = var_13 + 0x40;
    } while (var_9 != var_5);
LAB_00328964:
    var_59 = rm.
              super__Vector_base<var_10::File_read::var_1,var_11::var_21<var_10::File_read::var_1>var_2>
              ._M_impl._M_finish;
    var_58 = rm.
              super__Vector_base<var_10::File_read::var_1,var_11::var_21<var_10::File_read::var_1>var_2>
              ._M_impl._M_start;
    if (rm.
        super__Vector_base<var_10::type_26::var_1,var_11::var_21<var_10::type_26::var_1>var_2>
        ._M_impl._M_finish !=
        rm.
        super__Vector_base<var_10::type_26::var_1,var_11::var_21<var_10::type_26::var_1>var_2>
        ._M_impl._M_start) {
      if (var_56 == '\0') {
        var_64[-1] = 0;
        var_45 = (int)var_59 - (int)var_58 >> 4;
        var_14 = 0x1f;
        if (var_45 != 0) {
          for (; var_45 >> var_14 == 0; var_14 = var_14 - 1) {
          }
        }
        var_64[-2] = (0x1f - (var_14 ^ 0x1f)) * 2;
        var_64[-3] = var_59;
        var_64[-4] = var_58;
        var_64[-5] = 0x328d76;
        std::
        __introsort_loop<__gnu_cxx::__normal_iterator<var_10::type_26::var_1*,var_11::vector<var_10::type_26::var_1>var_2>,_int,___gnu_cxx::__ops::_Iter_comp_iter<var_10::var_57>var_2>
                  (var_53);
        if ((int)var_59 - (int)var_58 < 0x101) {
          var_64[-2] = 0;
          var_64[-3] = var_59;
          var_64[-4] = var_58;
          var_64[-5] = 0x328dc4;
          std::
          __insertion_sort<__gnu_cxx::__normal_iterator<var_10::type_26::var_1*,var_11::vector<var_10::type_26::var_1>var_2>,___gnu_cxx::__ops::_Iter_comp_iter<var_10::var_57>var_2>
                    (var_53);
        }
        else {
          var_60 = var_58 + 0x10;
          var_64[-2] = 0;
          var_64[-3] = var_60;
          var_64[-4] = var_58;
          var_64[-5] = 0x328d93;
          std::
          __insertion_sort<__gnu_cxx::__normal_iterator<var_10::type_26::var_1*,var_11::vector<var_10::type_26::var_1>var_2>,___gnu_cxx::__ops::_Iter_comp_iter<var_10::var_57>var_2>
                    (var_53);
          for (; var_59 != var_60; var_60 = var_60 + 1) {
            var_64[-3] = 0;
            var_64[-4] = var_60;
            var_64[-5] = 0x328dac;
            std::
            __unguarded_linear_insert<__gnu_cxx::__normal_iterator<var_10::type_26::var_1*,var_11::vector<var_10::type_26::var_1>var_2>,___gnu_cxx::__ops::_Val_comp_iter<var_10::var_57>var_2>
                      (var_53);
          }
        }
      }
      var_61 = (this->super_Sized_relobj<64,var_7>).super_Relobj.super_Object.input_file_;
      if (var_61 == (type_6 *)0x0) {
        var_64[-1] = 0x328e61;
        Object::var_62((type_22 *)*var_64);
LAB_00328e68:
        ppuVar15 = var_16;
        *(type_10 ***)((int)var_64 + -8) = var_16 + -0x54f7b;
        *(type_11 *)((int)var_64 + -0xc) = 0xcf;
        *(int *)((int)var_64 + -0x10) = (int)ppuVar15 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(type_11 *)((int)var_64 + -0x14) = 0x328e86;
        var_17(*(char **)((int)var_64 + -0x10),*(int *)((int)var_64 + -0xc),
                            *(char **)((int)var_64 + -8));
      }
      var_64[-1] = &rm;
      var_64[-2] = *(type_11 *)
                     ((int)&(this->super_Sized_relobj<64,var_7>).super_Relobj.super_Object.offset_ +
                     4);
      var_64[-3] = (int)(this->super_Sized_relobj<64,var_7>).super_Relobj.super_Object.offset_;
      var_64[-4] = &var_61->file_;
      var_64[-5] = 0x3289a2;
      File_read::var_63
                ((type_26 *)var_64[-4],*(type_27 *)(var_64 + -3),(type_20 *)var_64[-1]);
    }
    if (rm.
        super__Vector_base<var_10::type_26::var_1,var_11::var_21<var_10::type_26::var_1>var_2>
        ._M_impl._M_start != (type_2)0x0) {
      var_64[-4] = rm.
                    super__Vector_base<var_10::File_read::var_1,var_11::var_21<var_10::File_read::var_1>var_2>
                    ._M_impl._M_start;
      var_64[-5] = 0x3289b8;
      var_44((void *)var_64[-4]);
    }
  }
  return;
}


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

/* 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,int *param_5)

{
  uint *puVar1;
  int iVar2;
  code *pcVar3;
  undefined **ppuVar4;
  byte bVar5;
  char cVar6;
  undefined4 *****pppppuVar7;
  undefined4 uVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  byte bVar14;
  int iVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  undefined1 *puVar18;
  byte *pbVar19;
  byte *pbVar20;
  int iVar21;
  bool bVar22;
  bool bVar23;
  bool bVar24;
  byte bVar25;
  uint auStack_d0 [9];
  undefined1 auStack_ac [15];
  char local_9d;
  undefined4 ****local_9c;
  undefined4 local_98;
  uint local_94;
  undefined4 local_90;
  undefined4 ****local_8c;
  undefined4 local_88;
  undefined **local_84;
  uint local_80;
  uint local_7c;
  undefined4 ****local_78;
  int *local_74;
  uint local_70;
  uint local_6c;
  uint local_68;
  uint local_64;
  uint local_60;
  uint local_5c;
  int local_58;
  uint *local_54;
  uint local_50;
  undefined4 local_44;
  int local_40;
  int local_3c;
  undefined4 local_38;
  undefined4 ****local_34;
  uint local_30;
  undefined4 ****local_2c;
  uint local_28;
  
  bVar25 = 0;
  local_84 = &__DT_PLTGOT;
  puVar18 = auStack_ac;
  local_40 = 0;
  local_70 = param_1[10];
  local_58 = param_3 + 0x40;
  local_3c = 0;
  local_38 = 0;
  if (1 < local_70) {
    local_74 = &DAT_005ea7c8;
    local_50 = 1;
    local_9d = '\x01';
    do {
      while( true ) {
        local_54 = (uint *)(local_50 * 0x1c + *param_5);
        *local_54 = 0;
        iVar2 = *(int *)(param_1[0xe] + local_50 * 4);
        if (iVar2 != 0) break;
LAB_00328950:
        local_50 = local_50 + 1;
        local_58 = local_58 + 0x40;
        if (local_50 == local_70) goto LAB_00328964;
      }
      uVar10 = *(uint *)(local_58 + 4);
      uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;
      if (uVar10 == 8) goto LAB_00328950;
      iVar9 = *(int *)(*local_74 + 8);
      if (iVar9 == 0) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;
        *(undefined4 *)(puVar18 + -0xc) = 0x5c;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328e23;
        FUN_002446e0();
      }
      if ((((*(char *)(iVar9 + 0x318d) == '\0') && (*(char *)(iVar9 + 0x3095) == '\0')) ||
          ((uVar10 != 4 && (uVar10 != 9)))) || ((*(uint *)(local_58 + 0xc) >> 0x18 & 2) != 0)) {
        bVar5 = *(byte *)(iVar2 + 0x90);
        bVar14 = bVar5 >> 5;
        local_5c = CONCAT31(local_5c._1_3_,bVar14) & 0xffffff01;
        if ((bVar14 & 1) == 0) {
          if ((*(byte *)(iVar2 + 0x1c) & 4) == 0) {
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;
            *(undefined4 *)(puVar18 + -0xc) = 0xe3;
            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328f19;
            FUN_002446e0();
          }
          local_64 = *(uint *)(iVar2 + 0x14);
          local_60 = *(uint *)(iVar2 + 0x18);
          if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) goto LAB_00328e68;
          local_78 = *(undefined4 *****)(iVar2 + 0xc);
          local_7c = *(uint *)(iVar2 + 0x10);
        }
        else {
          local_78 = *(undefined4 *****)(iVar2 + 0xc);
          local_7c = *(uint *)(iVar2 + 0x10);
          local_64 = 0;
          local_60 = 0;
        }
        puVar1 = (uint *)(param_1[0x21] + local_50 * 8);
        local_6c = *puVar1;
        local_68 = puVar1[1];
        if ((local_68 & local_6c) == 0xffffffff) {
          local_8c = local_78;
          local_88 = 0;
          if (local_7c != 0) {
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;
            *(undefined4 *)(puVar18 + -0xc) = 0xc0;
            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328ebf;
            FUN_002446e0();
          }
          if ((undefined4 *****)local_78 == (undefined4 *****)0x0) goto LAB_00328950;
          pppppuVar7 = (undefined4 *****)local_78;
          if ((char)local_5c != '\0') {
            if (*(int *)(iVar2 + 0x8c) == 0) goto LAB_00328fac;
            *local_54 = *(int *)(iVar2 + 0x8c) + local_64;
            if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;
            uVar10 = *(uint *)(iVar2 + 4);
            local_54[2] = *(uint *)(iVar2 + 8);
            local_54[1] = uVar10;
            uVar10 = CONCAT31(local_5c._1_3_,bVar5 >> 5);
            iVar9 = *(int *)(*local_74 + 8);
            goto LAB_003288fd;
          }
          if (((int)local_60 < 0) ||
             (local_6c = *(uint *)(param_4 + 0xc),
             iVar15 = local_60 + CARRY4((uint)local_78,local_64),
             uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <
                            (undefined1 *)((int)local_78 + local_64)), iVar21 = local_6c - iVar15,
             (SBORROW4(local_6c,iVar15) != SBORROW4(iVar21,uVar10)) != (int)(iVar21 - uVar10) < 0))
          {
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;
            *(undefined4 *)(puVar18 + -0xc) = 0x6f;
            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328ea1;
            FUN_002446e0();
          }
          *local_54 = local_64 + *(int *)(param_4 + 0x10);
          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) goto LAB_00328dcc;
          uVar10 = *(uint *)(iVar2 + 8);
          local_54[1] = *(uint *)(iVar2 + 4);
          local_54[2] = uVar10;
          local_54[4] = local_60;
          local_54[3] = local_64;
          local_54[5] = (uint)local_78;
          *(undefined2 *)(local_54 + 6) = 1;
        }
        else {
          uVar10 = *(uint *)(local_58 + 0x24);
          pppppuVar7 = (undefined4 *****)
                       (uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |
                       uVar10 << 0x18);
          if (*(int *)(local_58 + 0x20) != 0) {
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f97;
            *(undefined4 *)(puVar18 + -0xc) = 0xc0;
            *(undefined ***)(puVar18 + -0x10) = local_84 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328e08;
            FUN_002446e0();
          }
          iVar9 = param_1[0xd];
          if (iVar9 == 0) {
LAB_00328c60:
            local_80 = local_80 & 0xffffff00;
          }
          else {
            uVar10 = iVar9 + 4;
            uVar13 = *(uint *)(iVar9 + 8);
            uVar11 = uVar10;
            if (*(uint *)(iVar9 + 8) == 0) goto LAB_00328c60;
            do {
              while (uVar12 = uVar13, *(uint *)(uVar12 + 0x10) < local_50) {
                puVar1 = (uint *)(uVar12 + 0xc);
                uVar13 = *puVar1;
                uVar12 = uVar11;
                if (*puVar1 == 0) goto LAB_003287e8;
              }
              uVar13 = *(uint *)(uVar12 + 8);
              uVar11 = uVar12;
            } while (*(uint *)(uVar12 + 8) != 0);
LAB_003287e8:
            local_80 = uVar10 & 0xffffff00;
            if ((uVar10 != uVar12) && (*(uint *)(uVar12 + 0x10) <= local_50)) {
              local_80 = CONCAT31((int3)(uVar10 >> 8),1);
              pppppuVar7 = *(undefined4 ******)(uVar12 + 0x14);
            }
          }
          if (pppppuVar7 == (undefined4 *****)0x0) goto LAB_00328950;
          local_98 = 0;
          uVar10 = local_68 + CARRY4(local_6c,(uint)pppppuVar7);
          local_9c = pppppuVar7;
          if (local_7c < uVar10 ||
              local_7c - uVar10 < (uint)(local_78 < (undefined4 *****)(local_6c + (int)pppppuVar7)))
          {
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;
            *(undefined4 *)(puVar18 + -0xc) = 0x317;
            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328f37;
            FUN_002446e0();
          }
          bVar22 = CARRY4(local_64,local_6c);
          local_64 = local_64 + local_6c;
          local_60 = local_60 + local_68 + (uint)bVar22;
          if ((char)local_5c == '\0') {
            if (((int)local_60 < 0) ||
               (iVar21 = local_60 + CARRY4((uint)pppppuVar7,local_64),
               uVar10 = (uint)(*(undefined1 **)(param_4 + 8) <
                              (undefined1 *)((int)pppppuVar7 + local_64)),
               iVar9 = *(int *)(param_4 + 0xc) - iVar21,
               (SBORROW4(*(int *)(param_4 + 0xc),iVar21) != SBORROW4(iVar9,uVar10)) !=
               (int)(iVar9 - uVar10) < 0)) {
              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;
              *(undefined4 *)(puVar18 + -0xc) = 0x6f;
              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
              *(undefined1 **)(puVar18 + -0x14) = &LAB_00328fe5;
              FUN_002446e0();
            }
            local_5c = local_64 + *(int *)(param_4 + 0x10);
            if ((char)local_80 == '\0') goto LAB_00328869;
LAB_00328baf:
            *(undefined4 *)(puVar18 + -4) = 0;
            *(undefined4 **)(puVar18 + -8) = &local_44;
            *(uint *)(puVar18 + -0xc) = local_50;
            *(int **)(puVar18 + -0x10) = param_1;
            *(undefined4 *)(puVar18 + -0x14) = 0x328bc3;
            uVar8 = FUN_0028b8b0();
            local_78 = *(undefined4 *****)(local_58 + 8);
            uVar10 = *(uint *)(local_58 + 0xc);
            *(uint *)(puVar18 + -4) =
                 (uint)local_78 >> 0x18 | ((uint)local_78 & 0xff0000) >> 8 |
                 ((uint)local_78 & 0xff00) << 8 | (int)local_78 << 0x18;
            *(uint *)(puVar18 + -8) =
                 uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18
            ;
            *(undefined4 *)(puVar18 + -0xc) = 1;
            *(undefined4 *)(puVar18 + -0x10) = 0x40;
            *(undefined4 ******)(puVar18 + -0x14) = pppppuVar7;
            *(uint *)(puVar18 + -0x18) = local_5c;
            *(undefined4 *)(puVar18 + -0x1c) = local_44;
            *(undefined4 *)(puVar18 + -0x20) = uVar8;
            *(undefined4 *)(puVar18 + -0x24) = 0x328bf3;
            cVar6 = FUN_0036f6a0();
            puVar17 = puVar18;
            if (cVar6 == '\0') {
              iVar9 = *param_1;
              *(uint *)(puVar18 + -8) = local_50;
              *(int **)(puVar18 + -0xc) = param_1;
              *(undefined4 ******)(puVar18 + -0x10) = &local_34;
              pcVar3 = *(code **)(iVar9 + 0x40);
              *(undefined4 *)(puVar18 + -0x14) = 0x328c13;
              (*pcVar3)();
              local_78 = local_34;
              *(undefined ***)(puVar18 + -0x14) = local_84 + -0x57922;
              *(undefined4 *)(puVar18 + -0x18) = 0x328c28;
              uVar8 = gettext();
              *(undefined4 *****)(puVar18 + -0xc) = local_78;
              *(undefined4 *)(puVar18 + -0x10) = uVar8;
              *(int **)(puVar18 + -0x14) = param_1;
                    /* try { // try from 00328c36 to 00328c3a has its CatchHandler @ 00328fe5 */
              *(undefined4 *)(puVar18 + -0x18) = 0x328c3b;
              FUN_0028b750();
              puVar17 = puVar18 + -4;
              if ((undefined4 *****)local_34 == &local_2c) goto LAB_003288be;
              puVar16 = puVar18 + -0x14;
              *(undefined4 *****)(puVar18 + -0x14) = local_34;
              *(undefined4 *)(puVar18 + -0x18) = 0x328c58;
              FUN_003ae080();
              goto LAB_003288bb;
            }
          }
          else {
            if (*(int *)(iVar2 + 0x8c) == 0) {
LAB_00328fac:
              *(undefined ***)(puVar18 + -8) = local_84 + -0x54f85;
              *(undefined4 *)(puVar18 + -0xc) = 0xe34;
              *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar18 + -0x14) = 0x328fca;
              FUN_002446e0();
            }
            local_5c = *(int *)(iVar2 + 0x8c) + local_64;
            if ((char)local_80 != '\0') goto LAB_00328baf;
LAB_00328869:
            uVar10 = *(uint *)(local_58 + 0x18);
            uVar13 = *(uint *)(local_58 + 0x1c);
            local_30 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |
                       uVar10 << 0x18;
            local_78 = (undefined4 ****)
                       (uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 |
                       uVar13 << 0x18);
            cVar6 = local_9d;
            if ((local_3c != local_40) &&
               (uVar10 = (uint)(local_78 < *(undefined4 ******)(local_3c + -0x10)),
               iVar9 = local_30 - *(int *)(local_3c + -0xc), cVar6 = (char)local_80,
               (SBORROW4(local_30,*(int *)(local_3c + -0xc)) != SBORROW4(iVar9,uVar10)) ==
               (int)(iVar9 - uVar10) < 0)) {
              cVar6 = local_9d;
            }
            local_9d = cVar6;
            local_28 = local_5c;
            *(undefined4 ******)(puVar18 + -0xc) = &local_34;
            puVar16 = puVar18 + -0x10;
            *(int **)(puVar18 + -0x10) = &local_40;
                    /* try { // try from 003288b6 to 00328c12 has its CatchHandler @ 00328fe9 */
            *(undefined4 *)(puVar18 + -0x14) = 0x3288bb;
            local_34 = local_78;
            local_2c = pppppuVar7;
            FUN_00320060();
LAB_003288bb:
            puVar17 = puVar16 + 0x10;
          }
LAB_003288be:
          *local_54 = local_5c;
          puVar18 = puVar17;
          if ((*(byte *)(iVar2 + 0x1c) & 1) == 0) {
LAB_00328dcc:
            ppuVar4 = local_84;
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;
            *(undefined4 *)(puVar18 + -0xc) = 0xc5;
            *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328dea;
            FUN_002446e0();
          }
          uVar13 = *(uint *)(iVar2 + 4);
          iVar21 = *(int *)(iVar2 + 8);
          iVar9 = *(int *)(*local_74 + 8);
          uVar10 = CONCAT31(local_5c._1_3_,*(byte *)(iVar2 + 0x90) >> 5);
          local_54[1] = uVar13 + local_6c;
          local_54[2] = iVar21 + local_68 + (uint)CARRY4(uVar13,local_6c);
LAB_003288fd:
          local_5c = uVar10 & 0xffffff01;
          local_54[3] = local_64;
          local_54[4] = local_60;
          local_54[5] = (uint)pppppuVar7;
          *(bool *)(local_54 + 6) = (local_6c & local_68) == 0xffffffff;
          *(char *)((int)local_54 + 0x19) = (char)local_5c;
          if (iVar9 == 0) {
            *(undefined ***)(puVar18 + -8) = local_84 + -0x54f02;
            *(undefined4 *)(puVar18 + -0xc) = 0x5c;
            *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar18 + -0x14) = 0x328e3e;
            FUN_002446e0();
          }
        }
        bVar22 = false;
        bVar5 = (*(byte *)(iVar9 + 0x318d) ^ 1) & &DAT_00000008 < pppppuVar7;
        bVar24 = bVar5 == 0;
        if (!bVar24) {
          iVar9 = 0xc;
          pbVar19 = *(byte **)(iVar2 + 0x20);
          pbVar20 = (byte *)((int)local_84 + -0x15ffb6);
          do {
            if (iVar9 == 0) break;
            iVar9 = iVar9 + -1;
            bVar22 = *pbVar19 < *pbVar20;
            bVar24 = *pbVar19 == *pbVar20;
            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
          } while (bVar24);
          bVar23 = false;
          bVar22 = (!bVar22 && !bVar24) == bVar22;
          if (!bVar22) {
            iVar9 = 0xc;
            pbVar19 = *(byte **)(iVar2 + 0x20);
            pbVar20 = (byte *)((int)local_84 + -0x15ffaa);
            do {
              if (iVar9 == 0) break;
              iVar9 = iVar9 + -1;
              bVar23 = *pbVar19 < *pbVar20;
              bVar22 = *pbVar19 == *pbVar20;
              pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
            } while (bVar22);
            if ((!bVar23 && !bVar22) != bVar23) {
              bVar5 = 0;
              goto LAB_0032894a;
            }
          }
          *(uint *)(puVar18 + -8) = local_50;
          *(int **)(puVar18 + -0xc) = param_1;
          *(undefined4 *)(puVar18 + -0x10) = param_2;
                    /* try { // try from 00328d47 to 00328fe4 has its CatchHandler @ 00328fe9 */
          *(undefined4 *)(puVar18 + -0x14) = 0x328d4c;
          bVar5 = FUN_002790d0();
        }
LAB_0032894a:
        *(byte *)((int)local_54 + 0x1a) = bVar5;
        goto LAB_00328950;
      }
      if ((uint)param_1[10] <= local_50) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f45;
        *(undefined4 *)(puVar18 + -0xc) = 0x549;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328e5c;
        FUN_002446e0();
      }
      iVar2 = *(int *)(*(int *)param_1[0x11] + local_50 * 4);
      if (iVar2 == 0) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;
        *(undefined4 *)(puVar18 + -0xc) = 0x2ce;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328efb;
        FUN_002446e0();
      }
      iVar2 = *(int *)(iVar2 + 0x10);
      if (iVar2 == 0) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f9b;
        *(undefined4 *)(puVar18 + -0xc) = 0x2d0;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x1547d9;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328edd;
        FUN_002446e0();
      }
      bVar5 = *(byte *)(iVar2 + 0x1c);
      if ((bVar5 & 4) == 0) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f78;
        *(undefined4 *)(puVar18 + -0xc) = 0xe3;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328fac;
        FUN_002446e0();
      }
      uVar10 = *(uint *)(iVar2 + 0x14);
      uVar13 = *(uint *)(iVar2 + 0x18);
      local_54[3] = uVar10;
      local_54[4] = uVar13;
      if ((bVar5 & 2) == 0) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;
        *(undefined4 *)(puVar18 + -0xc) = 0xcf;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328f8e;
        FUN_002446e0();
      }
      uVar11 = *(uint *)(iVar2 + 0xc);
      local_54[5] = uVar11;
      if ((int)uVar13 < 0) {
LAB_00328f55:
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f89;
        *(undefined4 *)(puVar18 + -0xc) = 0x6f;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328f70;
        FUN_002446e0();
      }
      local_90 = 0;
      local_64 = uVar11 + uVar10;
      local_60 = uVar13 + CARRY4(uVar11,uVar10);
      local_6c = *(uint *)(param_4 + 0xc);
      uVar13 = (uint)(*(uint *)(param_4 + 8) < local_64);
      local_94 = uVar11;
      if ((SBORROW4(local_6c,local_60) != SBORROW4(local_6c - local_60,uVar13)) !=
          (int)((local_6c - local_60) - uVar13) < 0) goto LAB_00328f55;
      *local_54 = *(int *)(param_4 + 0x10) + uVar10;
      if ((bVar5 & 1) == 0) {
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f8b;
        *(undefined4 *)(puVar18 + -0xc) = 0xc5;
        *(int *)(puVar18 + -0x10) = (int)local_84 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328f55;
        FUN_002446e0();
      }
      uVar10 = *(uint *)(iVar2 + 4);
      local_50 = local_50 + 1;
      local_54[2] = *(uint *)(iVar2 + 8);
      local_54[1] = uVar10;
      *(undefined2 *)(local_54 + 6) = 0;
      *(undefined1 *)((int)local_54 + 0x1a) = 0;
      local_58 = local_58 + 0x40;
    } while (local_50 != local_70);
LAB_00328964:
    iVar9 = local_3c;
    iVar2 = local_40;
    if (local_3c != local_40) {
      if (local_9d == '\0') {
        *(undefined4 *)(puVar18 + -4) = 0;
        uVar13 = iVar9 - iVar2 >> 4;
        uVar10 = 0x1f;
        if (uVar13 != 0) {
          for (; uVar13 >> uVar10 == 0; uVar10 = uVar10 - 1) {
          }
        }
        *(uint *)(puVar18 + -8) = (0x1f - (uVar10 ^ 0x1f)) * 2;
        *(int *)(puVar18 + -0xc) = iVar9;
        *(int *)(puVar18 + -0x10) = iVar2;
        *(undefined4 *)(puVar18 + -0x14) = 0x328d76;
        FUN_00328410();
        if (iVar9 - iVar2 < 0x101) {
          *(undefined4 *)(puVar18 + -8) = 0;
          *(int *)(puVar18 + -0xc) = iVar9;
          *(int *)(puVar18 + -0x10) = iVar2;
          *(undefined4 *)(puVar18 + -0x14) = 0x328dc4;
          FUN_003281a0();
        }
        else {
          iVar21 = iVar2 + 0x100;
          *(undefined4 *)(puVar18 + -8) = 0;
          *(int *)(puVar18 + -0xc) = iVar21;
          *(int *)(puVar18 + -0x10) = iVar2;
          *(undefined4 *)(puVar18 + -0x14) = 0x328d93;
          FUN_003281a0();
          for (; iVar9 != iVar21; iVar21 = iVar21 + 0x10) {
            *(undefined4 *)(puVar18 + -0xc) = 0;
            *(int *)(puVar18 + -0x10) = iVar21;
            *(undefined4 *)(puVar18 + -0x14) = 0x328dac;
            FUN_00328120();
          }
        }
      }
      iVar2 = param_1[7];
      if (iVar2 == 0) {
        *(undefined4 *)(puVar18 + -4) = 0x328e61;
        FUN_00317c50();
LAB_00328e68:
        ppuVar4 = local_84;
        *(undefined ***)(puVar18 + -8) = local_84 + -0x54f7b;
        *(undefined4 *)(puVar18 + -0xc) = 0xcf;
        *(int *)(puVar18 + -0x10) = (int)ppuVar4 + -0x19cca3;
                    /* WARNING: Subroutine does not return */
        *(undefined4 *)(puVar18 + -0x14) = 0x328e86;
        FUN_002446e0();
      }
      *(int **)(puVar18 + -4) = &local_40;
      *(int *)(puVar18 + -8) = param_1[9];
      *(int *)(puVar18 + -0xc) = param_1[8];
      *(int *)(puVar18 + -0x10) = iVar2 + 0x1c;
      *(undefined4 *)(puVar18 + -0x14) = 0x3289a2;
      FUN_0023d3d0();
    }
    if (local_40 != 0) {
      *(int *)(puVar18 + -0x10) = local_40;
      *(undefined4 *)(puVar18 + -0x14) = 0x3289b8;
      FUN_003ae080();
    }
  }
  return;
}

