
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: void do_write(Output_data_group<32,_true> * this, Output_file * of) */

void __thiscall
gold::Output_data_group<32,_true>::do_write(Output_data_group<32,_true> *this,Output_file *of)

{
  Elf_Word *pEVar1;
  int iVar2;
  Output_data_group<32,_true> *pOVar3;
  pointer puVar4;
  Elf_Word EVar5;
  Output_section *pOVar6;
  undefined4 uVar7;
  Output_file *pOVar8;
  uint *puVar9;
  uint uVar10;
  pointer ppOVar11;
  pointer puVar12;
  int extraout_v1;
  uint *puVar13;
  int extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  Output_data_group<32,_true> *this_00;
  Sized_relobj_file<32,_true> *pSVar14;
  Output_file *pOVar15;
  int *piVar16;
  int *piVar17;
  size_t sVar18;
  Output_file *pOVar19;
  int iVar20;
  Output_file *pOVar21;
  uint uVar22;
  _func_int_varargs *p_Var23;
  code *pcVar24;
  Elf_Word *pEVar25;
  int *piVar26;
  char *pcVar27;
  uint uVar28;
  pointer puVar29;
  uint *puVar30;
  Elf_Word *pEVar31;
  _func_int_varargs *p_Var32;
  code *pcVar33;
  code *pcVar34;
  code *pcVar35;
  int iVar36;
  _func_int_varargs *p_Var37;
  code *pcVar38;
  undefined4 in_stack_fffffef4;
  undefined4 in_stack_ffffff3c;
  undefined4 in_stack_ffffff84;
  int iVar39;
  undefined4 in_stack_ffffffcc;
  
  iVar36 = 0x4c9240;
  iVar2 = *(int *)&(this->super_Output_section_data).super_Output_data.field_0x20;
  iVar39 = 0x4c9240;
  if (iVar2 << 2 < 0) {
    pOVar19 = *(Output_file **)&(this->super_Output_section_data).super_Output_data.offset_;
    iVar20 = (int)(this->super_Output_section_data).super_Output_data.offset_;
    if (iVar2 << 1 < 0) {
      uVar28 = (uint)(this->super_Output_section_data).super_Output_data.data_size_;
      if (*(int *)&(this->super_Output_section_data).super_Output_data.data_size_ == 0) {
        uVar22 = uVar28 + iVar20;
        this_00 = this;
        if (-1 < (int)pOVar19) {
          this_00 = *(Output_data_group<32,_true> **)&of->file_size_;
          pOVar3 = (Output_data_group<32,_true> *)((int)&pOVar19->name_ + (uint)(uVar22 < uVar28));
          pOVar19 = (Output_file *)(uint)((int)this_00 < (int)pOVar3);
          if (pOVar19 == (Output_file *)0x0) {
            if (this_00 == pOVar3) goto LAB_0022257c;
            do {
              puVar29 = (this->input_shndxes_).
                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
                        _M_start;
              pEVar25 = (Elf_Word *)(of->base_ + iVar20);
              puVar4 = (this->input_shndxes_).
                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
                       _M_finish;
              *pEVar25 = this->flags_;
              if (puVar29 == puVar4) {
                uVar22 = 4;
LAB_002224e8:
                iVar39 = *(int *)(iVar36 + -0x7924);
                if (uVar22 == uVar28) {
                  puVar4 = (this->input_shndxes_).
                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
                           _M_start;
                  if (puVar4 != puVar29) {
                    (this->input_shndxes_).
                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
                    _M_finish = puVar4;
                  }
                  return;
                }
                goto LAB_002225b8;
              }
              iVar2 = *(int *)(iVar36 + -0x7924);
              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);
              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);
              pEVar1 = pEVar25 + 1;
LAB_00222480:
              while( true ) {
                pEVar31 = pEVar1;
                puVar4 = puVar29;
                pSVar14 = this->relobj_;
                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.
                          _vptr_Object[0x18];
                if (p_Var32 == p_Var37) break;
                iVar36 = iVar39;
                pOVar6 = (Output_section *)(*p_Var32)();
                iVar39 = iVar36;
                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;
                pcVar33 = *(code **)(iVar36 + -0x3610);
LAB_002224a8:
                iVar36 = iVar39;
                pSVar14 = this->relobj_;
                uVar7 = (*pcVar33)(iVar2 + -0x4568);
                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);
                puVar12 = (this->input_shndxes_).
                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
                          _M_finish;
                *pEVar31 = 0;
                puVar29 = puVar4 + 1;
                pEVar1 = pEVar31 + 1;
                iVar39 = iVar36;
                if (puVar12 == puVar4 + 1) {
LAB_002224e4:
                  puVar29 = puVar4 + 1;
                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);
                  goto LAB_002224e8;
                }
              }
              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.
                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                         ._M_impl._M_start;
              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.
                                        output_sections_.
                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {
                pOVar6 = ppOVar11[*puVar4];
                pcVar33 = *(code **)(iVar36 + -0x3610);
                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;
LAB_00222450:
                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];
                if (p_Var32 == p_Var23) {
                  EVar5 = pOVar6->out_shndx_;
                  iVar20 = *(int *)(iVar36 + -0x7924);
                  if (EVar5 == 0xffffffff) goto LAB_00222564;
                }
                else {
                  iVar36 = iVar39;
                  EVar5 = (*p_Var32)(pOVar6);
                  iVar39 = iVar36;
                }
                puVar12 = (this->input_shndxes_).
                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
                          _M_finish;
                *pEVar31 = EVar5;
                puVar29 = puVar4 + 1;
                pEVar1 = pEVar31 + 1;
                if (puVar12 == puVar4 + 1) goto LAB_002224e4;
                goto LAB_00222480;
              }
              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;
              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);
LAB_00222564:
              of = (Output_file *)0x1043;
              pOVar19 = (Output_file *)(iVar20 - 0x2a28);
              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);
              (**(code **)(iVar36 + -0x7810))();
              iVar20 = extraout_v1;
LAB_0022257c:
              uVar22 = (uint)((uint)of->file_size_ < uVar22);
            } while (uVar22 == 0);
          }
        }
        Output_file::get_output_view
                  ((Output_file *)this_00,CONCAT44(iVar39,in_stack_ffffffcc),(size_t)of,pOVar19);
        goto LAB_0022259c;
      }
      goto LAB_002225d0;
    }
  }
  else {
LAB_0022259c:
    iVar39 = *(int *)(iVar36 + -0x7924) + -0x2a78;
    (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x3574,0xe3,iVar39);
LAB_002225b8:
    (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7924) + -0x48b4,0x549,iVar39 + -0x4278);
LAB_002225d0:
    (**(code **)(iVar36 + -0x7810))
              (*(int *)(iVar36 + -0x7fc4) + 0x4584,0xc0,*(int *)(iVar36 + -0x7924) + -0x32e0);
  }
  sVar18 = 0xcf;
  pcVar33 = *(code **)(iVar36 + -0x7810);
  pOVar19 = (Output_file *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);
  (*pcVar33)(pOVar19,0xcf,*(int *)(iVar36 + -0x7924) + -0x29fc);
  pcVar33 = pcVar33 + 0x2a6c38;
  if (*(int *)&pOVar19[1].file_size_ << 2 < 0) {
    pOVar21 = (Output_file *)pOVar19[1].name_;
    iVar36 = pOVar19[1].o_;
    if (-1 < *(int *)&pOVar19[1].file_size_ << 1) goto LAB_0022289c;
    uVar28 = *(uint *)&pOVar19->map_is_anonymous_;
    if (pOVar19->base_ == (uchar *)0x0) {
      uVar22 = uVar28 + iVar36;
      pOVar15 = pOVar19;
      pcVar35 = pcVar33;
      if (-1 < (int)pOVar21) {
        pOVar15 = *(Output_file **)(sVar18 + 8);
        pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));
        pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);
        if (pOVar21 == (Output_file *)0x0) {
          if (pOVar15 == pOVar8) goto LAB_0022282c;
          do {
            puVar30 = *(uint **)&pOVar19[2].file_size_;
            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);
            puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4);
            *piVar26 = pOVar19[2].o_;
            if (puVar30 == puVar9) {
              uVar22 = 4;
LAB_00222798:
              iVar36 = *(int *)(pcVar33 + -0x7924);
              if (uVar22 == uVar28) {
                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {
                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;
                }
                return;
              }
              goto LAB_00222868;
            }
            iVar36 = *(int *)(pcVar33 + -0x7924);
            pcVar38 = *(code **)(pcVar33 + -0x771c);
            pcVar24 = *(code **)(pcVar33 + -0x70a4);
            piVar16 = piVar26 + 1;
LAB_00222730:
            while( true ) {
              piVar17 = piVar16;
              puVar9 = puVar30;
              piVar16 = (int *)pOVar19[2].name_;
              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;
              pcVar33 = pcVar35;
              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();
              pcVar35 = pcVar33;
              if (piVar16 != (int *)0x0) goto LAB_00222700;
              pcVar34 = *(code **)(pcVar33 + -0x3610);
LAB_00222758:
              pcVar33 = pcVar35;
              pcVar27 = pOVar19[2].name_;
              uVar7 = (*pcVar34)(iVar36 + -0x4568);
              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);
              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);
              *piVar17 = 0;
              puVar30 = puVar9 + 1;
              piVar16 = piVar17 + 1;
              pcVar35 = pcVar33;
              if (puVar13 == puVar9 + 1) {
LAB_00222794:
                puVar30 = puVar9 + 1;
                uVar22 = (int)piVar17 + (4 - (int)piVar26);
                goto LAB_00222798;
              }
            }
            if (*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)) {
              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);
              pcVar34 = *(code **)(pcVar33 + -0x3610);
              if (piVar16 == (int *)0x0) goto LAB_00222758;
LAB_00222700:
              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {
                iVar2 = piVar16[0x19];
                iVar39 = *(int *)(pcVar33 + -0x7924);
                if (iVar2 == -1) goto LAB_00222814;
              }
              else {
                pcVar33 = pcVar35;
                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);
                pcVar35 = pcVar33;
              }
              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);
              *piVar17 = iVar2;
              puVar30 = puVar9 + 1;
              piVar16 = piVar17 + 1;
              if (puVar13 == puVar9 + 1) goto LAB_00222794;
              goto LAB_00222730;
            }
            iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404;
            (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8);
LAB_00222814:
            sVar18 = 0x1043;
            pOVar21 = (Output_file *)(iVar39 - 0x2a28);
            pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);
            (**(code **)(pcVar33 + -0x7810))();
            iVar36 = extraout_v1_00;
LAB_0022282c:
            uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);
          } while (uVar22 == 0);
        }
      }
      Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_ffffff84),sVar18,pOVar21);
      goto LAB_0022284c;
    }
  }
  else {
LAB_0022284c:
    iVar36 = *(int *)(pcVar33 + -0x7924) + -0x2a78;
    (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xe3,iVar36);
LAB_00222868:
    (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x4290);
  }
  (**(code **)(pcVar33 + -0x7810))
            (*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0);
LAB_0022289c:
  sVar18 = 0xcf;
  pcVar35 = *(code **)(pcVar33 + -0x7810);
  pOVar19 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);
  (*pcVar35)(pOVar19,0xcf,*(int *)(pcVar33 + -0x7924) + -0x29fc);
  pcVar35 = pcVar35 + 0x2a6988;
  if (*(int *)&pOVar19[1].file_size_ << 2 < 0) {
    pOVar21 = (Output_file *)pOVar19[1].name_;
    iVar36 = pOVar19[1].o_;
    if (*(int *)&pOVar19[1].file_size_ << 1 < 0) {
      uVar28 = *(uint *)&pOVar19->map_is_anonymous_;
      if (pOVar19->base_ == (uchar *)0x0) {
        uVar22 = uVar28 + iVar36;
        pOVar15 = pOVar19;
        pcVar33 = pcVar35;
        if (-1 < (int)pOVar21) {
          pOVar15 = *(Output_file **)(sVar18 + 8);
          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));
          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);
          if (pOVar21 == (Output_file *)0x0) {
            if (pOVar15 == pOVar8) goto LAB_00222ad8;
LAB_00222948:
            uVar10 = pOVar19[2].o_;
            puVar9 = *(uint **)&pOVar19[2].file_size_;
            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);
            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);
            piVar16 = piVar26 + 1;
            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
            if (puVar9 != puVar30) {
              iVar36 = *(int *)(pcVar35 + -0x7924);
              pcVar38 = *(code **)(pcVar35 + -0x771c);
              pcVar24 = *(code **)(pcVar35 + -0x70a4);
              do {
                piVar17 = (int *)pOVar19[2].name_;
                if (*(code **)(*piVar17 + 0x60) == pcVar38) {
                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;
                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);
                  pcVar34 = *(code **)(pcVar35 + -0x3610);
                  if (piVar17 == (int *)0x0) goto LAB_00222a60;
LAB_002229c8:
                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {
                    uVar10 = piVar17[0x19];
                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;
                  }
                  else {
                    pcVar35 = pcVar33;
                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);
                    pcVar33 = pcVar35;
                  }
                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
                }
                else {
                  pcVar35 = pcVar33;
                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();
                  pcVar33 = pcVar35;
                  if (piVar17 != (int *)0x0) goto LAB_002229c8;
                  pcVar34 = *(code **)(pcVar35 + -0x3610);
LAB_00222a60:
                  pcVar35 = pcVar33;
                  pcVar27 = pOVar19[2].name_;
                  uVar7 = (*pcVar34)(iVar36 + -0x4568);
                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);
                  iVar39 = 0;
                  pcVar33 = pcVar35;
                }
                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);
                puVar9 = puVar9 + 1;
                *piVar16 = iVar39;
                piVar16 = piVar16 + 1;
                if (puVar30 == puVar9) {
                  uVar22 = (int)piVar16 - (int)piVar26;
                  goto LAB_00222a04;
                }
              } while( true );
            }
            uVar22 = 4;
LAB_00222a04:
            iVar36 = *(int *)(pcVar35 + -0x7924);
            if (uVar22 == uVar28) {
              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {
                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;
              }
              return;
            }
            goto LAB_00222b4c;
          }
        }
LAB_00222aec:
        Output_file::get_output_view(pOVar15,CONCAT44(pcVar33,in_stack_ffffff3c),sVar18,pOVar21);
      }
      (**(code **)(pcVar35 + -0x7810))
                (*(int *)(pcVar35 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar35 + -0x7924) + -0x32e0);
    }
    (**(code **)(pcVar35 + -0x7810))
              (*(int *)(pcVar35 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar35 + -0x7924) + -0x29fc);
  }
  iVar36 = *(int *)(pcVar35 + -0x7924) + -0x2a78;
  (**(code **)(pcVar35 + -0x7810))(*(int *)(pcVar35 + -0x7fc4) + 0x3574,0xe3,iVar36);
LAB_00222b4c:
  sVar18 = 0x549;
  pcVar33 = *(code **)(pcVar35 + -0x7810);
  pOVar19 = (Output_file *)(*(int *)(pcVar35 + -0x7924) + -0x48b4);
  (*pcVar33)(pOVar19,0x549,iVar36 + -0x4284);
  pcVar33 = pcVar33 + 0x2a66dc;
  if (*(int *)&pOVar19[1].file_size_ << 2 < 0) {
    pOVar21 = (Output_file *)pOVar19[1].name_;
    iVar36 = pOVar19[1].o_;
    if (*(int *)&pOVar19[1].file_size_ << 1 < 0) {
      uVar28 = *(uint *)&pOVar19->map_is_anonymous_;
      if (pOVar19->base_ == (uchar *)0x0) {
        uVar22 = uVar28 + iVar36;
        pOVar15 = pOVar19;
        pcVar35 = pcVar33;
        if (-1 < (int)pOVar21) {
          pOVar15 = *(Output_file **)(sVar18 + 8);
          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));
          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);
          if (pOVar21 == (Output_file *)0x0) {
            if (pOVar15 == pOVar8) goto LAB_00222d84;
LAB_00222bf4:
            uVar10 = pOVar19[2].o_;
            puVar9 = *(uint **)&pOVar19[2].file_size_;
            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);
            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);
            piVar16 = piVar26 + 1;
            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
            if (puVar9 != puVar30) {
              iVar36 = *(int *)(pcVar33 + -0x7924);
              pcVar38 = *(code **)(pcVar33 + -0x771c);
              pcVar24 = *(code **)(pcVar33 + -0x70a4);
              do {
                piVar17 = (int *)pOVar19[2].name_;
                if (*(code **)(*piVar17 + 0x60) == pcVar38) {
                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;
                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);
                  pcVar34 = *(code **)(pcVar33 + -0x3610);
                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;
LAB_00222c74:
                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {
                    uVar10 = piVar17[0x19];
                    if (uVar10 == 0xffffffff) goto LAB_00222d50;
                  }
                  else {
                    pcVar33 = pcVar35;
                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);
                    pcVar35 = pcVar33;
                  }
                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
                }
                else {
                  pcVar33 = pcVar35;
                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();
                  pcVar35 = pcVar33;
                  if (piVar17 != (int *)0x0) goto LAB_00222c74;
                  pcVar34 = *(code **)(pcVar33 + -0x3610);
LAB_00222d0c:
                  pcVar33 = pcVar35;
                  pcVar27 = pOVar19[2].name_;
                  uVar7 = (*pcVar34)(iVar36 + -0x4568);
                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);
                  iVar39 = 0;
                  pcVar35 = pcVar33;
                }
                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);
                puVar9 = puVar9 + 1;
                *piVar16 = iVar39;
                piVar16 = piVar16 + 1;
                if (puVar30 == puVar9) {
                  uVar22 = (int)piVar16 - (int)piVar26;
                  goto LAB_00222cb0;
                }
              } while( true );
            }
            uVar22 = 4;
LAB_00222cb0:
            iVar36 = *(int *)(pcVar33 + -0x7924);
            if (uVar22 == uVar28) {
              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {
                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;
              }
              return;
            }
            goto LAB_00222df8;
          }
        }
LAB_00222d98:
        Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_fffffef4),sVar18,pOVar21);
      }
      (**(code **)(pcVar33 + -0x7810))
                (*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0);
    }
    (**(code **)(pcVar33 + -0x7810))
              (*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar33 + -0x7924) + -0x29fc);
  }
  iVar36 = *(int *)(pcVar33 + -0x7924) + -0x2a78;
  (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xe3,iVar36);
LAB_00222df8:
  (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x426c);
  Output_data::default_alignment();
  return;
LAB_00222aa4:
  (**(code **)(pcVar35 + -0x7810))
            (*(int *)(pcVar35 + -0x7fc4) + 0x3574,0x1043,*(int *)(pcVar35 + -0x7924) + -0x2a28);
LAB_00222abc:
  sVar18 = 0x5c8;
  pOVar21 = (Output_file *)(*(int *)(pcVar35 + -0x7924) - 0x3404);
  pOVar15 = (Output_file *)(*(int *)(pcVar35 + -0x7fc4) + 0x4570);
  (**(code **)(pcVar35 + -0x7810))();
  iVar36 = extraout_v1_01;
LAB_00222ad8:
  uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);
  if (uVar22 != 0) goto LAB_00222aec;
  goto LAB_00222948;
LAB_00222d50:
  (**(code **)(pcVar33 + -0x7810))
            (*(int *)(pcVar33 + -0x7fc4) + 0x3574,0x1043,*(int *)(pcVar33 + -0x7924) + -0x2a28);
LAB_00222d68:
  sVar18 = 0x5c8;
  pOVar21 = (Output_file *)(*(int *)(pcVar33 + -0x7924) - 0x3404);
  pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x4570);
  (**(code **)(pcVar33 + -0x7810))();
  iVar36 = extraout_v1_02;
LAB_00222d84:
  uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);
  if (uVar22 != 0) goto LAB_00222d98;
  goto LAB_00222bf4;
}



void FUN_00222358(int param_1,int param_2)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint *puVar4;
  undefined *puVar5;
  undefined4 uVar6;
  uint *puVar7;
  int *piVar8;
  uint uVar9;
  undefined4 *puVar10;
  undefined4 uVar11;
  uint uVar12;
  uint *puVar13;
  int *piVar14;
  
  if (*(int *)(param_1 + 0x20) << 2 < 0) {
    if (-1 < *(int *)(param_1 + 0x20) << 1) {
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,
                 PTR_s_in_a_linker_script_004c191c + -0x29fc);
      return;
    }
    uVar12 = *(uint *)(param_1 + 0x14);
    if (*(int *)(param_1 + 0x10) != 0) {
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,
                 PTR_s_in_a_linker_script_004c191c + -0x32e0);
      return;
    }
    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);
    if (-1 < *(int *)(param_1 + 0x18)) {
      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);
      if ((iVar3 <= *(int *)(param_2 + 8)) &&
         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {
        puVar13 = *(uint **)(param_1 + 0x38);
        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));
        puVar4 = *(uint **)(param_1 + 0x3c);
        *puVar10 = *(undefined4 *)(param_1 + 0x34);
        puVar2 = PTR_do_out_shndx_004c219c;
        puVar1 = PTR_do_output_section_004c1b24;
        if (puVar13 == puVar4) {
          uVar9 = 4;
        }
        else {
          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;
          piVar8 = puVar10 + 1;
          do {
            while( true ) {
              piVar14 = piVar8;
              puVar4 = puVar13;
              piVar8 = *(int **)(param_1 + 0x30);
              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;
              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();
              if (piVar8 != (int *)0x0) goto LAB_00222450;
LAB_002224a8:
              uVar11 = *(undefined4 *)(param_1 + 0x30);
              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);
              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);
              puVar7 = *(uint **)(param_1 + 0x3c);
              *piVar14 = 0;
              puVar13 = puVar4 + 1;
              piVar8 = piVar14 + 1;
              if (puVar7 == puVar4 + 1) goto LAB_002224e4;
            }
            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {
              (*(code *)PTR_do_gold_unreachable_004c1a30)
                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,
                         PTR_s_in_a_linker_script_004c191c + -0x3404);
              return;
            }
            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);
            if (piVar8 == (int *)0x0) goto LAB_002224a8;
LAB_00222450:
            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {
              iVar3 = piVar8[0x19];
              if (iVar3 == -1) {
                (*(code *)PTR_do_gold_unreachable_004c1a30)
                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,
                           PTR_s_in_a_linker_script_004c191c + -0x2a28);
                return;
              }
            }
            else {
              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);
            }
            puVar7 = *(uint **)(param_1 + 0x3c);
            *piVar14 = iVar3;
            puVar13 = puVar4 + 1;
            piVar8 = piVar14 + 1;
          } while (puVar7 != puVar4 + 1);
LAB_002224e4:
          puVar13 = puVar4 + 1;
          uVar9 = (int)piVar14 + (4 - (int)puVar10);
        }
        if (uVar9 != uVar12) {
          (*(code *)PTR_do_gold_unreachable_004c1a30)
                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,
                     PTR_s_in_a_linker_script_004c191c + -0x4278);
          return;
        }
        if (*(uint **)(param_1 + 0x38) != puVar13) {
          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);
        }
        return;
      }
    }
    FUN_00212d10();
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,
             PTR_s_in_a_linker_script_004c191c + -0x2a78);
  return;
}


lui gp,0x2a
addiu gp,gp,0x6ee8
addu gp,gp,t9
lw v0,0x20(a0)
addiu sp,sp,-0x48
ext v1,v0,0x1d,0x1
sw gp,0x10(sp)
sw ra,0x44(sp)
sw s8,0x40(sp)
sw s7,0x3c(sp)
sw s6,0x38(sp)
sw s5,0x34(sp)
sw s4,0x30(sp)
sw s3,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
beq v1,zero,0x0022259c
_sw s0,0x20(sp)
ext v0,v0,0x1e,0x1
lw a2,0x18(a0)
or s6,a0,zero
beq v0,zero,0x002225ec
_lw v1,0x1c(a0)
lw v0,0x10(a0)
bne v0,zero,0x002225d0
_lw s4,0x14(a0)
bltz a2,0x0022258c
_addu a3,s4,v1
lw a0,0x8(a1)
sltu v0,a3,s4
addu v0,v0,a2
slt a2,a0,v0
bne a2,zero,0x00222590
_lw t9,-0x533c(gp)
beq a0,v0,0x0022257c
_nop
lw s2,0x10(a1)
lw a0,0x34(s6)
lw s5,0x38(s6)
addu s2,s2,v1
lw v0,0x3c(s6)
addiu s7,s2,0x4
beq s5,v0,0x00222540
_sw a0,0x0(s2)
lw s3,-0x7924(gp)
li s1,-0x1
lw s8,-0x771c(gp)
lw s0,-0x70a4(gp)
addiu v0,s3,-0x4568
b 0x00222480
_sw v0,0x18(sp)
lw v1,0x38(a0)
lw v0,0x3c(a0)
subu v0,v0,v1
sra v0,v0,0x2
sltu v0,a1,v0
beq v0,zero,0x00222548
_sll a1,a1,0x2
addu a1,v1,a1
lw v0,0x0(a1)
beq v0,zero,0x002224a8
_lw t9,-0x3610(gp)
lw v1,0x0(v0)
lw t9,0x2c(v1)
bne t9,s0,0x00222530
_nop
lw v0,0x64(v0)
beq v0,s1,0x00222564
_lw a2,-0x7924(gp)
lw v1,0x3c(s6)
addiu s5,s5,0x4
sw v0,0x0(s7)
beq v1,s5,0x002224e4
_addiu s7,s7,0x4
lw a0,0x30(s6)
lw v0,0x0(a0)
lw t9,0x60(v0)
beq t9,s8,0x00222424
_lw a1,0x0(s5)
jalr t9
_nop
bne v0,zero,0x00222450
_lw gp,0x10(sp)
lw t9,-0x3610(gp)
addiu s5,s5,0x4
lw a0,0x18(sp)
addiu s7,s7,0x4
jalr t9
_lw s3,0x30(s6)
lw gp,0x10(sp)
or a1,v0,zero
lw t9,-0x77ec(gp)
jalr t9
_or a0,s3,zero
or v0,zero,zero
lw v1,0x3c(s6)
lw gp,0x10(sp)
bne v1,s5,0x00222480
_sw v0,-0x4(s7)
subu s2,s7,s2
bne s2,s4,0x002225b8
_lw a2,-0x7924(gp)
lw v0,0x38(s6)
beq v0,s5,0x00222504
_lw ra,0x44(sp)
sw v0,0x3c(s6)
lw ra,0x44(sp)
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x48
jalr t9
_or a0,v0,zero
b 0x0022246c
_lw gp,0x10(sp)
b 0x002224e8
_li s2,0x4
lw a2,-0x7924(gp)
li a1,0x5c8
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x3404
jalr t9
_addiu a0,a0,0x4570
li a1,0x1043
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x2a28
jalr t9
_addiu a0,a0,0x3574
lw v0,0xc(a1)
sltu a3,v0,a3
beq a3,zero,0x002223e8
_nop
lw t9,-0x533c(gp)
addiu t9,t9,0x2d10
bal 0x00212d10
_nop
lw a2,-0x7924(gp)
li a1,0xe3
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x2a78
jalr t9
_addiu a0,a0,0x3574
li a1,0x549
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x4278
jalr t9
_addiu a0,a0,-0x48b4
lw a2,-0x7924(gp)
li a1,0xc0
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x32e0
jalr t9
_addiu a0,a0,0x4584
lw a2,-0x7924(gp)
li a1,0xcf
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x29fc
jalr t9
_addiu a0,a0,0x3574
(translation_unit "void FUN_00222358(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  \n  if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78);\n  return;\n}\n\n" (function_definition "void FUN_00222358(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  \n  if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78);\n  return;\n}" primitive_type (function_declarator "FUN_00222358(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  \n  if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (if_statement "if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) << 2 < 0)" ( (binary_expression "*(int *)(param_1 + 0x20) << 2 < 0" (binary_expression "*(int *)(param_1 + 0x20) << 2" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }" { (if_statement "if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }" if (parenthesized_expression "(-1 < *(int *)(param_1 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(param_1 + 0x20) << 1" number_literal < (binary_expression "*(int *)(param_1 + 0x20) << 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29fc" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar12 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x10) != 0)" ( (binary_expression "*(int *)(param_1 + 0x10) != 0" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x32e0" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar9 = uVar12 + *(int *)(param_1 + 0x1c);" (assignment_expression "uVar9 = uVar12 + *(int *)(param_1 + 0x1c)" identifier = (binary_expression "uVar12 + *(int *)(param_1 + 0x1c)" identifier + (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))))) ;) (if_statement "if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }" if (parenthesized_expression "(-1 < *(int *)(param_1 + 0x18))" ( (binary_expression "-1 < *(int *)(param_1 + 0x18)" number_literal < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }" { (expression_statement "iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18)" identifier = (binary_expression "(uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18)" (call_expression "(uint)(uVar9 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 < uVar12)" ( (binary_expression "uVar9 < uVar12" identifier < identifier) ))) + (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }" if (parenthesized_expression "((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc)))))" ( (binary_expression "(iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))" (parenthesized_expression "(iVar3 <= *(int *)(param_2 + 8))" ( (binary_expression "iVar3 <= *(int *)(param_2 + 8)" identifier <= (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) )) && (parenthesized_expression "((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))" ( (parenthesized_expression "(*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc)))" ( (binary_expression "*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))" (binary_expression "*(int *)(param_2 + 8) != iVar3" (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) != identifier) || (parenthesized_expression "(uVar9 <= *(uint *)(param_2 + 0xc))" ( (binary_expression "uVar9 <= *(uint *)(param_2 + 0xc)" identifier <= (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }" { (expression_statement "puVar13 = *(uint **)(param_1 + 0x38);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x38)" identifier = (pointer_expression "*(uint **)(param_1 + 0x38)" * (cast_expression "(uint **)(param_1 + 0x38)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));" (assignment_expression "puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c))" identifier = (cast_expression "(undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c))" ( (binary_expression "*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c)" (pointer_expression "*(int *)(param_2 + 0x10)" * (cast_expression "(int *)(param_2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar4 = *(uint **)(param_1 + 0x3c);" (assignment_expression "puVar4 = *(uint **)(param_1 + 0x3c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x3c)" * (cast_expression "(uint **)(param_1 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*puVar10 = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "*puVar10 = *(undefined4 *)(param_1 + 0x34)" (pointer_expression "*puVar10" * identifier) = (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puVar2 = PTR_do_out_shndx_004c219c;" (assignment_expression "puVar2 = PTR_do_out_shndx_004c219c" identifier = identifier) ;) (expression_statement "puVar1 = PTR_do_output_section_004c1b24;" (assignment_expression "puVar1 = PTR_do_output_section_004c1b24" identifier = identifier) ;) (if_statement "if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }" if (parenthesized_expression "(puVar13 == puVar4)" ( (binary_expression "puVar13 == puVar4" identifier == identifier) )) (compound_statement "{\n          uVar9 = 4;\n        }" { (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" identifier = number_literal) ;) }) (else_clause "else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }" else (compound_statement "{\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }" { (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568" identifier = (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x4568" identifier + number_literal)) ;) (expression_statement "piVar8 = puVar10 + 1;" (assignment_expression "piVar8 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (do_statement "do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);" do (compound_statement "{\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          }" { (while_statement "while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }" { (expression_statement "piVar14 = piVar8;" (assignment_expression "piVar14 = piVar8" identifier = identifier) ;) (expression_statement "puVar4 = puVar13;" (assignment_expression "puVar4 = puVar13" identifier = identifier) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x30);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x30)" identifier = (pointer_expression "*(int **)(param_1 + 0x30)" * (cast_expression "(int **)(param_1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;" if (parenthesized_expression "(*(code **)(*piVar8 + 0x60) == (code *)puVar1)" ( (binary_expression "*(code **)(*piVar8 + 0x60) == (code *)puVar1" (pointer_expression "*(code **)(*piVar8 + 0x60)" * (cast_expression "(code **)(*piVar8 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x60)" ( (binary_expression "*piVar8 + 0x60" (pointer_expression "*piVar8" * identifier) + number_literal) )))) == (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();" (assignment_expression "piVar8 = (int *)(**(code **)(*piVar8 + 0x60))()" identifier = (cast_expression "(int *)(**(code **)(*piVar8 + 0x60))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar8 + 0x60))()" (parenthesized_expression "(**(code **)(*piVar8 + 0x60))" ( (pointer_expression "**(code **)(*piVar8 + 0x60)" * (pointer_expression "*(code **)(*piVar8 + 0x60)" * (cast_expression "(code **)(*piVar8 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x60)" ( (binary_expression "*piVar8 + 0x60" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (piVar8 != (int *)0x0) goto LAB_00222450;" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00222450;" goto statement_identifier ;)) (labeled_statement "LAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);" statement_identifier : (expression_statement "uVar11 = *(undefined4 *)(param_1 + 0x30);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;)) (expression_statement "uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);" (assignment_expression "uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5)" identifier = (call_expression "(*(code *)PTR_gettext_004c5c30)(puVar5)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" ( (pointer_expression "*(code *)PTR_gettext_004c5c30" * (cast_expression "(code *)PTR_gettext_004c5c30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_error_004c1a54)(uVar11,uVar6);" (call_expression "(*(code *)PTR_error_004c1a54)(uVar11,uVar6)" (parenthesized_expression "(*(code *)PTR_error_004c1a54)" ( (pointer_expression "*(code *)PTR_error_004c1a54" * (cast_expression "(code *)PTR_error_004c1a54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,uVar6)" ( identifier , identifier ))) ;) (expression_statement "puVar7 = *(uint **)(param_1 + 0x3c);" (assignment_expression "puVar7 = *(uint **)(param_1 + 0x3c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x3c)" * (cast_expression "(uint **)(param_1 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*piVar14 = 0;" (assignment_expression "*piVar14 = 0" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (expression_statement "puVar13 = puVar4 + 1;" (assignment_expression "puVar13 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar14 + 1;" (assignment_expression "piVar8 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) (if_statement "if (puVar7 == puVar4 + 1) goto LAB_002224e4;" if (parenthesized_expression "(puVar7 == puVar4 + 1)" ( (binary_expression "puVar7 == puVar4 + 1" identifier == (binary_expression "puVar4 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002224e4;" goto statement_identifier ;)) })) (if_statement "if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }" if (parenthesized_expression "((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4)" ( (binary_expression "(uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4" (call_expression "(uint)(piVar8[0xf] - piVar8[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar8[0xf] - piVar8[0xe] >> 2)" ( (binary_expression "piVar8[0xf] - piVar8[0xe] >> 2" (binary_expression "piVar8[0xf] - piVar8[0xe]" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar8[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= (pointer_expression "*puVar4" * identifier)) )) (compound_statement "{\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3404" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);" (assignment_expression "piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4)" identifier = (pointer_expression "*(int **)(piVar8[0xe] + *puVar4 * 4)" * (cast_expression "(int **)(piVar8[0xe] + *puVar4 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0xe] + *puVar4 * 4)" ( (binary_expression "piVar8[0xe] + *puVar4 * 4" (subscript_expression "piVar8[0xe]" identifier [ number_literal ]) + (binary_expression "*puVar4 * 4" (pointer_expression "*puVar4" * identifier) * number_literal)) ))))) ;) (if_statement "if (piVar8 == (int *)0x0) goto LAB_002224a8;" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002224a8;" goto statement_identifier ;)) (labeled_statement "LAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }" statement_identifier : (if_statement "if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }" if (parenthesized_expression "(*(code **)(*piVar8 + 0x2c) == (code *)puVar2)" ( (binary_expression "*(code **)(*piVar8 + 0x2c) == (code *)puVar2" (pointer_expression "*(code **)(*piVar8 + 0x2c)" * (cast_expression "(code **)(*piVar8 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x2c)" ( (binary_expression "*piVar8 + 0x2c" (pointer_expression "*piVar8" * identifier) + number_literal) )))) == (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }" { (expression_statement "iVar3 = piVar8[0x19];" (assignment_expression "iVar3 = piVar8[0x19]" identifier = (subscript_expression "piVar8[0x19]" identifier [ number_literal ])) ;) (if_statement "if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a28" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }" else (compound_statement "{\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }" { (expression_statement "iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);" (assignment_expression "iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8)" identifier = (call_expression "(**(code **)(*piVar8 + 0x2c))(piVar8)" (parenthesized_expression "(**(code **)(*piVar8 + 0x2c))" ( (pointer_expression "**(code **)(*piVar8 + 0x2c)" * (pointer_expression "*(code **)(*piVar8 + 0x2c)" * (cast_expression "(code **)(*piVar8 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x2c)" ( (binary_expression "*piVar8 + 0x2c" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "(piVar8)" ( identifier )))) ;) })))) (expression_statement "puVar7 = *(uint **)(param_1 + 0x3c);" (assignment_expression "puVar7 = *(uint **)(param_1 + 0x3c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x3c)" * (cast_expression "(uint **)(param_1 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*piVar14 = iVar3;" (assignment_expression "*piVar14 = iVar3" (pointer_expression "*piVar14" * identifier) = identifier) ;) (expression_statement "puVar13 = puVar4 + 1;" (assignment_expression "puVar13 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar14 + 1;" (assignment_expression "piVar8 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != puVar4 + 1)" ( (binary_expression "puVar7 != puVar4 + 1" identifier != (binary_expression "puVar4 + 1" identifier + number_literal)) )) ;) (labeled_statement "LAB_002224e4:\n          puVar13 = puVar4 + 1;" statement_identifier : (expression_statement "puVar13 = puVar4 + 1;" (assignment_expression "puVar13 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;)) (expression_statement "uVar9 = (int)piVar14 + (4 - (int)puVar10);" (assignment_expression "uVar9 = (int)piVar14 + (4 - (int)puVar10)" identifier = (binary_expression "(int)piVar14 + (4 - (int)puVar10)" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(4 - (int)puVar10)" ( (binary_expression "4 - (int)puVar10" number_literal - (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (if_statement "if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }" if (parenthesized_expression "(uVar9 != uVar12)" ( (binary_expression "uVar9 != uVar12" identifier != identifier) )) (compound_statement "{\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x4278" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }" if (parenthesized_expression "(*(uint **)(param_1 + 0x38) != puVar13)" ( (binary_expression "*(uint **)(param_1 + 0x38) != puVar13" (pointer_expression "*(uint **)(param_1 + 0x38)" * (cast_expression "(uint **)(param_1 + 0x38)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }" { (expression_statement "*(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);" (assignment_expression "*(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38)" (pointer_expression "*(uint **)(param_1 + 0x3c)" * (cast_expression "(uint **)(param_1 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*(uint **)(param_1 + 0x38)" * (cast_expression "(uint **)(param_1 + 0x38)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) })) (return_statement "return;" return ;) })) })) (expression_statement "FUN_00212d10();" (call_expression "FUN_00212d10()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a78" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* DWARF original prototype: void do_write(Output_data_group<32,_true> * this, Output_file * of) */\n\nvoid __thiscall\ngold::Output_data_group<32,_true>::do_write(Output_data_group<32,_true> *this,Output_file *of)\n\n{\n  Elf_Word *pEVar1;\n  int iVar2;\n  Output_data_group<32,_true> *pOVar3;\n  pointer puVar4;\n  Elf_Word EVar5;\n  Output_section *pOVar6;\n  undefined4 uVar7;\n  Output_file *pOVar8;\n  uint *puVar9;\n  uint uVar10;\n  pointer ppOVar11;\n  pointer puVar12;\n  int extraout_v1;\n  uint *puVar13;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  Output_data_group<32,_true> *this_00;\n  Sized_relobj_file<32,_true> *pSVar14;\n  Output_file *pOVar15;\n  int *piVar16;\n  int *piVar17;\n  size_t sVar18;\n  Output_file *pOVar19;\n  int iVar20;\n  Output_file *pOVar21;\n  uint uVar22;\n  _func_int_varargs *p_Var23;\n  code *pcVar24;\n  Elf_Word *pEVar25;\n  int *piVar26;\n  char *pcVar27;\n  uint uVar28;\n  pointer puVar29;\n  uint *puVar30;\n  Elf_Word *pEVar31;\n  _func_int_varargs *p_Var32;\n  code *pcVar33;\n  code *pcVar34;\n  code *pcVar35;\n  int iVar36;\n  _func_int_varargs *p_Var37;\n  code *pcVar38;\n  undefined4 in_stack_fffffef4;\n  undefined4 in_stack_ffffff3c;\n  undefined4 in_stack_ffffff84;\n  int iVar39;\n  undefined4 in_stack_ffffffcc;\n  \n  iVar36 = 0x4c9240;\n  iVar2 = *(int *)&(this->super_Output_section_data).super_Output_data.field_0x20;\n  iVar39 = 0x4c9240;\n  if (iVar2 << 2 < 0) {\n    pOVar19 = *(Output_file **)&(this->super_Output_section_data).super_Output_data.offset_;\n    iVar20 = (int)(this->super_Output_section_data).super_Output_data.offset_;\n    if (iVar2 << 1 < 0) {\n      uVar28 = (uint)(this->super_Output_section_data).super_Output_data.data_size_;\n      if (*(int *)&(this->super_Output_section_data).super_Output_data.data_size_ == 0) {\n        uVar22 = uVar28 + iVar20;\n        this_00 = this;\n        if (-1 < (int)pOVar19) {\n          this_00 = *(Output_data_group<32,_true> **)&of->file_size_;\n          pOVar3 = (Output_data_group<32,_true> *)((int)&pOVar19->name_ + (uint)(uVar22 < uVar28));\n          pOVar19 = (Output_file *)(uint)((int)this_00 < (int)pOVar3);\n          if (pOVar19 == (Output_file *)0x0) {\n            if (this_00 == pOVar3) goto LAB_0022257c;\n            do {\n              puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                        _M_start;\n              pEVar25 = (Elf_Word *)(of->base_ + iVar20);\n              puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                       _M_finish;\n              *pEVar25 = this->flags_;\n              if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }\n              iVar2 = *(int *)(iVar36 + -0x7924);\n              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);\n              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);\n              pEVar1 = pEVar25 + 1;\nLAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }\n              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;\n              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }\n              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;\n              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222564:\n              of = (Output_file *)0x1043;\n              pOVar19 = (Output_file *)(iVar20 - 0x2a28);\n              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n              (**(code **)(iVar36 + -0x7810))();\n              iVar20 = extraout_v1;\nLAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);\n            } while (uVar22 == 0);\n          }\n        }\n        Output_file::get_output_view\n                  ((Output_file *)this_00,CONCAT44(iVar39,in_stack_ffffffcc),(size_t)of,pOVar19);\n        goto LAB_0022259c;\n      }\n      goto LAB_002225d0;\n    }\n  }\n  else {\nLAB_0022259c:\n    iVar39 = *(int *)(iVar36 + -0x7924) + -0x2a78;\n    (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x3574,0xe3,iVar39);\nLAB_002225b8:\n    (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7924) + -0x48b4,0x549,iVar39 + -0x4278);\nLAB_002225d0:\n    (**(code **)(iVar36 + -0x7810))\n              (*(int *)(iVar36 + -0x7fc4) + 0x4584,0xc0,*(int *)(iVar36 + -0x7924) + -0x32e0);\n  }\n  sVar18 = 0xcf;\n  pcVar33 = *(code **)(iVar36 + -0x7810);\n  pOVar19 = (Output_file *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n  (*pcVar33)(pOVar19,0xcf,*(int *)(iVar36 + -0x7924) + -0x29fc);\n  pcVar33 = pcVar33 + 0x2a6c38;\n  if (*(int *)&pOVar19[1].file_size_ << 2 < 0) {\n    pOVar21 = (Output_file *)pOVar19[1].name_;\n    iVar36 = pOVar19[1].o_;\n    if (-1 < *(int *)&pOVar19[1].file_size_ << 1) goto LAB_0022289c;\n    uVar28 = *(uint *)&pOVar19->map_is_anonymous_;\n    if (pOVar19->base_ == (uchar *)0x0) {\n      uVar22 = uVar28 + iVar36;\n      pOVar15 = pOVar19;\n      pcVar35 = pcVar33;\n      if (-1 < (int)pOVar21) {\n        pOVar15 = *(Output_file **)(sVar18 + 8);\n        pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n        pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n        if (pOVar21 == (Output_file *)0x0) {\n          if (pOVar15 == pOVar8) goto LAB_0022282c;\n          do {\n            puVar30 = *(uint **)&pOVar19[2].file_size_;\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            *piVar26 = pOVar19[2].o_;\n            if (puVar30 == puVar9) {\n              uVar22 = 4;\nLAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }\n              goto LAB_00222868;\n            }\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            pcVar38 = *(code **)(pcVar33 + -0x771c);\n            pcVar24 = *(code **)(pcVar33 + -0x70a4);\n            piVar16 = piVar26 + 1;\nLAB_00222730:\n            while( true ) {\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }\n            if (*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)) {\n              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\n              if (piVar16 == (int *)0x0) goto LAB_00222758;\nLAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = iVar2;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              if (puVar13 == puVar9 + 1) goto LAB_00222794;\n              goto LAB_00222730;\n            }\n            iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404;\n            (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222814:\n            sVar18 = 0x1043;\n            pOVar21 = (Output_file *)(iVar39 - 0x2a28);\n            pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);\n            (**(code **)(pcVar33 + -0x7810))();\n            iVar36 = extraout_v1_00;\nLAB_0022282c:\n            uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);\n          } while (uVar22 == 0);\n        }\n      }\n      Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_ffffff84),sVar18,pOVar21);\n      goto LAB_0022284c;\n    }\n  }\n  else {\nLAB_0022284c:\n    iVar36 = *(int *)(pcVar33 + -0x7924) + -0x2a78;\n    (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xe3,iVar36);\nLAB_00222868:\n    (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x4290);\n  }\n  (**(code **)(pcVar33 + -0x7810))\n            (*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0);\nLAB_0022289c:\n  sVar18 = 0xcf;\n  pcVar35 = *(code **)(pcVar33 + -0x7810);\n  pOVar19 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);\n  (*pcVar35)(pOVar19,0xcf,*(int *)(pcVar33 + -0x7924) + -0x29fc);\n  pcVar35 = pcVar35 + 0x2a6988;\n  if (*(int *)&pOVar19[1].file_size_ << 2 < 0) {\n    pOVar21 = (Output_file *)pOVar19[1].name_;\n    iVar36 = pOVar19[1].o_;\n    if (*(int *)&pOVar19[1].file_size_ << 1 < 0) {\n      uVar28 = *(uint *)&pOVar19->map_is_anonymous_;\n      if (pOVar19->base_ == (uchar *)0x0) {\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar33 = pcVar35;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222ad8;\nLAB_00222948:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar35 + -0x7924);\n              pcVar38 = *(code **)(pcVar35 + -0x771c);\n              pcVar24 = *(code **)(pcVar35 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222a04:\n            iVar36 = *(int *)(pcVar35 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222b4c;\n          }\n        }\nLAB_00222aec:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar33,in_stack_ffffff3c),sVar18,pOVar21);\n      }\n      (**(code **)(pcVar35 + -0x7810))\n                (*(int *)(pcVar35 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar35 + -0x7924) + -0x32e0);\n    }\n    (**(code **)(pcVar35 + -0x7810))\n              (*(int *)(pcVar35 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar35 + -0x7924) + -0x29fc);\n  }\n  iVar36 = *(int *)(pcVar35 + -0x7924) + -0x2a78;\n  (**(code **)(pcVar35 + -0x7810))(*(int *)(pcVar35 + -0x7fc4) + 0x3574,0xe3,iVar36);\nLAB_00222b4c:\n  sVar18 = 0x549;\n  pcVar33 = *(code **)(pcVar35 + -0x7810);\n  pOVar19 = (Output_file *)(*(int *)(pcVar35 + -0x7924) + -0x48b4);\n  (*pcVar33)(pOVar19,0x549,iVar36 + -0x4284);\n  pcVar33 = pcVar33 + 0x2a66dc;\n  if (*(int *)&pOVar19[1].file_size_ << 2 < 0) {\n    pOVar21 = (Output_file *)pOVar19[1].name_;\n    iVar36 = pOVar19[1].o_;\n    if (*(int *)&pOVar19[1].file_size_ << 1 < 0) {\n      uVar28 = *(uint *)&pOVar19->map_is_anonymous_;\n      if (pOVar19->base_ == (uchar *)0x0) {\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar35 = pcVar33;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222d84;\nLAB_00222bf4:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              pcVar38 = *(code **)(pcVar33 + -0x771c);\n              pcVar24 = *(code **)(pcVar33 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222cb0:\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222df8;\n          }\n        }\nLAB_00222d98:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_fffffef4),sVar18,pOVar21);\n      }\n      (**(code **)(pcVar33 + -0x7810))\n                (*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0);\n    }\n    (**(code **)(pcVar33 + -0x7810))\n              (*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar33 + -0x7924) + -0x29fc);\n  }\n  iVar36 = *(int *)(pcVar33 + -0x7924) + -0x2a78;\n  (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xe3,iVar36);\nLAB_00222df8:\n  (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x426c);\n  Output_data::default_alignment();\n  return;\nLAB_00222aa4:\n  (**(code **)(pcVar35 + -0x7810))\n            (*(int *)(pcVar35 + -0x7fc4) + 0x3574,0x1043,*(int *)(pcVar35 + -0x7924) + -0x2a28);\nLAB_00222abc:\n  sVar18 = 0x5c8;\n  pOVar21 = (Output_file *)(*(int *)(pcVar35 + -0x7924) - 0x3404);\n  pOVar15 = (Output_file *)(*(int *)(pcVar35 + -0x7fc4) + 0x4570);\n  (**(code **)(pcVar35 + -0x7810))();\n  iVar36 = extraout_v1_01;\nLAB_00222ad8:\n  uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);\n  if (uVar22 != 0) goto LAB_00222aec;\n  goto LAB_00222948;\nLAB_00222d50:\n  (**(code **)(pcVar33 + -0x7810))\n            (*(int *)(pcVar33 + -0x7fc4) + 0x3574,0x1043,*(int *)(pcVar33 + -0x7924) + -0x2a28);\nLAB_00222d68:\n  sVar18 = 0x5c8;\n  pOVar21 = (Output_file *)(*(int *)(pcVar33 + -0x7924) - 0x3404);\n  pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x4570);\n  (**(code **)(pcVar33 + -0x7810))();\n  iVar36 = extraout_v1_02;\nLAB_00222d84:\n  uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);\n  if (uVar22 != 0) goto LAB_00222d98;\n  goto LAB_00222bf4;\n}\n\n" comment comment comment comment comment comment comment comment (declaration "void __thiscall\ngold::Output_data_group<32,_true>::do_write(Output_data_group<32,_true> *this,Output_file *of)\n\n{\n  Elf_Word *pEVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>::do_write(Output_data_group<32,_true> *this,Output_file *of)\n\n{\n  Elf_Word" identifier > : : (function_declarator "do_write(Output_data_group<32,_true> *this,Output_file *of)" identifier (parameter_list "(Output_data_group<32,_true> *this,Output_file *of)" ( (parameter_declaration "Output_data_group" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * identifier)) ))) { identifier) (pointer_declarator "*pEVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "Output_data_group<32,_true> *pOVar3;" (update_expression "Output_data_group<32,_true> *pOVar3" (binary_expression "Output_data_group<32,_true> *pOVar3" (binary_expression "Output_data_group<32" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*pOVar3" * identifier)) --) ;) (declaration "pointer puVar4;" type_identifier identifier ;) (declaration "Elf_Word EVar5;" type_identifier identifier ;) (declaration "Output_section *pOVar6;" type_identifier (pointer_declarator "*pOVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "Output_file *pOVar8;" type_identifier (pointer_declarator "*pOVar8" * identifier) ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "pointer ppOVar11;" type_identifier identifier ;) (declaration "pointer puVar12;" type_identifier identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int extraout_v1_00;" primitive_type identifier ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_02;" primitive_type identifier ;) (expression_statement "Output_data_group<32,_true> *this_00;" (update_expression "Output_data_group<32,_true> *this_00" (binary_expression "Output_data_group<32,_true> *this_00" (binary_expression "Output_data_group<32" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*this_00" * identifier)) --) ;) (expression_statement "Sized_relobj_file<32,_true> *pSVar14;" (update_expression "Sized_relobj_file<32,_true> *pSVar14" (binary_expression "Sized_relobj_file<32,_true> *pSVar14" (binary_expression "Sized_relobj_file<32" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*pSVar14" * identifier)) --) ;) (declaration "Output_file *pOVar15;" type_identifier (pointer_declarator "*pOVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "size_t sVar18;" primitive_type identifier ;) (declaration "Output_file *pOVar19;" type_identifier (pointer_declarator "*pOVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "Output_file *pOVar21;" type_identifier (pointer_declarator "*pOVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "_func_int_varargs *p_Var23;" type_identifier (pointer_declarator "*p_Var23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "Elf_Word *pEVar25;" type_identifier (pointer_declarator "*pEVar25" * identifier) ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "char *pcVar27;" primitive_type (pointer_declarator "*pcVar27" * identifier) ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "pointer puVar29;" type_identifier identifier ;) (declaration "uint *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "Elf_Word *pEVar31;" type_identifier (pointer_declarator "*pEVar31" * identifier) ;) (declaration "_func_int_varargs *p_Var32;" type_identifier (pointer_declarator "*p_Var32" * identifier) ;) (declaration "code *pcVar33;" type_identifier (pointer_declarator "*pcVar33" * identifier) ;) (declaration "code *pcVar34;" type_identifier (pointer_declarator "*pcVar34" * identifier) ;) (declaration "code *pcVar35;" type_identifier (pointer_declarator "*pcVar35" * identifier) ;) (declaration "int iVar36;" primitive_type identifier ;) (declaration "_func_int_varargs *p_Var37;" type_identifier (pointer_declarator "*p_Var37" * identifier) ;) (declaration "code *pcVar38;" type_identifier (pointer_declarator "*pcVar38" * identifier) ;) (declaration "undefined4 in_stack_fffffef4;" type_identifier identifier ;) (declaration "undefined4 in_stack_ffffff3c;" type_identifier identifier ;) (declaration "undefined4 in_stack_ffffff84;" type_identifier identifier ;) (declaration "int iVar39;" primitive_type identifier ;) (declaration "undefined4 in_stack_ffffffcc;" type_identifier identifier ;) (expression_statement "iVar36 = 0x4c9240;" (assignment_expression "iVar36 = 0x4c9240" identifier = number_literal) ;) (expression_statement "iVar2 = *(int *)&(this->super_Output_section_data).super_Output_data.field_0x20;" (assignment_expression "iVar2 = *(int *)&(this->super_Output_section_data).super_Output_data.field_0x20" identifier = (pointer_expression "*(int *)&(this->super_Output_section_data).super_Output_data.field_0x20" * (cast_expression "(int *)&(this->super_Output_section_data).super_Output_data.field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_section_data).super_Output_data.field_0x20" & (field_expression "(this->super_Output_section_data).super_Output_data.field_0x20" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier))))) ;) (expression_statement "iVar39 = 0x4c9240;" (assignment_expression "iVar39 = 0x4c9240" identifier = number_literal) ;) (if_statement "if (iVar2 << 2 < 0) {\n    pOVar19 = *(Output_file **)&(this->super_Output_section_data).super_Output_data.offset_;\n    iVar20 = (int)(this->super_Output_section_data).super_Output_data.offset_;\n    if (iVar2 << 1 < 0) {\n      uVar28 = (uint)(this->super_Output_section_data).super_Output_data.data_size_;\n      if (*(int *)&(this->super_Output_section_data).super_Output_data.data_size_ == 0) {\n        uVar22 = uVar28 + iVar20;\n        this_00 = this;\n        if (-1 < (int)pOVar19) {\n          this_00 = *(Output_data_group<32,_true> **)&of->file_size_;\n          pOVar3 = (Output_data_group<32,_true> *)((int)&pOVar19->name_ + (uint)(uVar22 < uVar28));\n          pOVar19 = (Output_file *)(uint)((int)this_00 < (int)pOVar3);\n          if (pOVar19 == (Output_file *)0x0) {\n            if (this_00 == pOVar3) goto LAB_0022257c;\n            do {\n              puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                        _M_start;\n              pEVar25 = (Elf_Word *)(of->base_ + iVar20);\n              puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                       _M_finish;\n              *pEVar25 = this->flags_;\n              if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }\n              iVar2 = *(int *)(iVar36 + -0x7924);\n              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);\n              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);\n              pEVar1 = pEVar25 + 1;\nLAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }\n              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;\n              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }\n              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;\n              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222564:\n              of = (Output_file *)0x1043;\n              pOVar19 = (Output_file *)(iVar20 - 0x2a28);\n              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n              (**(code **)(iVar36 + -0x7810))();\n              iVar20 = extraout_v1;\nLAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);\n            } while (uVar22 == 0);\n          }\n        }\n        Output_file::get_output_view\n                  ((Output_file *)this_00,CONCAT44(iVar39,in_stack_ffffffcc),(size_t)of,pOVar19);\n        goto LAB_0022259c;\n      }\n      goto LAB_002225d0;\n    }\n  }\n  else {\nLAB_0022259c:\n    iVar39 = *(int *)(iVar36 + -0x7924) + -0x2a78;\n    (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x3574,0xe3,iVar39);\nLAB_002225b8:\n    (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7924) + -0x48b4,0x549,iVar39 + -0x4278);\nLAB_002225d0:\n    (**(code **)(iVar36 + -0x7810))\n              (*(int *)(iVar36 + -0x7fc4) + 0x4584,0xc0,*(int *)(iVar36 + -0x7924) + -0x32e0);\n  }" if (parenthesized_expression "(iVar2 << 2 < 0)" ( (binary_expression "iVar2 << 2 < 0" (binary_expression "iVar2 << 2" identifier << number_literal) < number_literal) )) (compound_statement "{\n    pOVar19 = *(Output_file **)&(this->super_Output_section_data).super_Output_data.offset_;\n    iVar20 = (int)(this->super_Output_section_data).super_Output_data.offset_;\n    if (iVar2 << 1 < 0) {\n      uVar28 = (uint)(this->super_Output_section_data).super_Output_data.data_size_;\n      if (*(int *)&(this->super_Output_section_data).super_Output_data.data_size_ == 0) {\n        uVar22 = uVar28 + iVar20;\n        this_00 = this;\n        if (-1 < (int)pOVar19) {\n          this_00 = *(Output_data_group<32,_true> **)&of->file_size_;\n          pOVar3 = (Output_data_group<32,_true> *)((int)&pOVar19->name_ + (uint)(uVar22 < uVar28));\n          pOVar19 = (Output_file *)(uint)((int)this_00 < (int)pOVar3);\n          if (pOVar19 == (Output_file *)0x0) {\n            if (this_00 == pOVar3) goto LAB_0022257c;\n            do {\n              puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                        _M_start;\n              pEVar25 = (Elf_Word *)(of->base_ + iVar20);\n              puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                       _M_finish;\n              *pEVar25 = this->flags_;\n              if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }\n              iVar2 = *(int *)(iVar36 + -0x7924);\n              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);\n              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);\n              pEVar1 = pEVar25 + 1;\nLAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }\n              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;\n              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }\n              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;\n              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222564:\n              of = (Output_file *)0x1043;\n              pOVar19 = (Output_file *)(iVar20 - 0x2a28);\n              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n              (**(code **)(iVar36 + -0x7810))();\n              iVar20 = extraout_v1;\nLAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);\n            } while (uVar22 == 0);\n          }\n        }\n        Output_file::get_output_view\n                  ((Output_file *)this_00,CONCAT44(iVar39,in_stack_ffffffcc),(size_t)of,pOVar19);\n        goto LAB_0022259c;\n      }\n      goto LAB_002225d0;\n    }\n  }" { (expression_statement "pOVar19 = *(Output_file **)&(this->super_Output_section_data).super_Output_data.offset_;" (assignment_expression "pOVar19 = *(Output_file **)&(this->super_Output_section_data).super_Output_data.offset_" identifier = (pointer_expression "*(Output_file **)&(this->super_Output_section_data).super_Output_data.offset_" * (cast_expression "(Output_file **)&(this->super_Output_section_data).super_Output_data.offset_" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(this->super_Output_section_data).super_Output_data.offset_" & (field_expression "(this->super_Output_section_data).super_Output_data.offset_" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier))))) ;) (expression_statement "iVar20 = (int)(this->super_Output_section_data).super_Output_data.offset_;" (assignment_expression "iVar20 = (int)(this->super_Output_section_data).super_Output_data.offset_" identifier = (cast_expression "(int)(this->super_Output_section_data).super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->super_Output_section_data).super_Output_data.offset_" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if (iVar2 << 1 < 0) {\n      uVar28 = (uint)(this->super_Output_section_data).super_Output_data.data_size_;\n      if (*(int *)&(this->super_Output_section_data).super_Output_data.data_size_ == 0) {\n        uVar22 = uVar28 + iVar20;\n        this_00 = this;\n        if (-1 < (int)pOVar19) {\n          this_00 = *(Output_data_group<32,_true> **)&of->file_size_;\n          pOVar3 = (Output_data_group<32,_true> *)((int)&pOVar19->name_ + (uint)(uVar22 < uVar28));\n          pOVar19 = (Output_file *)(uint)((int)this_00 < (int)pOVar3);\n          if (pOVar19 == (Output_file *)0x0) {\n            if (this_00 == pOVar3) goto LAB_0022257c;\n            do {\n              puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                        _M_start;\n              pEVar25 = (Elf_Word *)(of->base_ + iVar20);\n              puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                       _M_finish;\n              *pEVar25 = this->flags_;\n              if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }\n              iVar2 = *(int *)(iVar36 + -0x7924);\n              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);\n              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);\n              pEVar1 = pEVar25 + 1;\nLAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }\n              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;\n              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }\n              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;\n              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222564:\n              of = (Output_file *)0x1043;\n              pOVar19 = (Output_file *)(iVar20 - 0x2a28);\n              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n              (**(code **)(iVar36 + -0x7810))();\n              iVar20 = extraout_v1;\nLAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);\n            } while (uVar22 == 0);\n          }\n        }\n        Output_file::get_output_view\n                  ((Output_file *)this_00,CONCAT44(iVar39,in_stack_ffffffcc),(size_t)of,pOVar19);\n        goto LAB_0022259c;\n      }\n      goto LAB_002225d0;\n    }" if (parenthesized_expression "(iVar2 << 1 < 0)" ( (binary_expression "iVar2 << 1 < 0" (binary_expression "iVar2 << 1" identifier << number_literal) < number_literal) )) (compound_statement "{\n      uVar28 = (uint)(this->super_Output_section_data).super_Output_data.data_size_;\n      if (*(int *)&(this->super_Output_section_data).super_Output_data.data_size_ == 0) {\n        uVar22 = uVar28 + iVar20;\n        this_00 = this;\n        if (-1 < (int)pOVar19) {\n          this_00 = *(Output_data_group<32,_true> **)&of->file_size_;\n          pOVar3 = (Output_data_group<32,_true> *)((int)&pOVar19->name_ + (uint)(uVar22 < uVar28));\n          pOVar19 = (Output_file *)(uint)((int)this_00 < (int)pOVar3);\n          if (pOVar19 == (Output_file *)0x0) {\n            if (this_00 == pOVar3) goto LAB_0022257c;\n            do {\n              puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                        _M_start;\n              pEVar25 = (Elf_Word *)(of->base_ + iVar20);\n              puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                       _M_finish;\n              *pEVar25 = this->flags_;\n              if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }\n              iVar2 = *(int *)(iVar36 + -0x7924);\n              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);\n              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);\n              pEVar1 = pEVar25 + 1;\nLAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }\n              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;\n              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }\n              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;\n              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222564:\n              of = (Output_file *)0x1043;\n              pOVar19 = (Output_file *)(iVar20 - 0x2a28);\n              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n              (**(code **)(iVar36 + -0x7810))();\n              iVar20 = extraout_v1;\nLAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);\n            } while (uVar22 == 0);\n          }\n        }\n        Output_file::get_output_view\n                  ((Output_file *)this_00,CONCAT44(iVar39,in_stack_ffffffcc),(size_t)of,pOVar19);\n        goto LAB_0022259c;\n      }\n      goto LAB_002225d0;\n    }" { (expression_statement "uVar28 = (uint)(this->super_Output_section_data).super_Output_data.data_size_;" (assignment_expression "uVar28 = (uint)(this->super_Output_section_data).super_Output_data.data_size_" identifier = (field_expression "(uint)(this->super_Output_section_data).super_Output_data.data_size_" (field_expression "(uint)(this->super_Output_section_data).super_Output_data" (call_expression "(uint)(this->super_Output_section_data)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ;) (if_statement "if (*(int *)&(this->super_Output_section_data).super_Output_data.data_size_ == 0) {\n        uVar22 = uVar28 + iVar20;\n        this_00 = this;\n        if (-1 < (int)pOVar19) {\n          this_00 = *(Output_data_group<32,_true> **)&of->file_size_;\n          pOVar3 = (Output_data_group<32,_true> *)((int)&pOVar19->name_ + (uint)(uVar22 < uVar28));\n          pOVar19 = (Output_file *)(uint)((int)this_00 < (int)pOVar3);\n          if (pOVar19 == (Output_file *)0x0) {\n            if (this_00 == pOVar3) goto LAB_0022257c;\n            do {\n              puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                        _M_start;\n              pEVar25 = (Elf_Word *)(of->base_ + iVar20);\n              puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                       _M_finish;\n              *pEVar25 = this->flags_;\n              if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }\n              iVar2 = *(int *)(iVar36 + -0x7924);\n              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);\n              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);\n              pEVar1 = pEVar25 + 1;\nLAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }\n              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;\n              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }\n              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;\n              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222564:\n              of = (Output_file *)0x1043;\n              pOVar19 = (Output_file *)(iVar20 - 0x2a28);\n              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n              (**(code **)(iVar36 + -0x7810))();\n              iVar20 = extraout_v1;\nLAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);\n            } while (uVar22 == 0);\n          }\n        }\n        Output_file::get_output_view\n                  ((Output_file *)this_00,CONCAT44(iVar39,in_stack_ffffffcc),(size_t)of,pOVar19);\n        goto LAB_0022259c;\n      }" if (parenthesized_expression "(*(int *)&(this->super_Output_section_data).super_Output_data.data_size_ == 0)" ( (binary_expression "*(int *)&(this->super_Output_section_data).super_Output_data.data_size_ == 0" (pointer_expression "*(int *)&(this->super_Output_section_data).super_Output_data.data_size_" * (cast_expression "(int *)&(this->super_Output_section_data).super_Output_data.data_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_section_data).super_Output_data.data_size_" & (field_expression "(this->super_Output_section_data).super_Output_data.data_size_" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) == number_literal) )) (compound_statement "{\n        uVar22 = uVar28 + iVar20;\n        this_00 = this;\n        if (-1 < (int)pOVar19) {\n          this_00 = *(Output_data_group<32,_true> **)&of->file_size_;\n          pOVar3 = (Output_data_group<32,_true> *)((int)&pOVar19->name_ + (uint)(uVar22 < uVar28));\n          pOVar19 = (Output_file *)(uint)((int)this_00 < (int)pOVar3);\n          if (pOVar19 == (Output_file *)0x0) {\n            if (this_00 == pOVar3) goto LAB_0022257c;\n            do {\n              puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                        _M_start;\n              pEVar25 = (Elf_Word *)(of->base_ + iVar20);\n              puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                       _M_finish;\n              *pEVar25 = this->flags_;\n              if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }\n              iVar2 = *(int *)(iVar36 + -0x7924);\n              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);\n              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);\n              pEVar1 = pEVar25 + 1;\nLAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }\n              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;\n              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }\n              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;\n              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222564:\n              of = (Output_file *)0x1043;\n              pOVar19 = (Output_file *)(iVar20 - 0x2a28);\n              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n              (**(code **)(iVar36 + -0x7810))();\n              iVar20 = extraout_v1;\nLAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);\n            } while (uVar22 == 0);\n          }\n        }\n        Output_file::get_output_view\n                  ((Output_file *)this_00,CONCAT44(iVar39,in_stack_ffffffcc),(size_t)of,pOVar19);\n        goto LAB_0022259c;\n      }" { (expression_statement "uVar22 = uVar28 + iVar20;" (assignment_expression "uVar22 = uVar28 + iVar20" identifier = (binary_expression "uVar28 + iVar20" identifier + identifier)) ;) (expression_statement "this_00 = this;" (assignment_expression "this_00 = this" identifier = identifier) ;) (if_statement "if (-1 < (int)pOVar19) {\n          this_00 = *(Output_data_group<32,_true> **)&of->file_size_;\n          pOVar3 = (Output_data_group<32,_true> *)((int)&pOVar19->name_ + (uint)(uVar22 < uVar28));\n          pOVar19 = (Output_file *)(uint)((int)this_00 < (int)pOVar3);\n          if (pOVar19 == (Output_file *)0x0) {\n            if (this_00 == pOVar3) goto LAB_0022257c;\n            do {\n              puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                        _M_start;\n              pEVar25 = (Elf_Word *)(of->base_ + iVar20);\n              puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                       _M_finish;\n              *pEVar25 = this->flags_;\n              if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }\n              iVar2 = *(int *)(iVar36 + -0x7924);\n              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);\n              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);\n              pEVar1 = pEVar25 + 1;\nLAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }\n              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;\n              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }\n              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;\n              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222564:\n              of = (Output_file *)0x1043;\n              pOVar19 = (Output_file *)(iVar20 - 0x2a28);\n              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n              (**(code **)(iVar36 + -0x7810))();\n              iVar20 = extraout_v1;\nLAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);\n            } while (uVar22 == 0);\n          }\n        }" if (parenthesized_expression "(-1 < (int)pOVar19)" ( (binary_expression "-1 < (int)pOVar19" number_literal < (cast_expression "(int)pOVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          this_00 = *(Output_data_group<32,_true> **)&of->file_size_;\n          pOVar3 = (Output_data_group<32,_true> *)((int)&pOVar19->name_ + (uint)(uVar22 < uVar28));\n          pOVar19 = (Output_file *)(uint)((int)this_00 < (int)pOVar3);\n          if (pOVar19 == (Output_file *)0x0) {\n            if (this_00 == pOVar3) goto LAB_0022257c;\n            do {\n              puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                        _M_start;\n              pEVar25 = (Elf_Word *)(of->base_ + iVar20);\n              puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                       _M_finish;\n              *pEVar25 = this->flags_;\n              if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }\n              iVar2 = *(int *)(iVar36 + -0x7924);\n              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);\n              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);\n              pEVar1 = pEVar25 + 1;\nLAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }\n              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;\n              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }\n              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;\n              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222564:\n              of = (Output_file *)0x1043;\n              pOVar19 = (Output_file *)(iVar20 - 0x2a28);\n              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n              (**(code **)(iVar36 + -0x7810))();\n              iVar20 = extraout_v1;\nLAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);\n            } while (uVar22 == 0);\n          }\n        }" { (expression_statement "this_00 = *(Output_data_group<32,_true> **)&of->file_size_;" (assignment_expression "this_00 = *(Output_data_group<32,_true> **)&of->file_size_" identifier = (binary_expression "*(Output_data_group<32,_true> **)&of->file_size_" (pointer_expression "*(Output_data_group<32,_true> **)" * (parenthesized_expression "(Output_data_group<32,_true> **)" ( (comma_expression "Output_data_group<32,_true> **" (binary_expression "Output_data_group<32" identifier < number_literal) , (binary_expression "_true> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) ))) & (field_expression "of->file_size_" identifier -> field_identifier))) ;) (expression_statement "pOVar3 = (Output_data_group<32,_true> *)((int)&pOVar19->name_ + (uint)(uVar22 < uVar28));" (assignment_expression "pOVar3 = (Output_data_group<32,_true> *)((int)&pOVar19->name_ + (uint)(uVar22 < uVar28))" identifier = (call_expression "(Output_data_group<32,_true> *)((int)&pOVar19->name_ + (uint)(uVar22 < uVar28))" (parenthesized_expression "(Output_data_group<32,_true> *)" ( (comma_expression "Output_data_group<32,_true> *" (binary_expression "Output_data_group<32" identifier < number_literal) , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "((int)&pOVar19->name_ + (uint)(uVar22 < uVar28))" ( (binary_expression "(int)&pOVar19->name_ + (uint)(uVar22 < uVar28)" (cast_expression "(int)&pOVar19->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar19->name_" & (field_expression "pOVar19->name_" identifier -> field_identifier))) + (call_expression "(uint)(uVar22 < uVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < uVar28)" ( (binary_expression "uVar22 < uVar28" identifier < identifier) )))) )))) ;) (expression_statement "pOVar19 = (Output_file *)(uint)((int)this_00 < (int)pOVar3);" (assignment_expression "pOVar19 = (Output_file *)(uint)((int)this_00 < (int)pOVar3)" identifier = (cast_expression "(Output_file *)(uint)((int)this_00 < (int)pOVar3)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)this_00 < (int)pOVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)this_00 < (int)pOVar3)" ( (binary_expression "(int)this_00 < (int)pOVar3" (cast_expression "(int)this_00" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pOVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (pOVar19 == (Output_file *)0x0) {\n            if (this_00 == pOVar3) goto LAB_0022257c;\n            do {\n              puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                        _M_start;\n              pEVar25 = (Elf_Word *)(of->base_ + iVar20);\n              puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                       _M_finish;\n              *pEVar25 = this->flags_;\n              if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }\n              iVar2 = *(int *)(iVar36 + -0x7924);\n              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);\n              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);\n              pEVar1 = pEVar25 + 1;\nLAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }\n              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;\n              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }\n              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;\n              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222564:\n              of = (Output_file *)0x1043;\n              pOVar19 = (Output_file *)(iVar20 - 0x2a28);\n              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n              (**(code **)(iVar36 + -0x7810))();\n              iVar20 = extraout_v1;\nLAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);\n            } while (uVar22 == 0);\n          }" if (parenthesized_expression "(pOVar19 == (Output_file *)0x0)" ( (binary_expression "pOVar19 == (Output_file *)0x0" identifier == (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (this_00 == pOVar3) goto LAB_0022257c;\n            do {\n              puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                        _M_start;\n              pEVar25 = (Elf_Word *)(of->base_ + iVar20);\n              puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                       _M_finish;\n              *pEVar25 = this->flags_;\n              if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }\n              iVar2 = *(int *)(iVar36 + -0x7924);\n              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);\n              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);\n              pEVar1 = pEVar25 + 1;\nLAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }\n              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;\n              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }\n              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;\n              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222564:\n              of = (Output_file *)0x1043;\n              pOVar19 = (Output_file *)(iVar20 - 0x2a28);\n              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n              (**(code **)(iVar36 + -0x7810))();\n              iVar20 = extraout_v1;\nLAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);\n            } while (uVar22 == 0);\n          }" { (if_statement "if (this_00 == pOVar3) goto LAB_0022257c;" if (parenthesized_expression "(this_00 == pOVar3)" ( (binary_expression "this_00 == pOVar3" identifier == identifier) )) (goto_statement "goto LAB_0022257c;" goto statement_identifier ;)) (do_statement "do {\n              puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                        _M_start;\n              pEVar25 = (Elf_Word *)(of->base_ + iVar20);\n              puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                       _M_finish;\n              *pEVar25 = this->flags_;\n              if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }\n              iVar2 = *(int *)(iVar36 + -0x7924);\n              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);\n              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);\n              pEVar1 = pEVar25 + 1;\nLAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }\n              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;\n              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }\n              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;\n              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222564:\n              of = (Output_file *)0x1043;\n              pOVar19 = (Output_file *)(iVar20 - 0x2a28);\n              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n              (**(code **)(iVar36 + -0x7810))();\n              iVar20 = extraout_v1;\nLAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);\n            } while (uVar22 == 0);" do (compound_statement "{\n              puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                        _M_start;\n              pEVar25 = (Elf_Word *)(of->base_ + iVar20);\n              puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                       _M_finish;\n              *pEVar25 = this->flags_;\n              if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }\n              iVar2 = *(int *)(iVar36 + -0x7924);\n              p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);\n              p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);\n              pEVar1 = pEVar25 + 1;\nLAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }\n              ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;\n              if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }\n              iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;\n              (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222564:\n              of = (Output_file *)0x1043;\n              pOVar19 = (Output_file *)(iVar20 - 0x2a28);\n              this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);\n              (**(code **)(iVar36 + -0x7810))();\n              iVar20 = extraout_v1;\nLAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);\n            }" { (ERROR "puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std::" (comma_expression "puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int,_std" (assignment_expression "puVar29 = (this->input_shndxes_).\n                        super__Vector_base<unsigned_int" identifier = (binary_expression "(this->input_shndxes_).\n                        super__Vector_base<unsigned_int" (field_expression "(this->input_shndxes_).\n                        super__Vector_base" (parenthesized_expression "(this->input_shndxes_)" ( (field_expression "this->input_shndxes_" identifier -> field_identifier) )) . field_identifier) < identifier)) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl.\n                        _M_start;" (field_expression "allocator<unsigned_int>_>._M_impl.\n                        _M_start" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "pEVar25 = (Elf_Word *)(of->base_ + iVar20);" (assignment_expression "pEVar25 = (Elf_Word *)(of->base_ + iVar20)" identifier = (cast_expression "(Elf_Word *)(of->base_ + iVar20)" ( (type_descriptor "Elf_Word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(of->base_ + iVar20)" ( (binary_expression "of->base_ + iVar20" (field_expression "of->base_" identifier -> field_identifier) + identifier) )))) ;) (ERROR "puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std::" (comma_expression "puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int,_std" (assignment_expression "puVar4 = (this->input_shndxes_).\n                       super__Vector_base<unsigned_int" identifier = (binary_expression "(this->input_shndxes_).\n                       super__Vector_base<unsigned_int" (field_expression "(this->input_shndxes_).\n                       super__Vector_base" (parenthesized_expression "(this->input_shndxes_)" ( (field_expression "this->input_shndxes_" identifier -> field_identifier) )) . field_identifier) < identifier)) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl.\n                       _M_finish;" (field_expression "allocator<unsigned_int>_>._M_impl.\n                       _M_finish" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "*pEVar25 = this->flags_;" (assignment_expression "*pEVar25 = this->flags_" (pointer_expression "*pEVar25" * identifier) = (field_expression "this->flags_" identifier -> field_identifier)) ;) (if_statement "if (puVar29 == puVar4) {\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }" if (parenthesized_expression "(puVar29 == puVar4)" ( (binary_expression "puVar29 == puVar4" identifier == identifier) )) (compound_statement "{\n                uVar22 = 4;\nLAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);\n                if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }\n                goto LAB_002225b8;\n              }" { (expression_statement "uVar22 = 4;" (assignment_expression "uVar22 = 4" identifier = number_literal) ;) (labeled_statement "LAB_002224e8:\n                iVar39 = *(int *)(iVar36 + -0x7924);" statement_identifier : (expression_statement "iVar39 = *(int *)(iVar36 + -0x7924);" (assignment_expression "iVar39 = *(int *)(iVar36 + -0x7924)" identifier = (pointer_expression "*(int *)(iVar36 + -0x7924)" * (cast_expression "(int *)(iVar36 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7924)" ( (binary_expression "iVar36 + -0x7924" identifier + number_literal) ))))) ;)) (if_statement "if (uVar22 == uVar28) {\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }" if (parenthesized_expression "(uVar22 == uVar28)" ( (binary_expression "uVar22 == uVar28" identifier == identifier) )) (compound_statement "{\n                  puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                           _M_start;\n                  if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }\n                  return;\n                }" { (ERROR "puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std::" (comma_expression "puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int,_std" (assignment_expression "puVar4 = (this->input_shndxes_).\n                           super__Vector_base<unsigned_int" identifier = (binary_expression "(this->input_shndxes_).\n                           super__Vector_base<unsigned_int" (field_expression "(this->input_shndxes_).\n                           super__Vector_base" (parenthesized_expression "(this->input_shndxes_)" ( (field_expression "this->input_shndxes_" identifier -> field_identifier) )) . field_identifier) < identifier)) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl.\n                           _M_start;" (field_expression "allocator<unsigned_int>_>._M_impl.\n                           _M_start" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (puVar4 != puVar29) {\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }" if (parenthesized_expression "(puVar4 != puVar29)" ( (binary_expression "puVar4 != puVar29" identifier != identifier) )) (compound_statement "{\n                    (this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;\n                  }" { (ERROR "(this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std::" (comma_expression "(this->input_shndxes_).\n                    super__Vector_base<unsigned_int,_std" (binary_expression "(this->input_shndxes_).\n                    super__Vector_base<unsigned_int" (field_expression "(this->input_shndxes_).\n                    super__Vector_base" (parenthesized_expression "(this->input_shndxes_)" ( (field_expression "this->input_shndxes_" identifier -> field_identifier) )) . field_identifier) < identifier) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4;" (assignment_expression "allocator<unsigned_int>_>._M_impl.\n                    _M_finish = puVar4" (field_expression "allocator<unsigned_int>_>._M_impl.\n                    _M_finish" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier) ;) })) (return_statement "return;" return ;) })) (goto_statement "goto LAB_002225b8;" goto statement_identifier ;) })) (expression_statement "iVar2 = *(int *)(iVar36 + -0x7924);" (assignment_expression "iVar2 = *(int *)(iVar36 + -0x7924)" identifier = (pointer_expression "*(int *)(iVar36 + -0x7924)" * (cast_expression "(int *)(iVar36 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7924)" ( (binary_expression "iVar36 + -0x7924" identifier + number_literal) ))))) ;) (expression_statement "p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c);" (assignment_expression "p_Var37 = *(_func_int_varargs **)(iVar36 + -0x771c)" identifier = (pointer_expression "*(_func_int_varargs **)(iVar36 + -0x771c)" * (cast_expression "(_func_int_varargs **)(iVar36 + -0x771c)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x771c)" ( (binary_expression "iVar36 + -0x771c" identifier + number_literal) ))))) ;) (expression_statement "p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4);" (assignment_expression "p_Var23 = *(_func_int_varargs **)(iVar36 + -0x70a4)" identifier = (pointer_expression "*(_func_int_varargs **)(iVar36 + -0x70a4)" * (cast_expression "(_func_int_varargs **)(iVar36 + -0x70a4)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x70a4)" ( (binary_expression "iVar36 + -0x70a4" identifier + number_literal) ))))) ;) (expression_statement "pEVar1 = pEVar25 + 1;" (assignment_expression "pEVar1 = pEVar25 + 1" identifier = (binary_expression "pEVar25 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_00222480:\n              while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }" statement_identifier : (while_statement "while( true ) {\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                pEVar31 = pEVar1;\n                puVar4 = puVar29;\n                pSVar14 = this->relobj_;\n                p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];\n                if (p_Var32 == p_Var37) break;\n                iVar36 = iVar39;\n                pOVar6 = (Output_section *)(*p_Var32)();\n                iVar39 = iVar36;\n                if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;\n                pcVar33 = *(code **)(iVar36 + -0x3610);\nLAB_002224a8:\n                iVar36 = iVar39;\n                pSVar14 = this->relobj_;\n                uVar7 = (*pcVar33)(iVar2 + -0x4568);\n                (**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = 0;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                iVar39 = iVar36;\n                if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }\n              }" { (expression_statement "pEVar31 = pEVar1;" (assignment_expression "pEVar31 = pEVar1" identifier = identifier) ;) (expression_statement "puVar4 = puVar29;" (assignment_expression "puVar4 = puVar29" identifier = identifier) ;) (expression_statement "pSVar14 = this->relobj_;" (assignment_expression "pSVar14 = this->relobj_" identifier = (field_expression "this->relobj_" identifier -> field_identifier)) ;) (expression_statement "p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18];" (assignment_expression "p_Var32 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18]" identifier = (subscript_expression "(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object[0x18]" (field_expression "(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                          _vptr_Object" (field_expression "(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.super_Object" (field_expression "(pSVar14->super_Sized_relobj<32,_true>).super_Relobj" (parenthesized_expression "(pSVar14->super_Sized_relobj<32,_true>)" ( (comma_expression "pSVar14->super_Sized_relobj<32,_true" (binary_expression "pSVar14->super_Sized_relobj<32" (field_expression "pSVar14->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var32 == p_Var37) break;" if (parenthesized_expression "(p_Var32 == p_Var37)" ( (binary_expression "p_Var32 == p_Var37" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar36 = iVar39;" (assignment_expression "iVar36 = iVar39" identifier = identifier) ;) (expression_statement "pOVar6 = (Output_section *)(*p_Var32)();" (assignment_expression "pOVar6 = (Output_section *)(*p_Var32)()" identifier = (cast_expression "(Output_section *)(*p_Var32)()" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var32)()" (parenthesized_expression "(*p_Var32)" ( (pointer_expression "*p_Var32" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar39 = iVar36;" (assignment_expression "iVar39 = iVar36" identifier = identifier) ;) (if_statement "if (pOVar6 != (Output_section *)0x0) goto LAB_00222450;" 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)) )) (goto_statement "goto LAB_00222450;" goto statement_identifier ;)) (expression_statement "pcVar33 = *(code **)(iVar36 + -0x3610);" (assignment_expression "pcVar33 = *(code **)(iVar36 + -0x3610)" identifier = (pointer_expression "*(code **)(iVar36 + -0x3610)" * (cast_expression "(code **)(iVar36 + -0x3610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x3610)" ( (binary_expression "iVar36 + -0x3610" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002224a8:\n                iVar36 = iVar39;" statement_identifier : (expression_statement "iVar36 = iVar39;" (assignment_expression "iVar36 = iVar39" identifier = identifier) ;)) (expression_statement "pSVar14 = this->relobj_;" (assignment_expression "pSVar14 = this->relobj_" identifier = (field_expression "this->relobj_" identifier -> field_identifier)) ;) (expression_statement "uVar7 = (*pcVar33)(iVar2 + -0x4568);" (assignment_expression "uVar7 = (*pcVar33)(iVar2 + -0x4568)" identifier = (call_expression "(*pcVar33)(iVar2 + -0x4568)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(iVar2 + -0x4568)" ( (binary_expression "iVar2 + -0x4568" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7);" (call_expression "(**(code **)(iVar36 + -0x77ec))(pSVar14,uVar7)" (parenthesized_expression "(**(code **)(iVar36 + -0x77ec))" ( (pointer_expression "**(code **)(iVar36 + -0x77ec)" * (pointer_expression "*(code **)(iVar36 + -0x77ec)" * (cast_expression "(code **)(iVar36 + -0x77ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x77ec)" ( (binary_expression "iVar36 + -0x77ec" identifier + number_literal) ))))) )) (argument_list "(pSVar14,uVar7)" ( identifier , identifier ))) ;) (ERROR "puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::" (comma_expression "puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std" (assignment_expression "puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int" identifier = (binary_expression "(this->input_shndxes_).\n                          super__Vector_base<unsigned_int" (field_expression "(this->input_shndxes_).\n                          super__Vector_base" (parenthesized_expression "(this->input_shndxes_)" ( (field_expression "this->input_shndxes_" identifier -> field_identifier) )) . field_identifier) < identifier)) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl.\n                          _M_finish;" (field_expression "allocator<unsigned_int>_>._M_impl.\n                          _M_finish" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "*pEVar31 = 0;" (assignment_expression "*pEVar31 = 0" (pointer_expression "*pEVar31" * identifier) = number_literal) ;) (expression_statement "puVar29 = puVar4 + 1;" (assignment_expression "puVar29 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "pEVar1 = pEVar31 + 1;" (assignment_expression "pEVar1 = pEVar31 + 1" identifier = (binary_expression "pEVar31 + 1" identifier + number_literal)) ;) (expression_statement "iVar39 = iVar36;" (assignment_expression "iVar39 = iVar36" identifier = identifier) ;) (if_statement "if (puVar12 == puVar4 + 1) {\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }" if (parenthesized_expression "(puVar12 == puVar4 + 1)" ( (binary_expression "puVar12 == puVar4 + 1" identifier == (binary_expression "puVar4 + 1" identifier + number_literal)) )) (compound_statement "{\nLAB_002224e4:\n                  puVar29 = puVar4 + 1;\n                  uVar22 = (int)pEVar31 + (4 - (int)pEVar25);\n                  goto LAB_002224e8;\n                }" { (labeled_statement "LAB_002224e4:\n                  puVar29 = puVar4 + 1;" statement_identifier : (expression_statement "puVar29 = puVar4 + 1;" (assignment_expression "puVar29 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;)) (expression_statement "uVar22 = (int)pEVar31 + (4 - (int)pEVar25);" (assignment_expression "uVar22 = (int)pEVar31 + (4 - (int)pEVar25)" identifier = (binary_expression "(int)pEVar31 + (4 - (int)pEVar25)" (cast_expression "(int)pEVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(4 - (int)pEVar25)" ( (binary_expression "4 - (int)pEVar25" number_literal - (cast_expression "(int)pEVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (goto_statement "goto LAB_002224e8;" goto statement_identifier ;) })) }))) (expression_statement "ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start;" (field_expression "ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl._M_start" (field_expression "ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                         ._M_impl" (binary_expression "ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar11 = (pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold" identifier = (binary_expression "(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base<gold" (field_expression "(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_.\n                         super__Vector_base" (field_expression "(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.output_sections_" (field_expression "(pSVar14->super_Sized_relobj<32,_true>).super_Relobj" (parenthesized_expression "(pSVar14->super_Sized_relobj<32,_true>)" ( (comma_expression "pSVar14->super_Sized_relobj<32,_true" (binary_expression "pSVar14->super_Sized_relobj<32" (field_expression "pSVar14->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)) {\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }" if (parenthesized_expression "(*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2))" ( (binary_expression "*puVar4 < (uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)" (pointer_expression "*puVar4" * identifier) < (call_expression "(uint)((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2)" ( (binary_expression "(int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11 >> 2" (binary_expression "(int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish - (int)ppOVar11" (field_expression "(int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl._M_finish" (field_expression "(int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                        ._M_impl" (binary_expression "(int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold::Output_section*,_std" (binary_expression "(int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base<gold" (cast_expression "(int)(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_.\n                                        super__Vector_base" (field_expression "(pSVar14->super_Sized_relobj<32,_true>).super_Relobj.\n                                        output_sections_" (field_expression "(pSVar14->super_Sized_relobj<32,_true>).super_Relobj" (parenthesized_expression "(pSVar14->super_Sized_relobj<32,_true>)" ( (comma_expression "pSVar14->super_Sized_relobj<32,_true" (binary_expression "pSVar14->super_Sized_relobj<32" (field_expression "pSVar14->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)ppOVar11" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n                pOVar6 = ppOVar11[*puVar4];\n                pcVar33 = *(code **)(iVar36 + -0x3610);\n                if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;\nLAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];\n                if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }\n                puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                          _M_finish;\n                *pEVar31 = EVar5;\n                puVar29 = puVar4 + 1;\n                pEVar1 = pEVar31 + 1;\n                if (puVar12 == puVar4 + 1) goto LAB_002224e4;\n                goto LAB_00222480;\n              }" { (expression_statement "pOVar6 = ppOVar11[*puVar4];" (assignment_expression "pOVar6 = ppOVar11[*puVar4]" identifier = (subscript_expression "ppOVar11[*puVar4]" identifier [ (pointer_expression "*puVar4" * identifier) ])) ;) (expression_statement "pcVar33 = *(code **)(iVar36 + -0x3610);" (assignment_expression "pcVar33 = *(code **)(iVar36 + -0x3610)" identifier = (pointer_expression "*(code **)(iVar36 + -0x3610)" * (cast_expression "(code **)(iVar36 + -0x3610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x3610)" ( (binary_expression "iVar36 + -0x3610" identifier + number_literal) ))))) ;) (if_statement "if (pOVar6 == (Output_section *)0x0) goto LAB_002224a8;" 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)) )) (goto_statement "goto LAB_002224a8;" goto statement_identifier ;)) (labeled_statement "LAB_00222450:\n                p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];" statement_identifier : (expression_statement "p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb];" (assignment_expression "p_Var32 = (pOVar6->super_Output_data)._vptr_Output_data[0xb]" identifier = (subscript_expression "(pOVar6->super_Output_data)._vptr_Output_data[0xb]" (field_expression "(pOVar6->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar6->super_Output_data)" ( (field_expression "pOVar6->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;)) (if_statement "if (p_Var32 == p_Var23) {\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }\n                else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }" if (parenthesized_expression "(p_Var32 == p_Var23)" ( (binary_expression "p_Var32 == p_Var23" identifier == identifier) )) (compound_statement "{\n                  EVar5 = pOVar6->out_shndx_;\n                  iVar20 = *(int *)(iVar36 + -0x7924);\n                  if (EVar5 == 0xffffffff) goto LAB_00222564;\n                }" { (expression_statement "EVar5 = pOVar6->out_shndx_;" (assignment_expression "EVar5 = pOVar6->out_shndx_" identifier = (field_expression "pOVar6->out_shndx_" identifier -> field_identifier)) ;) (expression_statement "iVar20 = *(int *)(iVar36 + -0x7924);" (assignment_expression "iVar20 = *(int *)(iVar36 + -0x7924)" identifier = (pointer_expression "*(int *)(iVar36 + -0x7924)" * (cast_expression "(int *)(iVar36 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7924)" ( (binary_expression "iVar36 + -0x7924" identifier + number_literal) ))))) ;) (if_statement "if (EVar5 == 0xffffffff) goto LAB_00222564;" if (parenthesized_expression "(EVar5 == 0xffffffff)" ( (binary_expression "EVar5 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00222564;" goto statement_identifier ;)) }) (else_clause "else {\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }" else (compound_statement "{\n                  iVar36 = iVar39;\n                  EVar5 = (*p_Var32)(pOVar6);\n                  iVar39 = iVar36;\n                }" { (expression_statement "iVar36 = iVar39;" (assignment_expression "iVar36 = iVar39" identifier = identifier) ;) (expression_statement "EVar5 = (*p_Var32)(pOVar6);" (assignment_expression "EVar5 = (*p_Var32)(pOVar6)" identifier = (call_expression "(*p_Var32)(pOVar6)" (parenthesized_expression "(*p_Var32)" ( (pointer_expression "*p_Var32" * identifier) )) (argument_list "(pOVar6)" ( identifier )))) ;) (expression_statement "iVar39 = iVar36;" (assignment_expression "iVar39 = iVar36" identifier = identifier) ;) }))) (ERROR "puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std::" (comma_expression "puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int,_std" (assignment_expression "puVar12 = (this->input_shndxes_).\n                          super__Vector_base<unsigned_int" identifier = (binary_expression "(this->input_shndxes_).\n                          super__Vector_base<unsigned_int" (field_expression "(this->input_shndxes_).\n                          super__Vector_base" (parenthesized_expression "(this->input_shndxes_)" ( (field_expression "this->input_shndxes_" identifier -> field_identifier) )) . field_identifier) < identifier)) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl.\n                          _M_finish;" (field_expression "allocator<unsigned_int>_>._M_impl.\n                          _M_finish" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "*pEVar31 = EVar5;" (assignment_expression "*pEVar31 = EVar5" (pointer_expression "*pEVar31" * identifier) = identifier) ;) (expression_statement "puVar29 = puVar4 + 1;" (assignment_expression "puVar29 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "pEVar1 = pEVar31 + 1;" (assignment_expression "pEVar1 = pEVar31 + 1" identifier = (binary_expression "pEVar31 + 1" identifier + number_literal)) ;) (if_statement "if (puVar12 == puVar4 + 1) goto LAB_002224e4;" if (parenthesized_expression "(puVar12 == puVar4 + 1)" ( (binary_expression "puVar12 == puVar4 + 1" identifier == (binary_expression "puVar4 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002224e4;" goto statement_identifier ;)) (goto_statement "goto LAB_00222480;" goto statement_identifier ;) })) (expression_statement "iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404;" (assignment_expression "iVar20 = *(int *)(iVar36 + -0x7924) + -0x3404" identifier = (binary_expression "*(int *)(iVar36 + -0x7924) + -0x3404" (pointer_expression "*(int *)(iVar36 + -0x7924)" * (cast_expression "(int *)(iVar36 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7924)" ( (binary_expression "iVar36 + -0x7924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8);" (call_expression "(**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8)" (parenthesized_expression "(**(code **)(iVar36 + -0x7810))" ( (pointer_expression "**(code **)(iVar36 + -0x7810)" * (pointer_expression "*(code **)(iVar36 + -0x7810)" * (cast_expression "(code **)(iVar36 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x7810)" ( (binary_expression "iVar36 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar36 + -0x7fc4) + 0x4570,0x5c8)" ( (binary_expression "*(int *)(iVar36 + -0x7fc4) + 0x4570" (pointer_expression "*(int *)(iVar36 + -0x7fc4)" * (cast_expression "(int *)(iVar36 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7fc4)" ( (binary_expression "iVar36 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (labeled_statement "LAB_00222564:\n              of = (Output_file *)0x1043;" statement_identifier : (expression_statement "of = (Output_file *)0x1043;" (assignment_expression "of = (Output_file *)0x1043" identifier = (cast_expression "(Output_file *)0x1043" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pOVar19 = (Output_file *)(iVar20 - 0x2a28);" (assignment_expression "pOVar19 = (Output_file *)(iVar20 - 0x2a28)" identifier = (cast_expression "(Output_file *)(iVar20 - 0x2a28)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 - 0x2a28)" ( (binary_expression "iVar20 - 0x2a28" identifier - number_literal) )))) ;) (expression_statement "this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);" (assignment_expression "this_00 = (Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574)" identifier = (call_expression "(Output_data_group<32,_true> *)(*(int *)(iVar36 + -0x7fc4) + 0x3574)" (parenthesized_expression "(Output_data_group<32,_true> *)" ( (comma_expression "Output_data_group<32,_true> *" (binary_expression "Output_data_group<32" identifier < number_literal) , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(*(int *)(iVar36 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(iVar36 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(iVar36 + -0x7fc4)" * (cast_expression "(int *)(iVar36 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7fc4)" ( (binary_expression "iVar36 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(iVar36 + -0x7810))();" (call_expression "(**(code **)(iVar36 + -0x7810))()" (parenthesized_expression "(**(code **)(iVar36 + -0x7810))" ( (pointer_expression "**(code **)(iVar36 + -0x7810)" * (pointer_expression "*(code **)(iVar36 + -0x7810)" * (cast_expression "(code **)(iVar36 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x7810)" ( (binary_expression "iVar36 + -0x7810" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar20 = extraout_v1;" (assignment_expression "iVar20 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_0022257c:\n              uVar22 = (uint)((uint)of->file_size_ < uVar22);" statement_identifier : (expression_statement "uVar22 = (uint)((uint)of->file_size_ < uVar22);" (assignment_expression "uVar22 = (uint)((uint)of->file_size_ < uVar22)" identifier = (call_expression "(uint)((uint)of->file_size_ < uVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)of->file_size_ < uVar22)" ( (binary_expression "(uint)of->file_size_ < uVar22" (cast_expression "(uint)of->file_size_" ( (type_descriptor "uint" type_identifier) ) (field_expression "of->file_size_" identifier -> field_identifier)) < identifier) )))) ;)) }) while (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) ;) })) })) (labeled_statement "Output_file::get_output_view\n                  ((Output_file *)this_00,CONCAT44(iVar39,in_stack_ffffffcc),(size_t)of,pOVar19);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view\n                  ((Output_file *)this_00,CONCAT44(iVar39,in_stack_ffffffcc),(size_t)of,pOVar19);" (call_expression "get_output_view\n                  ((Output_file *)this_00,CONCAT44(iVar39,in_stack_ffffffcc),(size_t)of,pOVar19)" identifier (argument_list "((Output_file *)this_00,CONCAT44(iVar39,in_stack_ffffffcc),(size_t)of,pOVar19)" ( (cast_expression "(Output_file *)this_00" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (call_expression "CONCAT44(iVar39,in_stack_ffffffcc)" identifier (argument_list "(iVar39,in_stack_ffffffcc)" ( identifier , identifier ))) , (cast_expression "(size_t)of" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;)) (goto_statement "goto LAB_0022259c;" goto statement_identifier ;) })) (goto_statement "goto LAB_002225d0;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0022259c:\n    iVar39 = *(int *)(iVar36 + -0x7924) + -0x2a78;\n    (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x3574,0xe3,iVar39);\nLAB_002225b8:\n    (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7924) + -0x48b4,0x549,iVar39 + -0x4278);\nLAB_002225d0:\n    (**(code **)(iVar36 + -0x7810))\n              (*(int *)(iVar36 + -0x7fc4) + 0x4584,0xc0,*(int *)(iVar36 + -0x7924) + -0x32e0);\n  }" else (compound_statement "{\nLAB_0022259c:\n    iVar39 = *(int *)(iVar36 + -0x7924) + -0x2a78;\n    (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x3574,0xe3,iVar39);\nLAB_002225b8:\n    (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7924) + -0x48b4,0x549,iVar39 + -0x4278);\nLAB_002225d0:\n    (**(code **)(iVar36 + -0x7810))\n              (*(int *)(iVar36 + -0x7fc4) + 0x4584,0xc0,*(int *)(iVar36 + -0x7924) + -0x32e0);\n  }" { (labeled_statement "LAB_0022259c:\n    iVar39 = *(int *)(iVar36 + -0x7924) + -0x2a78;" statement_identifier : (expression_statement "iVar39 = *(int *)(iVar36 + -0x7924) + -0x2a78;" (assignment_expression "iVar39 = *(int *)(iVar36 + -0x7924) + -0x2a78" identifier = (binary_expression "*(int *)(iVar36 + -0x7924) + -0x2a78" (pointer_expression "*(int *)(iVar36 + -0x7924)" * (cast_expression "(int *)(iVar36 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7924)" ( (binary_expression "iVar36 + -0x7924" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "(**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x3574,0xe3,iVar39);" (call_expression "(**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7fc4) + 0x3574,0xe3,iVar39)" (parenthesized_expression "(**(code **)(iVar36 + -0x7810))" ( (pointer_expression "**(code **)(iVar36 + -0x7810)" * (pointer_expression "*(code **)(iVar36 + -0x7810)" * (cast_expression "(code **)(iVar36 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x7810)" ( (binary_expression "iVar36 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar36 + -0x7fc4) + 0x3574,0xe3,iVar39)" ( (binary_expression "*(int *)(iVar36 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(iVar36 + -0x7fc4)" * (cast_expression "(int *)(iVar36 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7fc4)" ( (binary_expression "iVar36 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_002225b8:\n    (**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7924) + -0x48b4,0x549,iVar39 + -0x4278);" statement_identifier : (expression_statement "(**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7924) + -0x48b4,0x549,iVar39 + -0x4278);" (call_expression "(**(code **)(iVar36 + -0x7810))(*(int *)(iVar36 + -0x7924) + -0x48b4,0x549,iVar39 + -0x4278)" (parenthesized_expression "(**(code **)(iVar36 + -0x7810))" ( (pointer_expression "**(code **)(iVar36 + -0x7810)" * (pointer_expression "*(code **)(iVar36 + -0x7810)" * (cast_expression "(code **)(iVar36 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x7810)" ( (binary_expression "iVar36 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar36 + -0x7924) + -0x48b4,0x549,iVar39 + -0x4278)" ( (binary_expression "*(int *)(iVar36 + -0x7924) + -0x48b4" (pointer_expression "*(int *)(iVar36 + -0x7924)" * (cast_expression "(int *)(iVar36 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7924)" ( (binary_expression "iVar36 + -0x7924" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar39 + -0x4278" identifier + number_literal) ))) ;)) (labeled_statement "LAB_002225d0:\n    (**(code **)(iVar36 + -0x7810))\n              (*(int *)(iVar36 + -0x7fc4) + 0x4584,0xc0,*(int *)(iVar36 + -0x7924) + -0x32e0);" statement_identifier : (expression_statement "(**(code **)(iVar36 + -0x7810))\n              (*(int *)(iVar36 + -0x7fc4) + 0x4584,0xc0,*(int *)(iVar36 + -0x7924) + -0x32e0);" (call_expression "(**(code **)(iVar36 + -0x7810))\n              (*(int *)(iVar36 + -0x7fc4) + 0x4584,0xc0,*(int *)(iVar36 + -0x7924) + -0x32e0)" (parenthesized_expression "(**(code **)(iVar36 + -0x7810))" ( (pointer_expression "**(code **)(iVar36 + -0x7810)" * (pointer_expression "*(code **)(iVar36 + -0x7810)" * (cast_expression "(code **)(iVar36 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x7810)" ( (binary_expression "iVar36 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar36 + -0x7fc4) + 0x4584,0xc0,*(int *)(iVar36 + -0x7924) + -0x32e0)" ( (binary_expression "*(int *)(iVar36 + -0x7fc4) + 0x4584" (pointer_expression "*(int *)(iVar36 + -0x7fc4)" * (cast_expression "(int *)(iVar36 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7fc4)" ( (binary_expression "iVar36 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(iVar36 + -0x7924) + -0x32e0" (pointer_expression "*(int *)(iVar36 + -0x7924)" * (cast_expression "(int *)(iVar36 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7924)" ( (binary_expression "iVar36 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;)) }))) (expression_statement "sVar18 = 0xcf;" (assignment_expression "sVar18 = 0xcf" identifier = number_literal) ;) (expression_statement "pcVar33 = *(code **)(iVar36 + -0x7810);" (assignment_expression "pcVar33 = *(code **)(iVar36 + -0x7810)" identifier = (pointer_expression "*(code **)(iVar36 + -0x7810)" * (cast_expression "(code **)(iVar36 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar36 + -0x7810)" ( (binary_expression "iVar36 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pOVar19 = (Output_file *)(*(int *)(iVar36 + -0x7fc4) + 0x3574);" (assignment_expression "pOVar19 = (Output_file *)(*(int *)(iVar36 + -0x7fc4) + 0x3574)" identifier = (cast_expression "(Output_file *)(*(int *)(iVar36 + -0x7fc4) + 0x3574)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar36 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(iVar36 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(iVar36 + -0x7fc4)" * (cast_expression "(int *)(iVar36 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7fc4)" ( (binary_expression "iVar36 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar33)(pOVar19,0xcf,*(int *)(iVar36 + -0x7924) + -0x29fc);" (call_expression "(*pcVar33)(pOVar19,0xcf,*(int *)(iVar36 + -0x7924) + -0x29fc)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(pOVar19,0xcf,*(int *)(iVar36 + -0x7924) + -0x29fc)" ( identifier , number_literal , (binary_expression "*(int *)(iVar36 + -0x7924) + -0x29fc" (pointer_expression "*(int *)(iVar36 + -0x7924)" * (cast_expression "(int *)(iVar36 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar36 + -0x7924)" ( (binary_expression "iVar36 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar33 = pcVar33 + 0x2a6c38;" (assignment_expression "pcVar33 = pcVar33 + 0x2a6c38" identifier = (binary_expression "pcVar33 + 0x2a6c38" identifier + number_literal)) ;) (if_statement "if (*(int *)&pOVar19[1].file_size_ << 2 < 0) {\n    pOVar21 = (Output_file *)pOVar19[1].name_;\n    iVar36 = pOVar19[1].o_;\n    if (-1 < *(int *)&pOVar19[1].file_size_ << 1) goto LAB_0022289c;\n    uVar28 = *(uint *)&pOVar19->map_is_anonymous_;\n    if (pOVar19->base_ == (uchar *)0x0) {\n      uVar22 = uVar28 + iVar36;\n      pOVar15 = pOVar19;\n      pcVar35 = pcVar33;\n      if (-1 < (int)pOVar21) {\n        pOVar15 = *(Output_file **)(sVar18 + 8);\n        pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n        pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n        if (pOVar21 == (Output_file *)0x0) {\n          if (pOVar15 == pOVar8) goto LAB_0022282c;\n          do {\n            puVar30 = *(uint **)&pOVar19[2].file_size_;\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            *piVar26 = pOVar19[2].o_;\n            if (puVar30 == puVar9) {\n              uVar22 = 4;\nLAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }\n              goto LAB_00222868;\n            }\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            pcVar38 = *(code **)(pcVar33 + -0x771c);\n            pcVar24 = *(code **)(pcVar33 + -0x70a4);\n            piVar16 = piVar26 + 1;\nLAB_00222730:\n            while( true ) {\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }\n            if (*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)) {\n              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\n              if (piVar16 == (int *)0x0) goto LAB_00222758;\nLAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = iVar2;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              if (puVar13 == puVar9 + 1) goto LAB_00222794;\n              goto LAB_00222730;\n            }\n            iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404;\n            (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222814:\n            sVar18 = 0x1043;\n            pOVar21 = (Output_file *)(iVar39 - 0x2a28);\n            pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);\n            (**(code **)(pcVar33 + -0x7810))();\n            iVar36 = extraout_v1_00;\nLAB_0022282c:\n            uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);\n          } while (uVar22 == 0);\n        }\n      }\n      Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_ffffff84),sVar18,pOVar21);\n      goto LAB_0022284c;\n    }\n  }\n  else {\nLAB_0022284c:\n    iVar36 = *(int *)(pcVar33 + -0x7924) + -0x2a78;\n    (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xe3,iVar36);\nLAB_00222868:\n    (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x4290);\n  }" if (parenthesized_expression "(*(int *)&pOVar19[1].file_size_ << 2 < 0)" ( (binary_expression "*(int *)&pOVar19[1].file_size_ << 2 < 0" (binary_expression "*(int *)&pOVar19[1].file_size_ << 2" (pointer_expression "*(int *)&pOVar19[1].file_size_" * (cast_expression "(int *)&pOVar19[1].file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar19[1].file_size_" & (field_expression "pOVar19[1].file_size_" (subscript_expression "pOVar19[1]" identifier [ number_literal ]) . field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n    pOVar21 = (Output_file *)pOVar19[1].name_;\n    iVar36 = pOVar19[1].o_;\n    if (-1 < *(int *)&pOVar19[1].file_size_ << 1) goto LAB_0022289c;\n    uVar28 = *(uint *)&pOVar19->map_is_anonymous_;\n    if (pOVar19->base_ == (uchar *)0x0) {\n      uVar22 = uVar28 + iVar36;\n      pOVar15 = pOVar19;\n      pcVar35 = pcVar33;\n      if (-1 < (int)pOVar21) {\n        pOVar15 = *(Output_file **)(sVar18 + 8);\n        pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n        pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n        if (pOVar21 == (Output_file *)0x0) {\n          if (pOVar15 == pOVar8) goto LAB_0022282c;\n          do {\n            puVar30 = *(uint **)&pOVar19[2].file_size_;\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            *piVar26 = pOVar19[2].o_;\n            if (puVar30 == puVar9) {\n              uVar22 = 4;\nLAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }\n              goto LAB_00222868;\n            }\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            pcVar38 = *(code **)(pcVar33 + -0x771c);\n            pcVar24 = *(code **)(pcVar33 + -0x70a4);\n            piVar16 = piVar26 + 1;\nLAB_00222730:\n            while( true ) {\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }\n            if (*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)) {\n              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\n              if (piVar16 == (int *)0x0) goto LAB_00222758;\nLAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = iVar2;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              if (puVar13 == puVar9 + 1) goto LAB_00222794;\n              goto LAB_00222730;\n            }\n            iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404;\n            (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222814:\n            sVar18 = 0x1043;\n            pOVar21 = (Output_file *)(iVar39 - 0x2a28);\n            pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);\n            (**(code **)(pcVar33 + -0x7810))();\n            iVar36 = extraout_v1_00;\nLAB_0022282c:\n            uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);\n          } while (uVar22 == 0);\n        }\n      }\n      Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_ffffff84),sVar18,pOVar21);\n      goto LAB_0022284c;\n    }\n  }" { (expression_statement "pOVar21 = (Output_file *)pOVar19[1].name_;" (assignment_expression "pOVar21 = (Output_file *)pOVar19[1].name_" identifier = (cast_expression "(Output_file *)pOVar19[1].name_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar19[1].name_" (subscript_expression "pOVar19[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "iVar36 = pOVar19[1].o_;" (assignment_expression "iVar36 = pOVar19[1].o_" identifier = (field_expression "pOVar19[1].o_" (subscript_expression "pOVar19[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (-1 < *(int *)&pOVar19[1].file_size_ << 1) goto LAB_0022289c;" if (parenthesized_expression "(-1 < *(int *)&pOVar19[1].file_size_ << 1)" ( (binary_expression "-1 < *(int *)&pOVar19[1].file_size_ << 1" number_literal < (binary_expression "*(int *)&pOVar19[1].file_size_ << 1" (pointer_expression "*(int *)&pOVar19[1].file_size_" * (cast_expression "(int *)&pOVar19[1].file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar19[1].file_size_" & (field_expression "pOVar19[1].file_size_" (subscript_expression "pOVar19[1]" identifier [ number_literal ]) . field_identifier)))) << number_literal)) )) (goto_statement "goto LAB_0022289c;" goto statement_identifier ;)) (expression_statement "uVar28 = *(uint *)&pOVar19->map_is_anonymous_;" (assignment_expression "uVar28 = *(uint *)&pOVar19->map_is_anonymous_" identifier = (pointer_expression "*(uint *)&pOVar19->map_is_anonymous_" * (cast_expression "(uint *)&pOVar19->map_is_anonymous_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar19->map_is_anonymous_" & (field_expression "pOVar19->map_is_anonymous_" identifier -> field_identifier))))) ;) (if_statement "if (pOVar19->base_ == (uchar *)0x0) {\n      uVar22 = uVar28 + iVar36;\n      pOVar15 = pOVar19;\n      pcVar35 = pcVar33;\n      if (-1 < (int)pOVar21) {\n        pOVar15 = *(Output_file **)(sVar18 + 8);\n        pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n        pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n        if (pOVar21 == (Output_file *)0x0) {\n          if (pOVar15 == pOVar8) goto LAB_0022282c;\n          do {\n            puVar30 = *(uint **)&pOVar19[2].file_size_;\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            *piVar26 = pOVar19[2].o_;\n            if (puVar30 == puVar9) {\n              uVar22 = 4;\nLAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }\n              goto LAB_00222868;\n            }\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            pcVar38 = *(code **)(pcVar33 + -0x771c);\n            pcVar24 = *(code **)(pcVar33 + -0x70a4);\n            piVar16 = piVar26 + 1;\nLAB_00222730:\n            while( true ) {\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }\n            if (*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)) {\n              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\n              if (piVar16 == (int *)0x0) goto LAB_00222758;\nLAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = iVar2;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              if (puVar13 == puVar9 + 1) goto LAB_00222794;\n              goto LAB_00222730;\n            }\n            iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404;\n            (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222814:\n            sVar18 = 0x1043;\n            pOVar21 = (Output_file *)(iVar39 - 0x2a28);\n            pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);\n            (**(code **)(pcVar33 + -0x7810))();\n            iVar36 = extraout_v1_00;\nLAB_0022282c:\n            uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);\n          } while (uVar22 == 0);\n        }\n      }\n      Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_ffffff84),sVar18,pOVar21);\n      goto LAB_0022284c;\n    }" if (parenthesized_expression "(pOVar19->base_ == (uchar *)0x0)" ( (binary_expression "pOVar19->base_ == (uchar *)0x0" (field_expression "pOVar19->base_" identifier -> field_identifier) == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar22 = uVar28 + iVar36;\n      pOVar15 = pOVar19;\n      pcVar35 = pcVar33;\n      if (-1 < (int)pOVar21) {\n        pOVar15 = *(Output_file **)(sVar18 + 8);\n        pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n        pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n        if (pOVar21 == (Output_file *)0x0) {\n          if (pOVar15 == pOVar8) goto LAB_0022282c;\n          do {\n            puVar30 = *(uint **)&pOVar19[2].file_size_;\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            *piVar26 = pOVar19[2].o_;\n            if (puVar30 == puVar9) {\n              uVar22 = 4;\nLAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }\n              goto LAB_00222868;\n            }\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            pcVar38 = *(code **)(pcVar33 + -0x771c);\n            pcVar24 = *(code **)(pcVar33 + -0x70a4);\n            piVar16 = piVar26 + 1;\nLAB_00222730:\n            while( true ) {\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }\n            if (*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)) {\n              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\n              if (piVar16 == (int *)0x0) goto LAB_00222758;\nLAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = iVar2;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              if (puVar13 == puVar9 + 1) goto LAB_00222794;\n              goto LAB_00222730;\n            }\n            iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404;\n            (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222814:\n            sVar18 = 0x1043;\n            pOVar21 = (Output_file *)(iVar39 - 0x2a28);\n            pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);\n            (**(code **)(pcVar33 + -0x7810))();\n            iVar36 = extraout_v1_00;\nLAB_0022282c:\n            uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);\n          } while (uVar22 == 0);\n        }\n      }\n      Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_ffffff84),sVar18,pOVar21);\n      goto LAB_0022284c;\n    }" { (expression_statement "uVar22 = uVar28 + iVar36;" (assignment_expression "uVar22 = uVar28 + iVar36" identifier = (binary_expression "uVar28 + iVar36" identifier + identifier)) ;) (expression_statement "pOVar15 = pOVar19;" (assignment_expression "pOVar15 = pOVar19" identifier = identifier) ;) (expression_statement "pcVar35 = pcVar33;" (assignment_expression "pcVar35 = pcVar33" identifier = identifier) ;) (if_statement "if (-1 < (int)pOVar21) {\n        pOVar15 = *(Output_file **)(sVar18 + 8);\n        pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n        pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n        if (pOVar21 == (Output_file *)0x0) {\n          if (pOVar15 == pOVar8) goto LAB_0022282c;\n          do {\n            puVar30 = *(uint **)&pOVar19[2].file_size_;\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            *piVar26 = pOVar19[2].o_;\n            if (puVar30 == puVar9) {\n              uVar22 = 4;\nLAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }\n              goto LAB_00222868;\n            }\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            pcVar38 = *(code **)(pcVar33 + -0x771c);\n            pcVar24 = *(code **)(pcVar33 + -0x70a4);\n            piVar16 = piVar26 + 1;\nLAB_00222730:\n            while( true ) {\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }\n            if (*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)) {\n              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\n              if (piVar16 == (int *)0x0) goto LAB_00222758;\nLAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = iVar2;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              if (puVar13 == puVar9 + 1) goto LAB_00222794;\n              goto LAB_00222730;\n            }\n            iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404;\n            (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222814:\n            sVar18 = 0x1043;\n            pOVar21 = (Output_file *)(iVar39 - 0x2a28);\n            pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);\n            (**(code **)(pcVar33 + -0x7810))();\n            iVar36 = extraout_v1_00;\nLAB_0022282c:\n            uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);\n          } while (uVar22 == 0);\n        }\n      }" if (parenthesized_expression "(-1 < (int)pOVar21)" ( (binary_expression "-1 < (int)pOVar21" number_literal < (cast_expression "(int)pOVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pOVar15 = *(Output_file **)(sVar18 + 8);\n        pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n        pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n        if (pOVar21 == (Output_file *)0x0) {\n          if (pOVar15 == pOVar8) goto LAB_0022282c;\n          do {\n            puVar30 = *(uint **)&pOVar19[2].file_size_;\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            *piVar26 = pOVar19[2].o_;\n            if (puVar30 == puVar9) {\n              uVar22 = 4;\nLAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }\n              goto LAB_00222868;\n            }\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            pcVar38 = *(code **)(pcVar33 + -0x771c);\n            pcVar24 = *(code **)(pcVar33 + -0x70a4);\n            piVar16 = piVar26 + 1;\nLAB_00222730:\n            while( true ) {\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }\n            if (*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)) {\n              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\n              if (piVar16 == (int *)0x0) goto LAB_00222758;\nLAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = iVar2;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              if (puVar13 == puVar9 + 1) goto LAB_00222794;\n              goto LAB_00222730;\n            }\n            iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404;\n            (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222814:\n            sVar18 = 0x1043;\n            pOVar21 = (Output_file *)(iVar39 - 0x2a28);\n            pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);\n            (**(code **)(pcVar33 + -0x7810))();\n            iVar36 = extraout_v1_00;\nLAB_0022282c:\n            uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);\n          } while (uVar22 == 0);\n        }\n      }" { (expression_statement "pOVar15 = *(Output_file **)(sVar18 + 8);" (assignment_expression "pOVar15 = *(Output_file **)(sVar18 + 8)" identifier = (pointer_expression "*(Output_file **)(sVar18 + 8)" * (cast_expression "(Output_file **)(sVar18 + 8)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(sVar18 + 8)" ( (binary_expression "sVar18 + 8" identifier + number_literal) ))))) ;) (expression_statement "pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));" (assignment_expression "pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28))" identifier = (cast_expression "(Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28))" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar21->name_ + (uint)(uVar22 < uVar28))" ( (binary_expression "(int)&pOVar21->name_ + (uint)(uVar22 < uVar28)" (cast_expression "(int)&pOVar21->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar21->name_" & (field_expression "pOVar21->name_" identifier -> field_identifier))) + (call_expression "(uint)(uVar22 < uVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < uVar28)" ( (binary_expression "uVar22 < uVar28" identifier < identifier) )))) )))) ;) (expression_statement "pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);" (assignment_expression "pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8)" identifier = (cast_expression "(Output_file *)(uint)((int)pOVar15 < (int)pOVar8)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)pOVar15 < (int)pOVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pOVar15 < (int)pOVar8)" ( (binary_expression "(int)pOVar15 < (int)pOVar8" (cast_expression "(int)pOVar15" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pOVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (pOVar21 == (Output_file *)0x0) {\n          if (pOVar15 == pOVar8) goto LAB_0022282c;\n          do {\n            puVar30 = *(uint **)&pOVar19[2].file_size_;\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            *piVar26 = pOVar19[2].o_;\n            if (puVar30 == puVar9) {\n              uVar22 = 4;\nLAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }\n              goto LAB_00222868;\n            }\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            pcVar38 = *(code **)(pcVar33 + -0x771c);\n            pcVar24 = *(code **)(pcVar33 + -0x70a4);\n            piVar16 = piVar26 + 1;\nLAB_00222730:\n            while( true ) {\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }\n            if (*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)) {\n              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\n              if (piVar16 == (int *)0x0) goto LAB_00222758;\nLAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = iVar2;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              if (puVar13 == puVar9 + 1) goto LAB_00222794;\n              goto LAB_00222730;\n            }\n            iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404;\n            (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222814:\n            sVar18 = 0x1043;\n            pOVar21 = (Output_file *)(iVar39 - 0x2a28);\n            pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);\n            (**(code **)(pcVar33 + -0x7810))();\n            iVar36 = extraout_v1_00;\nLAB_0022282c:\n            uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);\n          } while (uVar22 == 0);\n        }" if (parenthesized_expression "(pOVar21 == (Output_file *)0x0)" ( (binary_expression "pOVar21 == (Output_file *)0x0" identifier == (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pOVar15 == pOVar8) goto LAB_0022282c;\n          do {\n            puVar30 = *(uint **)&pOVar19[2].file_size_;\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            *piVar26 = pOVar19[2].o_;\n            if (puVar30 == puVar9) {\n              uVar22 = 4;\nLAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }\n              goto LAB_00222868;\n            }\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            pcVar38 = *(code **)(pcVar33 + -0x771c);\n            pcVar24 = *(code **)(pcVar33 + -0x70a4);\n            piVar16 = piVar26 + 1;\nLAB_00222730:\n            while( true ) {\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }\n            if (*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)) {\n              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\n              if (piVar16 == (int *)0x0) goto LAB_00222758;\nLAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = iVar2;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              if (puVar13 == puVar9 + 1) goto LAB_00222794;\n              goto LAB_00222730;\n            }\n            iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404;\n            (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222814:\n            sVar18 = 0x1043;\n            pOVar21 = (Output_file *)(iVar39 - 0x2a28);\n            pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);\n            (**(code **)(pcVar33 + -0x7810))();\n            iVar36 = extraout_v1_00;\nLAB_0022282c:\n            uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);\n          } while (uVar22 == 0);\n        }" { (if_statement "if (pOVar15 == pOVar8) goto LAB_0022282c;" if (parenthesized_expression "(pOVar15 == pOVar8)" ( (binary_expression "pOVar15 == pOVar8" identifier == identifier) )) (goto_statement "goto LAB_0022282c;" goto statement_identifier ;)) (do_statement "do {\n            puVar30 = *(uint **)&pOVar19[2].file_size_;\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            *piVar26 = pOVar19[2].o_;\n            if (puVar30 == puVar9) {\n              uVar22 = 4;\nLAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }\n              goto LAB_00222868;\n            }\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            pcVar38 = *(code **)(pcVar33 + -0x771c);\n            pcVar24 = *(code **)(pcVar33 + -0x70a4);\n            piVar16 = piVar26 + 1;\nLAB_00222730:\n            while( true ) {\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }\n            if (*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)) {\n              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\n              if (piVar16 == (int *)0x0) goto LAB_00222758;\nLAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = iVar2;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              if (puVar13 == puVar9 + 1) goto LAB_00222794;\n              goto LAB_00222730;\n            }\n            iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404;\n            (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222814:\n            sVar18 = 0x1043;\n            pOVar21 = (Output_file *)(iVar39 - 0x2a28);\n            pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);\n            (**(code **)(pcVar33 + -0x7810))();\n            iVar36 = extraout_v1_00;\nLAB_0022282c:\n            uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);\n          } while (uVar22 == 0);" do (compound_statement "{\n            puVar30 = *(uint **)&pOVar19[2].file_size_;\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            *piVar26 = pOVar19[2].o_;\n            if (puVar30 == puVar9) {\n              uVar22 = 4;\nLAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }\n              goto LAB_00222868;\n            }\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            pcVar38 = *(code **)(pcVar33 + -0x771c);\n            pcVar24 = *(code **)(pcVar33 + -0x70a4);\n            piVar16 = piVar26 + 1;\nLAB_00222730:\n            while( true ) {\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }\n            if (*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)) {\n              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\n              if (piVar16 == (int *)0x0) goto LAB_00222758;\nLAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = iVar2;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              if (puVar13 == puVar9 + 1) goto LAB_00222794;\n              goto LAB_00222730;\n            }\n            iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404;\n            (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8);\nLAB_00222814:\n            sVar18 = 0x1043;\n            pOVar21 = (Output_file *)(iVar39 - 0x2a28);\n            pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);\n            (**(code **)(pcVar33 + -0x7810))();\n            iVar36 = extraout_v1_00;\nLAB_0022282c:\n            uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);\n          }" { (expression_statement "puVar30 = *(uint **)&pOVar19[2].file_size_;" (assignment_expression "puVar30 = *(uint **)&pOVar19[2].file_size_" identifier = (pointer_expression "*(uint **)&pOVar19[2].file_size_" * (cast_expression "(uint **)&pOVar19[2].file_size_" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))))) ;) (expression_statement "piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);" (assignment_expression "piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36)" identifier = (cast_expression "(int *)(*(int *)(sVar18 + 0x10) + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(sVar18 + 0x10) + iVar36)" ( (binary_expression "*(int *)(sVar18 + 0x10) + iVar36" (pointer_expression "*(int *)(sVar18 + 0x10)" * (cast_expression "(int *)(sVar18 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar18 + 0x10)" ( (binary_expression "sVar18 + 0x10" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4);" (assignment_expression "puVar9 = *(uint **)((int)&pOVar19[2].file_size_ + 4)" identifier = (pointer_expression "*(uint **)((int)&pOVar19[2].file_size_ + 4)" * (cast_expression "(uint **)((int)&pOVar19[2].file_size_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar19[2].file_size_ + 4)" ( (binary_expression "(int)&pOVar19[2].file_size_ + 4" (cast_expression "(int)&pOVar19[2].file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*piVar26 = pOVar19[2].o_;" (assignment_expression "*piVar26 = pOVar19[2].o_" (pointer_expression "*piVar26" * identifier) = (field_expression "pOVar19[2].o_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (puVar30 == puVar9) {\n              uVar22 = 4;\nLAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }\n              goto LAB_00222868;\n            }" if (parenthesized_expression "(puVar30 == puVar9)" ( (binary_expression "puVar30 == puVar9" identifier == identifier) )) (compound_statement "{\n              uVar22 = 4;\nLAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }\n              goto LAB_00222868;\n            }" { (expression_statement "uVar22 = 4;" (assignment_expression "uVar22 = 4" identifier = number_literal) ;) (labeled_statement "LAB_00222798:\n              iVar36 = *(int *)(pcVar33 + -0x7924);" statement_identifier : (expression_statement "iVar36 = *(int *)(pcVar33 + -0x7924);" (assignment_expression "iVar36 = *(int *)(pcVar33 + -0x7924)" identifier = (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) ))))) ;)) (if_statement "if (uVar22 == uVar28) {\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }" if (parenthesized_expression "(uVar22 == uVar28)" ( (binary_expression "uVar22 == uVar28" identifier == identifier) )) (compound_statement "{\n                if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }\n                return;\n              }" { (if_statement "if (*(uint **)&pOVar19[2].file_size_ != puVar30) {\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }" if (parenthesized_expression "(*(uint **)&pOVar19[2].file_size_ != puVar30)" ( (binary_expression "*(uint **)&pOVar19[2].file_size_ != puVar30" (pointer_expression "*(uint **)&pOVar19[2].file_size_" * (cast_expression "(uint **)&pOVar19[2].file_size_" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier)))) != identifier) )) (compound_statement "{\n                  *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n                }" { (expression_statement "*(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;" (assignment_expression "*(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_" (pointer_expression "*(uint **)((int)&pOVar19[2].file_size_ + 4)" * (cast_expression "(uint **)((int)&pOVar19[2].file_size_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar19[2].file_size_ + 4)" ( (binary_expression "(int)&pOVar19[2].file_size_ + 4" (cast_expression "(int)&pOVar19[2].file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = (pointer_expression "*(uint **)&pOVar19[2].file_size_" * (cast_expression "(uint **)&pOVar19[2].file_size_" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))))) ;) })) (return_statement "return;" return ;) })) (goto_statement "goto LAB_00222868;" goto statement_identifier ;) })) (expression_statement "iVar36 = *(int *)(pcVar33 + -0x7924);" (assignment_expression "iVar36 = *(int *)(pcVar33 + -0x7924)" identifier = (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = *(code **)(pcVar33 + -0x771c);" (assignment_expression "pcVar38 = *(code **)(pcVar33 + -0x771c)" identifier = (pointer_expression "*(code **)(pcVar33 + -0x771c)" * (cast_expression "(code **)(pcVar33 + -0x771c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x771c)" ( (binary_expression "pcVar33 + -0x771c" identifier + number_literal) ))))) ;) (expression_statement "pcVar24 = *(code **)(pcVar33 + -0x70a4);" (assignment_expression "pcVar24 = *(code **)(pcVar33 + -0x70a4)" identifier = (pointer_expression "*(code **)(pcVar33 + -0x70a4)" * (cast_expression "(code **)(pcVar33 + -0x70a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x70a4)" ( (binary_expression "pcVar33 + -0x70a4" identifier + number_literal) ))))) ;) (expression_statement "piVar16 = piVar26 + 1;" (assignment_expression "piVar16 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_00222730:\n            while( true ) {\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }" statement_identifier : (while_statement "while( true ) {\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              piVar17 = piVar16;\n              puVar9 = puVar30;\n              piVar16 = (int *)pOVar19[2].name_;\n              if (*(code **)(*piVar16 + 0x60) == pcVar38) break;\n              pcVar33 = pcVar35;\n              piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();\n              pcVar35 = pcVar33;\n              if (piVar16 != (int *)0x0) goto LAB_00222700;\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222758:\n              pcVar33 = pcVar35;\n              pcVar27 = pOVar19[2].name_;\n              uVar7 = (*pcVar34)(iVar36 + -0x4568);\n              (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = 0;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              pcVar35 = pcVar33;\n              if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }\n            }" { (expression_statement "piVar17 = piVar16;" (assignment_expression "piVar17 = piVar16" identifier = identifier) ;) (expression_statement "puVar9 = puVar30;" (assignment_expression "puVar9 = puVar30" identifier = identifier) ;) (expression_statement "piVar16 = (int *)pOVar19[2].name_;" (assignment_expression "piVar16 = (int *)pOVar19[2].name_" identifier = (cast_expression "(int *)pOVar19[2].name_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar19[2].name_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))) ;) (if_statement "if (*(code **)(*piVar16 + 0x60) == pcVar38) break;" if (parenthesized_expression "(*(code **)(*piVar16 + 0x60) == pcVar38)" ( (binary_expression "*(code **)(*piVar16 + 0x60) == pcVar38" (pointer_expression "*(code **)(*piVar16 + 0x60)" * (cast_expression "(code **)(*piVar16 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar16 + 0x60)" ( (binary_expression "*piVar16 + 0x60" (pointer_expression "*piVar16" * identifier) + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) (expression_statement "pcVar33 = pcVar35;" (assignment_expression "pcVar33 = pcVar35" identifier = identifier) ;) (expression_statement "piVar16 = (int *)(**(code **)(*piVar16 + 0x60))();" (assignment_expression "piVar16 = (int *)(**(code **)(*piVar16 + 0x60))()" identifier = (cast_expression "(int *)(**(code **)(*piVar16 + 0x60))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar16 + 0x60))()" (parenthesized_expression "(**(code **)(*piVar16 + 0x60))" ( (pointer_expression "**(code **)(*piVar16 + 0x60)" * (pointer_expression "*(code **)(*piVar16 + 0x60)" * (cast_expression "(code **)(*piVar16 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar16 + 0x60)" ( (binary_expression "*piVar16 + 0x60" (pointer_expression "*piVar16" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar35 = pcVar33;" (assignment_expression "pcVar35 = pcVar33" identifier = identifier) ;) (if_statement "if (piVar16 != (int *)0x0) goto LAB_00222700;" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00222700;" goto statement_identifier ;)) (expression_statement "pcVar34 = *(code **)(pcVar33 + -0x3610);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + -0x3610)" identifier = (pointer_expression "*(code **)(pcVar33 + -0x3610)" * (cast_expression "(code **)(pcVar33 + -0x3610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x3610)" ( (binary_expression "pcVar33 + -0x3610" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00222758:\n              pcVar33 = pcVar35;" statement_identifier : (expression_statement "pcVar33 = pcVar35;" (assignment_expression "pcVar33 = pcVar35" identifier = identifier) ;)) (expression_statement "pcVar27 = pOVar19[2].name_;" (assignment_expression "pcVar27 = pOVar19[2].name_" identifier = (field_expression "pOVar19[2].name_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar7 = (*pcVar34)(iVar36 + -0x4568);" (assignment_expression "uVar7 = (*pcVar34)(iVar36 + -0x4568)" identifier = (call_expression "(*pcVar34)(iVar36 + -0x4568)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(iVar36 + -0x4568)" ( (binary_expression "iVar36 + -0x4568" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);" (call_expression "(**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7)" (parenthesized_expression "(**(code **)(pcVar33 + -0x77ec))" ( (pointer_expression "**(code **)(pcVar33 + -0x77ec)" * (pointer_expression "*(code **)(pcVar33 + -0x77ec)" * (cast_expression "(code **)(pcVar33 + -0x77ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x77ec)" ( (binary_expression "pcVar33 + -0x77ec" identifier + number_literal) ))))) )) (argument_list "(pcVar27,uVar7)" ( identifier , identifier ))) ;) (expression_statement "puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);" (assignment_expression "puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4)" identifier = (pointer_expression "*(uint **)((int)&pOVar19[2].file_size_ + 4)" * (cast_expression "(uint **)((int)&pOVar19[2].file_size_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar19[2].file_size_ + 4)" ( (binary_expression "(int)&pOVar19[2].file_size_ + 4" (cast_expression "(int)&pOVar19[2].file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*piVar17 = 0;" (assignment_expression "*piVar17 = 0" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "puVar30 = puVar9 + 1;" (assignment_expression "puVar30 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar16 = piVar17 + 1;" (assignment_expression "piVar16 = piVar17 + 1" identifier = (binary_expression "piVar17 + 1" identifier + number_literal)) ;) (expression_statement "pcVar35 = pcVar33;" (assignment_expression "pcVar35 = pcVar33" identifier = identifier) ;) (if_statement "if (puVar13 == puVar9 + 1) {\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }" if (parenthesized_expression "(puVar13 == puVar9 + 1)" ( (binary_expression "puVar13 == puVar9 + 1" identifier == (binary_expression "puVar9 + 1" identifier + number_literal)) )) (compound_statement "{\nLAB_00222794:\n                puVar30 = puVar9 + 1;\n                uVar22 = (int)piVar17 + (4 - (int)piVar26);\n                goto LAB_00222798;\n              }" { (labeled_statement "LAB_00222794:\n                puVar30 = puVar9 + 1;" statement_identifier : (expression_statement "puVar30 = puVar9 + 1;" (assignment_expression "puVar30 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;)) (expression_statement "uVar22 = (int)piVar17 + (4 - (int)piVar26);" (assignment_expression "uVar22 = (int)piVar17 + (4 - (int)piVar26)" identifier = (binary_expression "(int)piVar17 + (4 - (int)piVar26)" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(4 - (int)piVar26)" ( (binary_expression "4 - (int)piVar26" number_literal - (cast_expression "(int)piVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (goto_statement "goto LAB_00222798;" goto statement_identifier ;) })) }))) (if_statement "if (*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)) {\n              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\n              if (piVar16 == (int *)0x0) goto LAB_00222758;\nLAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = iVar2;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              if (puVar13 == puVar9 + 1) goto LAB_00222794;\n              goto LAB_00222730;\n            }" if (parenthesized_expression "(*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2))" ( (binary_expression "*puVar9 < (uint)(piVar16[0xf] - piVar16[0xe] >> 2)" (pointer_expression "*puVar9" * identifier) < (call_expression "(uint)(piVar16[0xf] - piVar16[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar16[0xf] - piVar16[0xe] >> 2)" ( (binary_expression "piVar16[0xf] - piVar16[0xe] >> 2" (binary_expression "piVar16[0xf] - piVar16[0xe]" (subscript_expression "piVar16[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar16[0xe]" identifier [ number_literal ])) >> number_literal) )))) )) (compound_statement "{\n              piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);\n              pcVar34 = *(code **)(pcVar33 + -0x3610);\n              if (piVar16 == (int *)0x0) goto LAB_00222758;\nLAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }\n              puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n              *piVar17 = iVar2;\n              puVar30 = puVar9 + 1;\n              piVar16 = piVar17 + 1;\n              if (puVar13 == puVar9 + 1) goto LAB_00222794;\n              goto LAB_00222730;\n            }" { (expression_statement "piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4);" (assignment_expression "piVar16 = *(int **)(piVar16[0xe] + *puVar9 * 4)" identifier = (pointer_expression "*(int **)(piVar16[0xe] + *puVar9 * 4)" * (cast_expression "(int **)(piVar16[0xe] + *puVar9 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar16[0xe] + *puVar9 * 4)" ( (binary_expression "piVar16[0xe] + *puVar9 * 4" (subscript_expression "piVar16[0xe]" identifier [ number_literal ]) + (binary_expression "*puVar9 * 4" (pointer_expression "*puVar9" * identifier) * number_literal)) ))))) ;) (expression_statement "pcVar34 = *(code **)(pcVar33 + -0x3610);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + -0x3610)" identifier = (pointer_expression "*(code **)(pcVar33 + -0x3610)" * (cast_expression "(code **)(pcVar33 + -0x3610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x3610)" ( (binary_expression "pcVar33 + -0x3610" identifier + number_literal) ))))) ;) (if_statement "if (piVar16 == (int *)0x0) goto LAB_00222758;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00222758;" goto statement_identifier ;)) (labeled_statement "LAB_00222700:\n              if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }" statement_identifier : (if_statement "if (*(code **)(*piVar16 + 0x2c) == pcVar24) {\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }\n              else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }" if (parenthesized_expression "(*(code **)(*piVar16 + 0x2c) == pcVar24)" ( (binary_expression "*(code **)(*piVar16 + 0x2c) == pcVar24" (pointer_expression "*(code **)(*piVar16 + 0x2c)" * (cast_expression "(code **)(*piVar16 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar16 + 0x2c)" ( (binary_expression "*piVar16 + 0x2c" (pointer_expression "*piVar16" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n                iVar2 = piVar16[0x19];\n                iVar39 = *(int *)(pcVar33 + -0x7924);\n                if (iVar2 == -1) goto LAB_00222814;\n              }" { (expression_statement "iVar2 = piVar16[0x19];" (assignment_expression "iVar2 = piVar16[0x19]" identifier = (subscript_expression "piVar16[0x19]" identifier [ number_literal ])) ;) (expression_statement "iVar39 = *(int *)(pcVar33 + -0x7924);" (assignment_expression "iVar39 = *(int *)(pcVar33 + -0x7924)" identifier = (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == -1) goto LAB_00222814;" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00222814;" goto statement_identifier ;)) }) (else_clause "else {\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }" else (compound_statement "{\n                pcVar33 = pcVar35;\n                iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);\n                pcVar35 = pcVar33;\n              }" { (expression_statement "pcVar33 = pcVar35;" (assignment_expression "pcVar33 = pcVar35" identifier = identifier) ;) (expression_statement "iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16);" (assignment_expression "iVar2 = (**(code **)(*piVar16 + 0x2c))(piVar16)" identifier = (call_expression "(**(code **)(*piVar16 + 0x2c))(piVar16)" (parenthesized_expression "(**(code **)(*piVar16 + 0x2c))" ( (pointer_expression "**(code **)(*piVar16 + 0x2c)" * (pointer_expression "*(code **)(*piVar16 + 0x2c)" * (cast_expression "(code **)(*piVar16 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar16 + 0x2c)" ( (binary_expression "*piVar16 + 0x2c" (pointer_expression "*piVar16" * identifier) + number_literal) ))))) )) (argument_list "(piVar16)" ( identifier )))) ;) (expression_statement "pcVar35 = pcVar33;" (assignment_expression "pcVar35 = pcVar33" identifier = identifier) ;) })))) (expression_statement "puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4);" (assignment_expression "puVar13 = *(uint **)((int)&pOVar19[2].file_size_ + 4)" identifier = (pointer_expression "*(uint **)((int)&pOVar19[2].file_size_ + 4)" * (cast_expression "(uint **)((int)&pOVar19[2].file_size_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar19[2].file_size_ + 4)" ( (binary_expression "(int)&pOVar19[2].file_size_ + 4" (cast_expression "(int)&pOVar19[2].file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*piVar17 = iVar2;" (assignment_expression "*piVar17 = iVar2" (pointer_expression "*piVar17" * identifier) = identifier) ;) (expression_statement "puVar30 = puVar9 + 1;" (assignment_expression "puVar30 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar16 = piVar17 + 1;" (assignment_expression "piVar16 = piVar17 + 1" identifier = (binary_expression "piVar17 + 1" identifier + number_literal)) ;) (if_statement "if (puVar13 == puVar9 + 1) goto LAB_00222794;" if (parenthesized_expression "(puVar13 == puVar9 + 1)" ( (binary_expression "puVar13 == puVar9 + 1" identifier == (binary_expression "puVar9 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00222794;" goto statement_identifier ;)) (goto_statement "goto LAB_00222730;" goto statement_identifier ;) })) (expression_statement "iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404;" (assignment_expression "iVar39 = *(int *)(pcVar33 + -0x7924) + -0x3404" identifier = (binary_expression "*(int *)(pcVar33 + -0x7924) + -0x3404" (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8);" (call_expression "(**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8)" (parenthesized_expression "(**(code **)(pcVar33 + -0x7810))" ( (pointer_expression "**(code **)(pcVar33 + -0x7810)" * (pointer_expression "*(code **)(pcVar33 + -0x7810)" * (cast_expression "(code **)(pcVar33 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x7810)" ( (binary_expression "pcVar33 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + -0x7fc4) + 0x4570,0x5c8)" ( (binary_expression "*(int *)(pcVar33 + -0x7fc4) + 0x4570" (pointer_expression "*(int *)(pcVar33 + -0x7fc4)" * (cast_expression "(int *)(pcVar33 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7fc4)" ( (binary_expression "pcVar33 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (labeled_statement "LAB_00222814:\n            sVar18 = 0x1043;" statement_identifier : (expression_statement "sVar18 = 0x1043;" (assignment_expression "sVar18 = 0x1043" identifier = number_literal) ;)) (expression_statement "pOVar21 = (Output_file *)(iVar39 - 0x2a28);" (assignment_expression "pOVar21 = (Output_file *)(iVar39 - 0x2a28)" identifier = (cast_expression "(Output_file *)(iVar39 - 0x2a28)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 - 0x2a28)" ( (binary_expression "iVar39 - 0x2a28" identifier - number_literal) )))) ;) (expression_statement "pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);" (assignment_expression "pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574)" identifier = (cast_expression "(Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(pcVar33 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar33 + -0x7fc4)" * (cast_expression "(int *)(pcVar33 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7fc4)" ( (binary_expression "pcVar33 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar33 + -0x7810))();" (call_expression "(**(code **)(pcVar33 + -0x7810))()" (parenthesized_expression "(**(code **)(pcVar33 + -0x7810))" ( (pointer_expression "**(code **)(pcVar33 + -0x7810)" * (pointer_expression "*(code **)(pcVar33 + -0x7810)" * (cast_expression "(code **)(pcVar33 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x7810)" ( (binary_expression "pcVar33 + -0x7810" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar36 = extraout_v1_00;" (assignment_expression "iVar36 = extraout_v1_00" identifier = identifier) ;) (labeled_statement "LAB_0022282c:\n            uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);" statement_identifier : (expression_statement "uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);" (assignment_expression "uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22)" identifier = (call_expression "(uint)(*(uint *)(sVar18 + 0xc) < uVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(sVar18 + 0xc) < uVar22)" ( (binary_expression "*(uint *)(sVar18 + 0xc) < uVar22" (pointer_expression "*(uint *)(sVar18 + 0xc)" * (cast_expression "(uint *)(sVar18 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar18 + 0xc)" ( (binary_expression "sVar18 + 0xc" identifier + number_literal) )))) < identifier) )))) ;)) }) while (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) ;) })) })) (labeled_statement "Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_ffffff84),sVar18,pOVar21);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_ffffff84),sVar18,pOVar21);" (call_expression "get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_ffffff84),sVar18,pOVar21)" identifier (argument_list "(pOVar15,CONCAT44(pcVar35,in_stack_ffffff84),sVar18,pOVar21)" ( identifier , (call_expression "CONCAT44(pcVar35,in_stack_ffffff84)" identifier (argument_list "(pcVar35,in_stack_ffffff84)" ( identifier , identifier ))) , identifier , identifier ))) ;)) (goto_statement "goto LAB_0022284c;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0022284c:\n    iVar36 = *(int *)(pcVar33 + -0x7924) + -0x2a78;\n    (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xe3,iVar36);\nLAB_00222868:\n    (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x4290);\n  }" else (compound_statement "{\nLAB_0022284c:\n    iVar36 = *(int *)(pcVar33 + -0x7924) + -0x2a78;\n    (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xe3,iVar36);\nLAB_00222868:\n    (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x4290);\n  }" { (labeled_statement "LAB_0022284c:\n    iVar36 = *(int *)(pcVar33 + -0x7924) + -0x2a78;" statement_identifier : (expression_statement "iVar36 = *(int *)(pcVar33 + -0x7924) + -0x2a78;" (assignment_expression "iVar36 = *(int *)(pcVar33 + -0x7924) + -0x2a78" identifier = (binary_expression "*(int *)(pcVar33 + -0x7924) + -0x2a78" (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "(**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xe3,iVar36);" (call_expression "(**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xe3,iVar36)" (parenthesized_expression "(**(code **)(pcVar33 + -0x7810))" ( (pointer_expression "**(code **)(pcVar33 + -0x7810)" * (pointer_expression "*(code **)(pcVar33 + -0x7810)" * (cast_expression "(code **)(pcVar33 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x7810)" ( (binary_expression "pcVar33 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xe3,iVar36)" ( (binary_expression "*(int *)(pcVar33 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar33 + -0x7fc4)" * (cast_expression "(int *)(pcVar33 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7fc4)" ( (binary_expression "pcVar33 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00222868:\n    (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x4290);" statement_identifier : (expression_statement "(**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x4290);" (call_expression "(**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x4290)" (parenthesized_expression "(**(code **)(pcVar33 + -0x7810))" ( (pointer_expression "**(code **)(pcVar33 + -0x7810)" * (pointer_expression "*(code **)(pcVar33 + -0x7810)" * (cast_expression "(code **)(pcVar33 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x7810)" ( (binary_expression "pcVar33 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x4290)" ( (binary_expression "*(int *)(pcVar33 + -0x7924) + -0x48b4" (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar36 + -0x4290" identifier + number_literal) ))) ;)) }))) (expression_statement "(**(code **)(pcVar33 + -0x7810))\n            (*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0);" (call_expression "(**(code **)(pcVar33 + -0x7810))\n            (*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0)" (parenthesized_expression "(**(code **)(pcVar33 + -0x7810))" ( (pointer_expression "**(code **)(pcVar33 + -0x7810)" * (pointer_expression "*(code **)(pcVar33 + -0x7810)" * (cast_expression "(code **)(pcVar33 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x7810)" ( (binary_expression "pcVar33 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0)" ( (binary_expression "*(int *)(pcVar33 + -0x7fc4) + 0x4584" (pointer_expression "*(int *)(pcVar33 + -0x7fc4)" * (cast_expression "(int *)(pcVar33 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7fc4)" ( (binary_expression "pcVar33 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar33 + -0x7924) + -0x32e0" (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0022289c:\n  sVar18 = 0xcf;" statement_identifier : (expression_statement "sVar18 = 0xcf;" (assignment_expression "sVar18 = 0xcf" identifier = number_literal) ;)) (expression_statement "pcVar35 = *(code **)(pcVar33 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcVar33 + -0x7810)" identifier = (pointer_expression "*(code **)(pcVar33 + -0x7810)" * (cast_expression "(code **)(pcVar33 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x7810)" ( (binary_expression "pcVar33 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pOVar19 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574);" (assignment_expression "pOVar19 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574)" identifier = (cast_expression "(Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x3574)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(pcVar33 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar33 + -0x7fc4)" * (cast_expression "(int *)(pcVar33 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7fc4)" ( (binary_expression "pcVar33 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar35)(pOVar19,0xcf,*(int *)(pcVar33 + -0x7924) + -0x29fc);" (call_expression "(*pcVar35)(pOVar19,0xcf,*(int *)(pcVar33 + -0x7924) + -0x29fc)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(pOVar19,0xcf,*(int *)(pcVar33 + -0x7924) + -0x29fc)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar33 + -0x7924) + -0x29fc" (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar35 = pcVar35 + 0x2a6988;" (assignment_expression "pcVar35 = pcVar35 + 0x2a6988" identifier = (binary_expression "pcVar35 + 0x2a6988" identifier + number_literal)) ;) (if_statement "if (*(int *)&pOVar19[1].file_size_ << 2 < 0) {\n    pOVar21 = (Output_file *)pOVar19[1].name_;\n    iVar36 = pOVar19[1].o_;\n    if (*(int *)&pOVar19[1].file_size_ << 1 < 0) {\n      uVar28 = *(uint *)&pOVar19->map_is_anonymous_;\n      if (pOVar19->base_ == (uchar *)0x0) {\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar33 = pcVar35;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222ad8;\nLAB_00222948:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar35 + -0x7924);\n              pcVar38 = *(code **)(pcVar35 + -0x771c);\n              pcVar24 = *(code **)(pcVar35 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222a04:\n            iVar36 = *(int *)(pcVar35 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222b4c;\n          }\n        }\nLAB_00222aec:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar33,in_stack_ffffff3c),sVar18,pOVar21);\n      }\n      (**(code **)(pcVar35 + -0x7810))\n                (*(int *)(pcVar35 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar35 + -0x7924) + -0x32e0);\n    }\n    (**(code **)(pcVar35 + -0x7810))\n              (*(int *)(pcVar35 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar35 + -0x7924) + -0x29fc);\n  }" if (parenthesized_expression "(*(int *)&pOVar19[1].file_size_ << 2 < 0)" ( (binary_expression "*(int *)&pOVar19[1].file_size_ << 2 < 0" (binary_expression "*(int *)&pOVar19[1].file_size_ << 2" (pointer_expression "*(int *)&pOVar19[1].file_size_" * (cast_expression "(int *)&pOVar19[1].file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar19[1].file_size_" & (field_expression "pOVar19[1].file_size_" (subscript_expression "pOVar19[1]" identifier [ number_literal ]) . field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n    pOVar21 = (Output_file *)pOVar19[1].name_;\n    iVar36 = pOVar19[1].o_;\n    if (*(int *)&pOVar19[1].file_size_ << 1 < 0) {\n      uVar28 = *(uint *)&pOVar19->map_is_anonymous_;\n      if (pOVar19->base_ == (uchar *)0x0) {\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar33 = pcVar35;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222ad8;\nLAB_00222948:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar35 + -0x7924);\n              pcVar38 = *(code **)(pcVar35 + -0x771c);\n              pcVar24 = *(code **)(pcVar35 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222a04:\n            iVar36 = *(int *)(pcVar35 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222b4c;\n          }\n        }\nLAB_00222aec:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar33,in_stack_ffffff3c),sVar18,pOVar21);\n      }\n      (**(code **)(pcVar35 + -0x7810))\n                (*(int *)(pcVar35 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar35 + -0x7924) + -0x32e0);\n    }\n    (**(code **)(pcVar35 + -0x7810))\n              (*(int *)(pcVar35 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar35 + -0x7924) + -0x29fc);\n  }" { (expression_statement "pOVar21 = (Output_file *)pOVar19[1].name_;" (assignment_expression "pOVar21 = (Output_file *)pOVar19[1].name_" identifier = (cast_expression "(Output_file *)pOVar19[1].name_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar19[1].name_" (subscript_expression "pOVar19[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "iVar36 = pOVar19[1].o_;" (assignment_expression "iVar36 = pOVar19[1].o_" identifier = (field_expression "pOVar19[1].o_" (subscript_expression "pOVar19[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (*(int *)&pOVar19[1].file_size_ << 1 < 0) {\n      uVar28 = *(uint *)&pOVar19->map_is_anonymous_;\n      if (pOVar19->base_ == (uchar *)0x0) {\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar33 = pcVar35;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222ad8;\nLAB_00222948:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar35 + -0x7924);\n              pcVar38 = *(code **)(pcVar35 + -0x771c);\n              pcVar24 = *(code **)(pcVar35 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222a04:\n            iVar36 = *(int *)(pcVar35 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222b4c;\n          }\n        }\nLAB_00222aec:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar33,in_stack_ffffff3c),sVar18,pOVar21);\n      }\n      (**(code **)(pcVar35 + -0x7810))\n                (*(int *)(pcVar35 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar35 + -0x7924) + -0x32e0);\n    }" if (parenthesized_expression "(*(int *)&pOVar19[1].file_size_ << 1 < 0)" ( (binary_expression "*(int *)&pOVar19[1].file_size_ << 1 < 0" (binary_expression "*(int *)&pOVar19[1].file_size_ << 1" (pointer_expression "*(int *)&pOVar19[1].file_size_" * (cast_expression "(int *)&pOVar19[1].file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar19[1].file_size_" & (field_expression "pOVar19[1].file_size_" (subscript_expression "pOVar19[1]" identifier [ number_literal ]) . field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n      uVar28 = *(uint *)&pOVar19->map_is_anonymous_;\n      if (pOVar19->base_ == (uchar *)0x0) {\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar33 = pcVar35;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222ad8;\nLAB_00222948:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar35 + -0x7924);\n              pcVar38 = *(code **)(pcVar35 + -0x771c);\n              pcVar24 = *(code **)(pcVar35 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222a04:\n            iVar36 = *(int *)(pcVar35 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222b4c;\n          }\n        }\nLAB_00222aec:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar33,in_stack_ffffff3c),sVar18,pOVar21);\n      }\n      (**(code **)(pcVar35 + -0x7810))\n                (*(int *)(pcVar35 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar35 + -0x7924) + -0x32e0);\n    }" { (expression_statement "uVar28 = *(uint *)&pOVar19->map_is_anonymous_;" (assignment_expression "uVar28 = *(uint *)&pOVar19->map_is_anonymous_" identifier = (pointer_expression "*(uint *)&pOVar19->map_is_anonymous_" * (cast_expression "(uint *)&pOVar19->map_is_anonymous_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar19->map_is_anonymous_" & (field_expression "pOVar19->map_is_anonymous_" identifier -> field_identifier))))) ;) (if_statement "if (pOVar19->base_ == (uchar *)0x0) {\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar33 = pcVar35;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222ad8;\nLAB_00222948:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar35 + -0x7924);\n              pcVar38 = *(code **)(pcVar35 + -0x771c);\n              pcVar24 = *(code **)(pcVar35 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222a04:\n            iVar36 = *(int *)(pcVar35 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222b4c;\n          }\n        }\nLAB_00222aec:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar33,in_stack_ffffff3c),sVar18,pOVar21);\n      }" if (parenthesized_expression "(pOVar19->base_ == (uchar *)0x0)" ( (binary_expression "pOVar19->base_ == (uchar *)0x0" (field_expression "pOVar19->base_" identifier -> field_identifier) == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar33 = pcVar35;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222ad8;\nLAB_00222948:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar35 + -0x7924);\n              pcVar38 = *(code **)(pcVar35 + -0x771c);\n              pcVar24 = *(code **)(pcVar35 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222a04:\n            iVar36 = *(int *)(pcVar35 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222b4c;\n          }\n        }\nLAB_00222aec:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar33,in_stack_ffffff3c),sVar18,pOVar21);\n      }" { (expression_statement "uVar22 = uVar28 + iVar36;" (assignment_expression "uVar22 = uVar28 + iVar36" identifier = (binary_expression "uVar28 + iVar36" identifier + identifier)) ;) (expression_statement "pOVar15 = pOVar19;" (assignment_expression "pOVar15 = pOVar19" identifier = identifier) ;) (expression_statement "pcVar33 = pcVar35;" (assignment_expression "pcVar33 = pcVar35" identifier = identifier) ;) (if_statement "if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222ad8;\nLAB_00222948:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar35 + -0x7924);\n              pcVar38 = *(code **)(pcVar35 + -0x771c);\n              pcVar24 = *(code **)(pcVar35 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222a04:\n            iVar36 = *(int *)(pcVar35 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222b4c;\n          }\n        }" if (parenthesized_expression "(-1 < (int)pOVar21)" ( (binary_expression "-1 < (int)pOVar21" number_literal < (cast_expression "(int)pOVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222ad8;\nLAB_00222948:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar35 + -0x7924);\n              pcVar38 = *(code **)(pcVar35 + -0x771c);\n              pcVar24 = *(code **)(pcVar35 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222a04:\n            iVar36 = *(int *)(pcVar35 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222b4c;\n          }\n        }" { (expression_statement "pOVar15 = *(Output_file **)(sVar18 + 8);" (assignment_expression "pOVar15 = *(Output_file **)(sVar18 + 8)" identifier = (pointer_expression "*(Output_file **)(sVar18 + 8)" * (cast_expression "(Output_file **)(sVar18 + 8)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(sVar18 + 8)" ( (binary_expression "sVar18 + 8" identifier + number_literal) ))))) ;) (expression_statement "pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));" (assignment_expression "pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28))" identifier = (cast_expression "(Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28))" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar21->name_ + (uint)(uVar22 < uVar28))" ( (binary_expression "(int)&pOVar21->name_ + (uint)(uVar22 < uVar28)" (cast_expression "(int)&pOVar21->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar21->name_" & (field_expression "pOVar21->name_" identifier -> field_identifier))) + (call_expression "(uint)(uVar22 < uVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < uVar28)" ( (binary_expression "uVar22 < uVar28" identifier < identifier) )))) )))) ;) (expression_statement "pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);" (assignment_expression "pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8)" identifier = (cast_expression "(Output_file *)(uint)((int)pOVar15 < (int)pOVar8)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)pOVar15 < (int)pOVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pOVar15 < (int)pOVar8)" ( (binary_expression "(int)pOVar15 < (int)pOVar8" (cast_expression "(int)pOVar15" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pOVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222ad8;\nLAB_00222948:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar35 + -0x7924);\n              pcVar38 = *(code **)(pcVar35 + -0x771c);\n              pcVar24 = *(code **)(pcVar35 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222a04:\n            iVar36 = *(int *)(pcVar35 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222b4c;\n          }" if (parenthesized_expression "(pOVar21 == (Output_file *)0x0)" ( (binary_expression "pOVar21 == (Output_file *)0x0" identifier == (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (pOVar15 == pOVar8) goto LAB_00222ad8;\nLAB_00222948:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar35 + -0x7924);\n              pcVar38 = *(code **)(pcVar35 + -0x771c);\n              pcVar24 = *(code **)(pcVar35 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222a04:\n            iVar36 = *(int *)(pcVar35 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222b4c;\n          }" { (if_statement "if (pOVar15 == pOVar8) goto LAB_00222ad8;" if (parenthesized_expression "(pOVar15 == pOVar8)" ( (binary_expression "pOVar15 == pOVar8" identifier == identifier) )) (goto_statement "goto LAB_00222ad8;" goto statement_identifier ;)) (labeled_statement "LAB_00222948:\n            uVar10 = pOVar19[2].o_;" statement_identifier : (expression_statement "uVar10 = pOVar19[2].o_;" (assignment_expression "uVar10 = pOVar19[2].o_" identifier = (field_expression "pOVar19[2].o_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier)) ;)) (expression_statement "puVar9 = *(uint **)&pOVar19[2].file_size_;" (assignment_expression "puVar9 = *(uint **)&pOVar19[2].file_size_" identifier = (pointer_expression "*(uint **)&pOVar19[2].file_size_" * (cast_expression "(uint **)&pOVar19[2].file_size_" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))))) ;) (expression_statement "puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);" (assignment_expression "puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4)" identifier = (pointer_expression "*(uint **)((int)&pOVar19[2].file_size_ + 4)" * (cast_expression "(uint **)((int)&pOVar19[2].file_size_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar19[2].file_size_ + 4)" ( (binary_expression "(int)&pOVar19[2].file_size_ + 4" (cast_expression "(int)&pOVar19[2].file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);" (assignment_expression "piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36)" identifier = (cast_expression "(int *)(*(int *)(sVar18 + 0x10) + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(sVar18 + 0x10) + iVar36)" ( (binary_expression "*(int *)(sVar18 + 0x10) + iVar36" (pointer_expression "*(int *)(sVar18 + 0x10)" * (cast_expression "(int *)(sVar18 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar18 + 0x10)" ( (binary_expression "sVar18 + 0x10" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "piVar16 = piVar26 + 1;" (assignment_expression "piVar16 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) (expression_statement "*piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar26" * identifier) = (binary_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10)" ( (binary_expression "(uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10" (binary_expression "(uVar10 >> 0x10) << 0x18" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar10 >> 0x18) << 0x10" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff)" ( (binary_expression "(uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff" (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (if_statement "if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar35 + -0x7924);\n              pcVar38 = *(code **)(pcVar35 + -0x771c);\n              pcVar24 = *(code **)(pcVar35 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );\n            }" if (parenthesized_expression "(puVar9 != puVar30)" ( (binary_expression "puVar9 != puVar30" identifier != identifier) )) (compound_statement "{\n              iVar36 = *(int *)(pcVar35 + -0x7924);\n              pcVar38 = *(code **)(pcVar35 + -0x771c);\n              pcVar24 = *(code **)(pcVar35 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );\n            }" { (expression_statement "iVar36 = *(int *)(pcVar35 + -0x7924);" (assignment_expression "iVar36 = *(int *)(pcVar35 + -0x7924)" identifier = (pointer_expression "*(int *)(pcVar35 + -0x7924)" * (cast_expression "(int *)(pcVar35 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7924)" ( (binary_expression "pcVar35 + -0x7924" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = *(code **)(pcVar35 + -0x771c);" (assignment_expression "pcVar38 = *(code **)(pcVar35 + -0x771c)" identifier = (pointer_expression "*(code **)(pcVar35 + -0x771c)" * (cast_expression "(code **)(pcVar35 + -0x771c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x771c)" ( (binary_expression "pcVar35 + -0x771c" identifier + number_literal) ))))) ;) (expression_statement "pcVar24 = *(code **)(pcVar35 + -0x70a4);" (assignment_expression "pcVar24 = *(code **)(pcVar35 + -0x70a4)" identifier = (pointer_expression "*(code **)(pcVar35 + -0x70a4)" * (cast_expression "(code **)(pcVar35 + -0x70a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x70a4)" ( (binary_expression "pcVar35 + -0x70a4" identifier + number_literal) ))))) ;) (do_statement "do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              } while( true );" do (compound_statement "{\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }\n              }" { (expression_statement "piVar17 = (int *)pOVar19[2].name_;" (assignment_expression "piVar17 = (int *)pOVar19[2].name_" identifier = (cast_expression "(int *)pOVar19[2].name_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar19[2].name_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))) ;) (if_statement "if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }" if (parenthesized_expression "(*(code **)(*piVar17 + 0x60) == pcVar38)" ( (binary_expression "*(code **)(*piVar17 + 0x60) == pcVar38" (pointer_expression "*(code **)(*piVar17 + 0x60)" * (cast_expression "(code **)(*piVar17 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar17 + 0x60)" ( (binary_expression "*piVar17 + 0x60" (pointer_expression "*piVar17" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222a60;\nLAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }" { (if_statement "if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222abc;" if (parenthesized_expression "((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9)" ( (binary_expression "(uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9" (call_expression "(uint)(piVar17[0xf] - piVar17[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar17[0xf] - piVar17[0xe] >> 2)" ( (binary_expression "piVar17[0xf] - piVar17[0xe] >> 2" (binary_expression "piVar17[0xf] - piVar17[0xe]" (subscript_expression "piVar17[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar17[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= (pointer_expression "*puVar9" * identifier)) )) (goto_statement "goto LAB_00222abc;" goto statement_identifier ;)) (expression_statement "piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);" (assignment_expression "piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4)" identifier = (pointer_expression "*(int **)(piVar17[0xe] + *puVar9 * 4)" * (cast_expression "(int **)(piVar17[0xe] + *puVar9 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar17[0xe] + *puVar9 * 4)" ( (binary_expression "piVar17[0xe] + *puVar9 * 4" (subscript_expression "piVar17[0xe]" identifier [ number_literal ]) + (binary_expression "*puVar9 * 4" (pointer_expression "*puVar9" * identifier) * number_literal)) ))))) ;) (expression_statement "pcVar34 = *(code **)(pcVar35 + -0x3610);" (assignment_expression "pcVar34 = *(code **)(pcVar35 + -0x3610)" identifier = (pointer_expression "*(code **)(pcVar35 + -0x3610)" * (cast_expression "(code **)(pcVar35 + -0x3610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x3610)" ( (binary_expression "pcVar35 + -0x3610" identifier + number_literal) ))))) ;) (if_statement "if (piVar17 == (int *)0x0) goto LAB_00222a60;" if (parenthesized_expression "(piVar17 == (int *)0x0)" ( (binary_expression "piVar17 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00222a60;" goto statement_identifier ;)) (labeled_statement "LAB_002229c8:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }" statement_identifier : (if_statement "if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }\n                  else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }" if (parenthesized_expression "(*(code **)(*piVar17 + 0x2c) == pcVar24)" ( (binary_expression "*(code **)(*piVar17 + 0x2c) == pcVar24" (pointer_expression "*(code **)(*piVar17 + 0x2c)" * (cast_expression "(code **)(*piVar17 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar17 + 0x2c)" ( (binary_expression "*piVar17 + 0x2c" (pointer_expression "*piVar17" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222aa4;\n                  }" { (expression_statement "uVar10 = piVar17[0x19];" (assignment_expression "uVar10 = piVar17[0x19]" identifier = (subscript_expression "piVar17[0x19]" identifier [ number_literal ])) ;) (if_statement "if (uVar10 == 0xffffffff) goto LAB_00222aa4;" if (parenthesized_expression "(uVar10 == 0xffffffff)" ( (binary_expression "uVar10 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00222aa4;" goto statement_identifier ;)) }) (else_clause "else {\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }" else (compound_statement "{\n                    pcVar35 = pcVar33;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar33 = pcVar35;\n                  }" { (expression_statement "pcVar35 = pcVar33;" (assignment_expression "pcVar35 = pcVar33" identifier = identifier) ;) (expression_statement "uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);" (assignment_expression "uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17)" identifier = (call_expression "(**(code **)(*piVar17 + 0x2c))(piVar17)" (parenthesized_expression "(**(code **)(*piVar17 + 0x2c))" ( (pointer_expression "**(code **)(*piVar17 + 0x2c)" * (pointer_expression "*(code **)(*piVar17 + 0x2c)" * (cast_expression "(code **)(*piVar17 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar17 + 0x2c)" ( (binary_expression "*piVar17 + 0x2c" (pointer_expression "*piVar17" * identifier) + number_literal) ))))) )) (argument_list "(piVar17)" ( identifier )))) ;) (expression_statement "pcVar33 = pcVar35;" (assignment_expression "pcVar33 = pcVar35" identifier = identifier) ;) })))) (expression_statement "iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10)" ( (binary_expression "(uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10" (binary_expression "(uVar10 >> 0x10) << 0x18" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar10 >> 0x18) << 0x10" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff)" ( (binary_expression "(uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff" (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }) (else_clause "else {\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }" else (compound_statement "{\n                  pcVar35 = pcVar33;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar33 = pcVar35;\n                  if (piVar17 != (int *)0x0) goto LAB_002229c8;\n                  pcVar34 = *(code **)(pcVar35 + -0x3610);\nLAB_00222a60:\n                  pcVar35 = pcVar33;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar33 = pcVar35;\n                }" { (expression_statement "pcVar35 = pcVar33;" (assignment_expression "pcVar35 = pcVar33" identifier = identifier) ;) (expression_statement "piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();" (assignment_expression "piVar17 = (int *)(**(code **)(*piVar17 + 0x60))()" identifier = (cast_expression "(int *)(**(code **)(*piVar17 + 0x60))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar17 + 0x60))()" (parenthesized_expression "(**(code **)(*piVar17 + 0x60))" ( (pointer_expression "**(code **)(*piVar17 + 0x60)" * (pointer_expression "*(code **)(*piVar17 + 0x60)" * (cast_expression "(code **)(*piVar17 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar17 + 0x60)" ( (binary_expression "*piVar17 + 0x60" (pointer_expression "*piVar17" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar33 = pcVar35;" (assignment_expression "pcVar33 = pcVar35" identifier = identifier) ;) (if_statement "if (piVar17 != (int *)0x0) goto LAB_002229c8;" if (parenthesized_expression "(piVar17 != (int *)0x0)" ( (binary_expression "piVar17 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002229c8;" goto statement_identifier ;)) (expression_statement "pcVar34 = *(code **)(pcVar35 + -0x3610);" (assignment_expression "pcVar34 = *(code **)(pcVar35 + -0x3610)" identifier = (pointer_expression "*(code **)(pcVar35 + -0x3610)" * (cast_expression "(code **)(pcVar35 + -0x3610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x3610)" ( (binary_expression "pcVar35 + -0x3610" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00222a60:\n                  pcVar35 = pcVar33;" statement_identifier : (expression_statement "pcVar35 = pcVar33;" (assignment_expression "pcVar35 = pcVar33" identifier = identifier) ;)) (expression_statement "pcVar27 = pOVar19[2].name_;" (assignment_expression "pcVar27 = pOVar19[2].name_" identifier = (field_expression "pOVar19[2].name_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar7 = (*pcVar34)(iVar36 + -0x4568);" (assignment_expression "uVar7 = (*pcVar34)(iVar36 + -0x4568)" identifier = (call_expression "(*pcVar34)(iVar36 + -0x4568)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(iVar36 + -0x4568)" ( (binary_expression "iVar36 + -0x4568" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7);" (call_expression "(**(code **)(pcVar35 + -0x77ec))(pcVar27,uVar7)" (parenthesized_expression "(**(code **)(pcVar35 + -0x77ec))" ( (pointer_expression "**(code **)(pcVar35 + -0x77ec)" * (pointer_expression "*(code **)(pcVar35 + -0x77ec)" * (cast_expression "(code **)(pcVar35 + -0x77ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x77ec)" ( (binary_expression "pcVar35 + -0x77ec" identifier + number_literal) ))))) )) (argument_list "(pcVar27,uVar7)" ( identifier , identifier ))) ;) (expression_statement "iVar39 = 0;" (assignment_expression "iVar39 = 0" identifier = number_literal) ;) (expression_statement "pcVar33 = pcVar35;" (assignment_expression "pcVar33 = pcVar35" identifier = identifier) ;) }))) (expression_statement "puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);" (assignment_expression "puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4)" identifier = (pointer_expression "*(uint **)((int)&pOVar19[2].file_size_ + 4)" * (cast_expression "(uint **)((int)&pOVar19[2].file_size_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar19[2].file_size_ + 4)" ( (binary_expression "(int)&pOVar19[2].file_size_ + 4" (cast_expression "(int)&pOVar19[2].file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "*piVar16 = iVar39;" (assignment_expression "*piVar16 = iVar39" (pointer_expression "*piVar16" * identifier) = identifier) ;) (expression_statement "piVar16 = piVar16 + 1;" (assignment_expression "piVar16 = piVar16 + 1" identifier = (binary_expression "piVar16 + 1" identifier + number_literal)) ;) (if_statement "if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }" if (parenthesized_expression "(puVar30 == puVar9)" ( (binary_expression "puVar30 == puVar9" identifier == identifier) )) (compound_statement "{\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222a04;\n                }" { (expression_statement "uVar22 = (int)piVar16 - (int)piVar26;" (assignment_expression "uVar22 = (int)piVar16 - (int)piVar26" identifier = (binary_expression "(int)piVar16 - (int)piVar26" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar26" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_00222a04;" goto statement_identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar22 = 4;" (assignment_expression "uVar22 = 4" identifier = number_literal) ;) (labeled_statement "LAB_00222a04:\n            iVar36 = *(int *)(pcVar35 + -0x7924);" statement_identifier : (expression_statement "iVar36 = *(int *)(pcVar35 + -0x7924);" (assignment_expression "iVar36 = *(int *)(pcVar35 + -0x7924)" identifier = (pointer_expression "*(int *)(pcVar35 + -0x7924)" * (cast_expression "(int *)(pcVar35 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7924)" ( (binary_expression "pcVar35 + -0x7924" identifier + number_literal) ))))) ;)) (if_statement "if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }" if (parenthesized_expression "(uVar22 == uVar28)" ( (binary_expression "uVar22 == uVar28" identifier == identifier) )) (compound_statement "{\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }" { (if_statement "if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }" if (parenthesized_expression "(*(uint **)&pOVar19[2].file_size_ != puVar9)" ( (binary_expression "*(uint **)&pOVar19[2].file_size_ != puVar9" (pointer_expression "*(uint **)&pOVar19[2].file_size_" * (cast_expression "(uint **)&pOVar19[2].file_size_" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier)))) != identifier) )) (compound_statement "{\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }" { (expression_statement "*(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;" (assignment_expression "*(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_" (pointer_expression "*(uint **)((int)&pOVar19[2].file_size_ + 4)" * (cast_expression "(uint **)((int)&pOVar19[2].file_size_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar19[2].file_size_ + 4)" ( (binary_expression "(int)&pOVar19[2].file_size_ + 4" (cast_expression "(int)&pOVar19[2].file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = (pointer_expression "*(uint **)&pOVar19[2].file_size_" * (cast_expression "(uint **)&pOVar19[2].file_size_" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))))) ;) })) (return_statement "return;" return ;) })) (goto_statement "goto LAB_00222b4c;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00222aec:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar33,in_stack_ffffff3c),sVar18,pOVar21);" statement_identifier : (labeled_statement "Output_file::get_output_view(pOVar15,CONCAT44(pcVar33,in_stack_ffffff3c),sVar18,pOVar21);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view(pOVar15,CONCAT44(pcVar33,in_stack_ffffff3c),sVar18,pOVar21);" (call_expression "get_output_view(pOVar15,CONCAT44(pcVar33,in_stack_ffffff3c),sVar18,pOVar21)" identifier (argument_list "(pOVar15,CONCAT44(pcVar33,in_stack_ffffff3c),sVar18,pOVar21)" ( identifier , (call_expression "CONCAT44(pcVar33,in_stack_ffffff3c)" identifier (argument_list "(pcVar33,in_stack_ffffff3c)" ( identifier , identifier ))) , identifier , identifier ))) ;))) })) (expression_statement "(**(code **)(pcVar35 + -0x7810))\n                (*(int *)(pcVar35 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar35 + -0x7924) + -0x32e0);" (call_expression "(**(code **)(pcVar35 + -0x7810))\n                (*(int *)(pcVar35 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar35 + -0x7924) + -0x32e0)" (parenthesized_expression "(**(code **)(pcVar35 + -0x7810))" ( (pointer_expression "**(code **)(pcVar35 + -0x7810)" * (pointer_expression "*(code **)(pcVar35 + -0x7810)" * (cast_expression "(code **)(pcVar35 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x7810)" ( (binary_expression "pcVar35 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar35 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar35 + -0x7924) + -0x32e0)" ( (binary_expression "*(int *)(pcVar35 + -0x7fc4) + 0x4584" (pointer_expression "*(int *)(pcVar35 + -0x7fc4)" * (cast_expression "(int *)(pcVar35 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7fc4)" ( (binary_expression "pcVar35 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar35 + -0x7924) + -0x32e0" (pointer_expression "*(int *)(pcVar35 + -0x7924)" * (cast_expression "(int *)(pcVar35 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7924)" ( (binary_expression "pcVar35 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "(**(code **)(pcVar35 + -0x7810))\n              (*(int *)(pcVar35 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar35 + -0x7924) + -0x29fc);" (call_expression "(**(code **)(pcVar35 + -0x7810))\n              (*(int *)(pcVar35 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar35 + -0x7924) + -0x29fc)" (parenthesized_expression "(**(code **)(pcVar35 + -0x7810))" ( (pointer_expression "**(code **)(pcVar35 + -0x7810)" * (pointer_expression "*(code **)(pcVar35 + -0x7810)" * (cast_expression "(code **)(pcVar35 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x7810)" ( (binary_expression "pcVar35 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar35 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar35 + -0x7924) + -0x29fc)" ( (binary_expression "*(int *)(pcVar35 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar35 + -0x7fc4)" * (cast_expression "(int *)(pcVar35 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7fc4)" ( (binary_expression "pcVar35 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar35 + -0x7924) + -0x29fc" (pointer_expression "*(int *)(pcVar35 + -0x7924)" * (cast_expression "(int *)(pcVar35 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7924)" ( (binary_expression "pcVar35 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "iVar36 = *(int *)(pcVar35 + -0x7924) + -0x2a78;" (assignment_expression "iVar36 = *(int *)(pcVar35 + -0x7924) + -0x2a78" identifier = (binary_expression "*(int *)(pcVar35 + -0x7924) + -0x2a78" (pointer_expression "*(int *)(pcVar35 + -0x7924)" * (cast_expression "(int *)(pcVar35 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7924)" ( (binary_expression "pcVar35 + -0x7924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar35 + -0x7810))(*(int *)(pcVar35 + -0x7fc4) + 0x3574,0xe3,iVar36);" (call_expression "(**(code **)(pcVar35 + -0x7810))(*(int *)(pcVar35 + -0x7fc4) + 0x3574,0xe3,iVar36)" (parenthesized_expression "(**(code **)(pcVar35 + -0x7810))" ( (pointer_expression "**(code **)(pcVar35 + -0x7810)" * (pointer_expression "*(code **)(pcVar35 + -0x7810)" * (cast_expression "(code **)(pcVar35 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x7810)" ( (binary_expression "pcVar35 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar35 + -0x7fc4) + 0x3574,0xe3,iVar36)" ( (binary_expression "*(int *)(pcVar35 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar35 + -0x7fc4)" * (cast_expression "(int *)(pcVar35 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7fc4)" ( (binary_expression "pcVar35 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00222b4c:\n  sVar18 = 0x549;" statement_identifier : (expression_statement "sVar18 = 0x549;" (assignment_expression "sVar18 = 0x549" identifier = number_literal) ;)) (expression_statement "pcVar33 = *(code **)(pcVar35 + -0x7810);" (assignment_expression "pcVar33 = *(code **)(pcVar35 + -0x7810)" identifier = (pointer_expression "*(code **)(pcVar35 + -0x7810)" * (cast_expression "(code **)(pcVar35 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x7810)" ( (binary_expression "pcVar35 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pOVar19 = (Output_file *)(*(int *)(pcVar35 + -0x7924) + -0x48b4);" (assignment_expression "pOVar19 = (Output_file *)(*(int *)(pcVar35 + -0x7924) + -0x48b4)" identifier = (cast_expression "(Output_file *)(*(int *)(pcVar35 + -0x7924) + -0x48b4)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar35 + -0x7924) + -0x48b4)" ( (binary_expression "*(int *)(pcVar35 + -0x7924) + -0x48b4" (pointer_expression "*(int *)(pcVar35 + -0x7924)" * (cast_expression "(int *)(pcVar35 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7924)" ( (binary_expression "pcVar35 + -0x7924" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar33)(pOVar19,0x549,iVar36 + -0x4284);" (call_expression "(*pcVar33)(pOVar19,0x549,iVar36 + -0x4284)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(pOVar19,0x549,iVar36 + -0x4284)" ( identifier , number_literal , (binary_expression "iVar36 + -0x4284" identifier + number_literal) ))) ;) (expression_statement "pcVar33 = pcVar33 + 0x2a66dc;" (assignment_expression "pcVar33 = pcVar33 + 0x2a66dc" identifier = (binary_expression "pcVar33 + 0x2a66dc" identifier + number_literal)) ;) (if_statement "if (*(int *)&pOVar19[1].file_size_ << 2 < 0) {\n    pOVar21 = (Output_file *)pOVar19[1].name_;\n    iVar36 = pOVar19[1].o_;\n    if (*(int *)&pOVar19[1].file_size_ << 1 < 0) {\n      uVar28 = *(uint *)&pOVar19->map_is_anonymous_;\n      if (pOVar19->base_ == (uchar *)0x0) {\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar35 = pcVar33;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222d84;\nLAB_00222bf4:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              pcVar38 = *(code **)(pcVar33 + -0x771c);\n              pcVar24 = *(code **)(pcVar33 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222cb0:\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222df8;\n          }\n        }\nLAB_00222d98:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_fffffef4),sVar18,pOVar21);\n      }\n      (**(code **)(pcVar33 + -0x7810))\n                (*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0);\n    }\n    (**(code **)(pcVar33 + -0x7810))\n              (*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar33 + -0x7924) + -0x29fc);\n  }" if (parenthesized_expression "(*(int *)&pOVar19[1].file_size_ << 2 < 0)" ( (binary_expression "*(int *)&pOVar19[1].file_size_ << 2 < 0" (binary_expression "*(int *)&pOVar19[1].file_size_ << 2" (pointer_expression "*(int *)&pOVar19[1].file_size_" * (cast_expression "(int *)&pOVar19[1].file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar19[1].file_size_" & (field_expression "pOVar19[1].file_size_" (subscript_expression "pOVar19[1]" identifier [ number_literal ]) . field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n    pOVar21 = (Output_file *)pOVar19[1].name_;\n    iVar36 = pOVar19[1].o_;\n    if (*(int *)&pOVar19[1].file_size_ << 1 < 0) {\n      uVar28 = *(uint *)&pOVar19->map_is_anonymous_;\n      if (pOVar19->base_ == (uchar *)0x0) {\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar35 = pcVar33;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222d84;\nLAB_00222bf4:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              pcVar38 = *(code **)(pcVar33 + -0x771c);\n              pcVar24 = *(code **)(pcVar33 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222cb0:\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222df8;\n          }\n        }\nLAB_00222d98:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_fffffef4),sVar18,pOVar21);\n      }\n      (**(code **)(pcVar33 + -0x7810))\n                (*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0);\n    }\n    (**(code **)(pcVar33 + -0x7810))\n              (*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar33 + -0x7924) + -0x29fc);\n  }" { (expression_statement "pOVar21 = (Output_file *)pOVar19[1].name_;" (assignment_expression "pOVar21 = (Output_file *)pOVar19[1].name_" identifier = (cast_expression "(Output_file *)pOVar19[1].name_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar19[1].name_" (subscript_expression "pOVar19[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "iVar36 = pOVar19[1].o_;" (assignment_expression "iVar36 = pOVar19[1].o_" identifier = (field_expression "pOVar19[1].o_" (subscript_expression "pOVar19[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (*(int *)&pOVar19[1].file_size_ << 1 < 0) {\n      uVar28 = *(uint *)&pOVar19->map_is_anonymous_;\n      if (pOVar19->base_ == (uchar *)0x0) {\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar35 = pcVar33;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222d84;\nLAB_00222bf4:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              pcVar38 = *(code **)(pcVar33 + -0x771c);\n              pcVar24 = *(code **)(pcVar33 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222cb0:\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222df8;\n          }\n        }\nLAB_00222d98:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_fffffef4),sVar18,pOVar21);\n      }\n      (**(code **)(pcVar33 + -0x7810))\n                (*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0);\n    }" if (parenthesized_expression "(*(int *)&pOVar19[1].file_size_ << 1 < 0)" ( (binary_expression "*(int *)&pOVar19[1].file_size_ << 1 < 0" (binary_expression "*(int *)&pOVar19[1].file_size_ << 1" (pointer_expression "*(int *)&pOVar19[1].file_size_" * (cast_expression "(int *)&pOVar19[1].file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar19[1].file_size_" & (field_expression "pOVar19[1].file_size_" (subscript_expression "pOVar19[1]" identifier [ number_literal ]) . field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n      uVar28 = *(uint *)&pOVar19->map_is_anonymous_;\n      if (pOVar19->base_ == (uchar *)0x0) {\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar35 = pcVar33;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222d84;\nLAB_00222bf4:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              pcVar38 = *(code **)(pcVar33 + -0x771c);\n              pcVar24 = *(code **)(pcVar33 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222cb0:\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222df8;\n          }\n        }\nLAB_00222d98:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_fffffef4),sVar18,pOVar21);\n      }\n      (**(code **)(pcVar33 + -0x7810))\n                (*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0);\n    }" { (expression_statement "uVar28 = *(uint *)&pOVar19->map_is_anonymous_;" (assignment_expression "uVar28 = *(uint *)&pOVar19->map_is_anonymous_" identifier = (pointer_expression "*(uint *)&pOVar19->map_is_anonymous_" * (cast_expression "(uint *)&pOVar19->map_is_anonymous_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar19->map_is_anonymous_" & (field_expression "pOVar19->map_is_anonymous_" identifier -> field_identifier))))) ;) (if_statement "if (pOVar19->base_ == (uchar *)0x0) {\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar35 = pcVar33;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222d84;\nLAB_00222bf4:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              pcVar38 = *(code **)(pcVar33 + -0x771c);\n              pcVar24 = *(code **)(pcVar33 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222cb0:\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222df8;\n          }\n        }\nLAB_00222d98:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_fffffef4),sVar18,pOVar21);\n      }" if (parenthesized_expression "(pOVar19->base_ == (uchar *)0x0)" ( (binary_expression "pOVar19->base_ == (uchar *)0x0" (field_expression "pOVar19->base_" identifier -> field_identifier) == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar22 = uVar28 + iVar36;\n        pOVar15 = pOVar19;\n        pcVar35 = pcVar33;\n        if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222d84;\nLAB_00222bf4:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              pcVar38 = *(code **)(pcVar33 + -0x771c);\n              pcVar24 = *(code **)(pcVar33 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222cb0:\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222df8;\n          }\n        }\nLAB_00222d98:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_fffffef4),sVar18,pOVar21);\n      }" { (expression_statement "uVar22 = uVar28 + iVar36;" (assignment_expression "uVar22 = uVar28 + iVar36" identifier = (binary_expression "uVar28 + iVar36" identifier + identifier)) ;) (expression_statement "pOVar15 = pOVar19;" (assignment_expression "pOVar15 = pOVar19" identifier = identifier) ;) (expression_statement "pcVar35 = pcVar33;" (assignment_expression "pcVar35 = pcVar33" identifier = identifier) ;) (if_statement "if (-1 < (int)pOVar21) {\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222d84;\nLAB_00222bf4:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              pcVar38 = *(code **)(pcVar33 + -0x771c);\n              pcVar24 = *(code **)(pcVar33 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222cb0:\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222df8;\n          }\n        }" if (parenthesized_expression "(-1 < (int)pOVar21)" ( (binary_expression "-1 < (int)pOVar21" number_literal < (cast_expression "(int)pOVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pOVar15 = *(Output_file **)(sVar18 + 8);\n          pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));\n          pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);\n          if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222d84;\nLAB_00222bf4:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              pcVar38 = *(code **)(pcVar33 + -0x771c);\n              pcVar24 = *(code **)(pcVar33 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222cb0:\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222df8;\n          }\n        }" { (expression_statement "pOVar15 = *(Output_file **)(sVar18 + 8);" (assignment_expression "pOVar15 = *(Output_file **)(sVar18 + 8)" identifier = (pointer_expression "*(Output_file **)(sVar18 + 8)" * (cast_expression "(Output_file **)(sVar18 + 8)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(sVar18 + 8)" ( (binary_expression "sVar18 + 8" identifier + number_literal) ))))) ;) (expression_statement "pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28));" (assignment_expression "pOVar8 = (Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28))" identifier = (cast_expression "(Output_file *)((int)&pOVar21->name_ + (uint)(uVar22 < uVar28))" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar21->name_ + (uint)(uVar22 < uVar28))" ( (binary_expression "(int)&pOVar21->name_ + (uint)(uVar22 < uVar28)" (cast_expression "(int)&pOVar21->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar21->name_" & (field_expression "pOVar21->name_" identifier -> field_identifier))) + (call_expression "(uint)(uVar22 < uVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 < uVar28)" ( (binary_expression "uVar22 < uVar28" identifier < identifier) )))) )))) ;) (expression_statement "pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8);" (assignment_expression "pOVar21 = (Output_file *)(uint)((int)pOVar15 < (int)pOVar8)" identifier = (cast_expression "(Output_file *)(uint)((int)pOVar15 < (int)pOVar8)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)pOVar15 < (int)pOVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pOVar15 < (int)pOVar8)" ( (binary_expression "(int)pOVar15 < (int)pOVar8" (cast_expression "(int)pOVar15" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pOVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (pOVar21 == (Output_file *)0x0) {\n            if (pOVar15 == pOVar8) goto LAB_00222d84;\nLAB_00222bf4:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              pcVar38 = *(code **)(pcVar33 + -0x771c);\n              pcVar24 = *(code **)(pcVar33 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222cb0:\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222df8;\n          }" if (parenthesized_expression "(pOVar21 == (Output_file *)0x0)" ( (binary_expression "pOVar21 == (Output_file *)0x0" identifier == (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (pOVar15 == pOVar8) goto LAB_00222d84;\nLAB_00222bf4:\n            uVar10 = pOVar19[2].o_;\n            puVar9 = *(uint **)&pOVar19[2].file_size_;\n            puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n            piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);\n            piVar16 = piVar26 + 1;\n            *piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n            if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              pcVar38 = *(code **)(pcVar33 + -0x771c);\n              pcVar24 = *(code **)(pcVar33 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );\n            }\n            uVar22 = 4;\nLAB_00222cb0:\n            iVar36 = *(int *)(pcVar33 + -0x7924);\n            if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }\n            goto LAB_00222df8;\n          }" { (if_statement "if (pOVar15 == pOVar8) goto LAB_00222d84;" if (parenthesized_expression "(pOVar15 == pOVar8)" ( (binary_expression "pOVar15 == pOVar8" identifier == identifier) )) (goto_statement "goto LAB_00222d84;" goto statement_identifier ;)) (labeled_statement "LAB_00222bf4:\n            uVar10 = pOVar19[2].o_;" statement_identifier : (expression_statement "uVar10 = pOVar19[2].o_;" (assignment_expression "uVar10 = pOVar19[2].o_" identifier = (field_expression "pOVar19[2].o_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier)) ;)) (expression_statement "puVar9 = *(uint **)&pOVar19[2].file_size_;" (assignment_expression "puVar9 = *(uint **)&pOVar19[2].file_size_" identifier = (pointer_expression "*(uint **)&pOVar19[2].file_size_" * (cast_expression "(uint **)&pOVar19[2].file_size_" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))))) ;) (expression_statement "puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);" (assignment_expression "puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4)" identifier = (pointer_expression "*(uint **)((int)&pOVar19[2].file_size_ + 4)" * (cast_expression "(uint **)((int)&pOVar19[2].file_size_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar19[2].file_size_ + 4)" ( (binary_expression "(int)&pOVar19[2].file_size_ + 4" (cast_expression "(int)&pOVar19[2].file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36);" (assignment_expression "piVar26 = (int *)(*(int *)(sVar18 + 0x10) + iVar36)" identifier = (cast_expression "(int *)(*(int *)(sVar18 + 0x10) + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(sVar18 + 0x10) + iVar36)" ( (binary_expression "*(int *)(sVar18 + 0x10) + iVar36" (pointer_expression "*(int *)(sVar18 + 0x10)" * (cast_expression "(int *)(sVar18 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar18 + 0x10)" ( (binary_expression "sVar18 + 0x10" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "piVar16 = piVar26 + 1;" (assignment_expression "piVar16 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) (expression_statement "*piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar26 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar26" * identifier) = (binary_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10)" ( (binary_expression "(uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10" (binary_expression "(uVar10 >> 0x10) << 0x18" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar10 >> 0x18) << 0x10" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff)" ( (binary_expression "(uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff" (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (if_statement "if (puVar9 != puVar30) {\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              pcVar38 = *(code **)(pcVar33 + -0x771c);\n              pcVar24 = *(code **)(pcVar33 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );\n            }" if (parenthesized_expression "(puVar9 != puVar30)" ( (binary_expression "puVar9 != puVar30" identifier != identifier) )) (compound_statement "{\n              iVar36 = *(int *)(pcVar33 + -0x7924);\n              pcVar38 = *(code **)(pcVar33 + -0x771c);\n              pcVar24 = *(code **)(pcVar33 + -0x70a4);\n              do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );\n            }" { (expression_statement "iVar36 = *(int *)(pcVar33 + -0x7924);" (assignment_expression "iVar36 = *(int *)(pcVar33 + -0x7924)" identifier = (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = *(code **)(pcVar33 + -0x771c);" (assignment_expression "pcVar38 = *(code **)(pcVar33 + -0x771c)" identifier = (pointer_expression "*(code **)(pcVar33 + -0x771c)" * (cast_expression "(code **)(pcVar33 + -0x771c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x771c)" ( (binary_expression "pcVar33 + -0x771c" identifier + number_literal) ))))) ;) (expression_statement "pcVar24 = *(code **)(pcVar33 + -0x70a4);" (assignment_expression "pcVar24 = *(code **)(pcVar33 + -0x70a4)" identifier = (pointer_expression "*(code **)(pcVar33 + -0x70a4)" * (cast_expression "(code **)(pcVar33 + -0x70a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x70a4)" ( (binary_expression "pcVar33 + -0x70a4" identifier + number_literal) ))))) ;) (do_statement "do {\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              } while( true );" do (compound_statement "{\n                piVar17 = (int *)pOVar19[2].name_;\n                if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }\n                puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);\n                puVar9 = puVar9 + 1;\n                *piVar16 = iVar39;\n                piVar16 = piVar16 + 1;\n                if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }\n              }" { (expression_statement "piVar17 = (int *)pOVar19[2].name_;" (assignment_expression "piVar17 = (int *)pOVar19[2].name_" identifier = (cast_expression "(int *)pOVar19[2].name_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar19[2].name_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))) ;) (if_statement "if (*(code **)(*piVar17 + 0x60) == pcVar38) {\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }\n                else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }" if (parenthesized_expression "(*(code **)(*piVar17 + 0x60) == pcVar38)" ( (binary_expression "*(code **)(*piVar17 + 0x60) == pcVar38" (pointer_expression "*(code **)(*piVar17 + 0x60)" * (cast_expression "(code **)(*piVar17 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar17 + 0x60)" ( (binary_expression "*piVar17 + 0x60" (pointer_expression "*piVar17" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n                  if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;\n                  piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\n                  if (piVar17 == (int *)0x0) goto LAB_00222d0c;\nLAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }\n                  iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n                }" { (if_statement "if ((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9) goto LAB_00222d68;" if (parenthesized_expression "((uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9)" ( (binary_expression "(uint)(piVar17[0xf] - piVar17[0xe] >> 2) <= *puVar9" (call_expression "(uint)(piVar17[0xf] - piVar17[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar17[0xf] - piVar17[0xe] >> 2)" ( (binary_expression "piVar17[0xf] - piVar17[0xe] >> 2" (binary_expression "piVar17[0xf] - piVar17[0xe]" (subscript_expression "piVar17[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar17[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= (pointer_expression "*puVar9" * identifier)) )) (goto_statement "goto LAB_00222d68;" goto statement_identifier ;)) (expression_statement "piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4);" (assignment_expression "piVar17 = *(int **)(piVar17[0xe] + *puVar9 * 4)" identifier = (pointer_expression "*(int **)(piVar17[0xe] + *puVar9 * 4)" * (cast_expression "(int **)(piVar17[0xe] + *puVar9 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar17[0xe] + *puVar9 * 4)" ( (binary_expression "piVar17[0xe] + *puVar9 * 4" (subscript_expression "piVar17[0xe]" identifier [ number_literal ]) + (binary_expression "*puVar9 * 4" (pointer_expression "*puVar9" * identifier) * number_literal)) ))))) ;) (expression_statement "pcVar34 = *(code **)(pcVar33 + -0x3610);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + -0x3610)" identifier = (pointer_expression "*(code **)(pcVar33 + -0x3610)" * (cast_expression "(code **)(pcVar33 + -0x3610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x3610)" ( (binary_expression "pcVar33 + -0x3610" identifier + number_literal) ))))) ;) (if_statement "if (piVar17 == (int *)0x0) goto LAB_00222d0c;" if (parenthesized_expression "(piVar17 == (int *)0x0)" ( (binary_expression "piVar17 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00222d0c;" goto statement_identifier ;)) (labeled_statement "LAB_00222c74:\n                  if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }" statement_identifier : (if_statement "if (*(code **)(*piVar17 + 0x2c) == pcVar24) {\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }\n                  else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }" if (parenthesized_expression "(*(code **)(*piVar17 + 0x2c) == pcVar24)" ( (binary_expression "*(code **)(*piVar17 + 0x2c) == pcVar24" (pointer_expression "*(code **)(*piVar17 + 0x2c)" * (cast_expression "(code **)(*piVar17 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar17 + 0x2c)" ( (binary_expression "*piVar17 + 0x2c" (pointer_expression "*piVar17" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n                    uVar10 = piVar17[0x19];\n                    if (uVar10 == 0xffffffff) goto LAB_00222d50;\n                  }" { (expression_statement "uVar10 = piVar17[0x19];" (assignment_expression "uVar10 = piVar17[0x19]" identifier = (subscript_expression "piVar17[0x19]" identifier [ number_literal ])) ;) (if_statement "if (uVar10 == 0xffffffff) goto LAB_00222d50;" if (parenthesized_expression "(uVar10 == 0xffffffff)" ( (binary_expression "uVar10 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00222d50;" goto statement_identifier ;)) }) (else_clause "else {\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }" else (compound_statement "{\n                    pcVar33 = pcVar35;\n                    uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);\n                    pcVar35 = pcVar33;\n                  }" { (expression_statement "pcVar33 = pcVar35;" (assignment_expression "pcVar33 = pcVar35" identifier = identifier) ;) (expression_statement "uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17);" (assignment_expression "uVar10 = (**(code **)(*piVar17 + 0x2c))(piVar17)" identifier = (call_expression "(**(code **)(*piVar17 + 0x2c))(piVar17)" (parenthesized_expression "(**(code **)(*piVar17 + 0x2c))" ( (pointer_expression "**(code **)(*piVar17 + 0x2c)" * (pointer_expression "*(code **)(*piVar17 + 0x2c)" * (cast_expression "(code **)(*piVar17 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar17 + 0x2c)" ( (binary_expression "*piVar17 + 0x2c" (pointer_expression "*piVar17" * identifier) + number_literal) ))))) )) (argument_list "(piVar17)" ( identifier )))) ;) (expression_statement "pcVar35 = pcVar33;" (assignment_expression "pcVar35 = pcVar33" identifier = identifier) ;) })))) (expression_statement "iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar39 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10)" ( (binary_expression "(uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10" (binary_expression "(uVar10 >> 0x10) << 0x18" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar10 >> 0x18) << 0x10" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff)" ( (binary_expression "(uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff" (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) }) (else_clause "else {\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }" else (compound_statement "{\n                  pcVar33 = pcVar35;\n                  piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();\n                  pcVar35 = pcVar33;\n                  if (piVar17 != (int *)0x0) goto LAB_00222c74;\n                  pcVar34 = *(code **)(pcVar33 + -0x3610);\nLAB_00222d0c:\n                  pcVar33 = pcVar35;\n                  pcVar27 = pOVar19[2].name_;\n                  uVar7 = (*pcVar34)(iVar36 + -0x4568);\n                  (**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);\n                  iVar39 = 0;\n                  pcVar35 = pcVar33;\n                }" { (expression_statement "pcVar33 = pcVar35;" (assignment_expression "pcVar33 = pcVar35" identifier = identifier) ;) (expression_statement "piVar17 = (int *)(**(code **)(*piVar17 + 0x60))();" (assignment_expression "piVar17 = (int *)(**(code **)(*piVar17 + 0x60))()" identifier = (cast_expression "(int *)(**(code **)(*piVar17 + 0x60))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar17 + 0x60))()" (parenthesized_expression "(**(code **)(*piVar17 + 0x60))" ( (pointer_expression "**(code **)(*piVar17 + 0x60)" * (pointer_expression "*(code **)(*piVar17 + 0x60)" * (cast_expression "(code **)(*piVar17 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar17 + 0x60)" ( (binary_expression "*piVar17 + 0x60" (pointer_expression "*piVar17" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar35 = pcVar33;" (assignment_expression "pcVar35 = pcVar33" identifier = identifier) ;) (if_statement "if (piVar17 != (int *)0x0) goto LAB_00222c74;" if (parenthesized_expression "(piVar17 != (int *)0x0)" ( (binary_expression "piVar17 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00222c74;" goto statement_identifier ;)) (expression_statement "pcVar34 = *(code **)(pcVar33 + -0x3610);" (assignment_expression "pcVar34 = *(code **)(pcVar33 + -0x3610)" identifier = (pointer_expression "*(code **)(pcVar33 + -0x3610)" * (cast_expression "(code **)(pcVar33 + -0x3610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x3610)" ( (binary_expression "pcVar33 + -0x3610" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00222d0c:\n                  pcVar33 = pcVar35;" statement_identifier : (expression_statement "pcVar33 = pcVar35;" (assignment_expression "pcVar33 = pcVar35" identifier = identifier) ;)) (expression_statement "pcVar27 = pOVar19[2].name_;" (assignment_expression "pcVar27 = pOVar19[2].name_" identifier = (field_expression "pOVar19[2].name_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar7 = (*pcVar34)(iVar36 + -0x4568);" (assignment_expression "uVar7 = (*pcVar34)(iVar36 + -0x4568)" identifier = (call_expression "(*pcVar34)(iVar36 + -0x4568)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(iVar36 + -0x4568)" ( (binary_expression "iVar36 + -0x4568" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7);" (call_expression "(**(code **)(pcVar33 + -0x77ec))(pcVar27,uVar7)" (parenthesized_expression "(**(code **)(pcVar33 + -0x77ec))" ( (pointer_expression "**(code **)(pcVar33 + -0x77ec)" * (pointer_expression "*(code **)(pcVar33 + -0x77ec)" * (cast_expression "(code **)(pcVar33 + -0x77ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x77ec)" ( (binary_expression "pcVar33 + -0x77ec" identifier + number_literal) ))))) )) (argument_list "(pcVar27,uVar7)" ( identifier , identifier ))) ;) (expression_statement "iVar39 = 0;" (assignment_expression "iVar39 = 0" identifier = number_literal) ;) (expression_statement "pcVar35 = pcVar33;" (assignment_expression "pcVar35 = pcVar33" identifier = identifier) ;) }))) (expression_statement "puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4);" (assignment_expression "puVar30 = *(uint **)((int)&pOVar19[2].file_size_ + 4)" identifier = (pointer_expression "*(uint **)((int)&pOVar19[2].file_size_ + 4)" * (cast_expression "(uint **)((int)&pOVar19[2].file_size_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar19[2].file_size_ + 4)" ( (binary_expression "(int)&pOVar19[2].file_size_ + 4" (cast_expression "(int)&pOVar19[2].file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "*piVar16 = iVar39;" (assignment_expression "*piVar16 = iVar39" (pointer_expression "*piVar16" * identifier) = identifier) ;) (expression_statement "piVar16 = piVar16 + 1;" (assignment_expression "piVar16 = piVar16 + 1" identifier = (binary_expression "piVar16 + 1" identifier + number_literal)) ;) (if_statement "if (puVar30 == puVar9) {\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }" if (parenthesized_expression "(puVar30 == puVar9)" ( (binary_expression "puVar30 == puVar9" identifier == identifier) )) (compound_statement "{\n                  uVar22 = (int)piVar16 - (int)piVar26;\n                  goto LAB_00222cb0;\n                }" { (expression_statement "uVar22 = (int)piVar16 - (int)piVar26;" (assignment_expression "uVar22 = (int)piVar16 - (int)piVar26" identifier = (binary_expression "(int)piVar16 - (int)piVar26" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar26" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_00222cb0;" goto statement_identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar22 = 4;" (assignment_expression "uVar22 = 4" identifier = number_literal) ;) (labeled_statement "LAB_00222cb0:\n            iVar36 = *(int *)(pcVar33 + -0x7924);" statement_identifier : (expression_statement "iVar36 = *(int *)(pcVar33 + -0x7924);" (assignment_expression "iVar36 = *(int *)(pcVar33 + -0x7924)" identifier = (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) ))))) ;)) (if_statement "if (uVar22 == uVar28) {\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }" if (parenthesized_expression "(uVar22 == uVar28)" ( (binary_expression "uVar22 == uVar28" identifier == identifier) )) (compound_statement "{\n              if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }\n              return;\n            }" { (if_statement "if (*(uint **)&pOVar19[2].file_size_ != puVar9) {\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }" if (parenthesized_expression "(*(uint **)&pOVar19[2].file_size_ != puVar9)" ( (binary_expression "*(uint **)&pOVar19[2].file_size_ != puVar9" (pointer_expression "*(uint **)&pOVar19[2].file_size_" * (cast_expression "(uint **)&pOVar19[2].file_size_" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier)))) != identifier) )) (compound_statement "{\n                *(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;\n              }" { (expression_statement "*(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_;" (assignment_expression "*(uint **)((int)&pOVar19[2].file_size_ + 4) = *(uint **)&pOVar19[2].file_size_" (pointer_expression "*(uint **)((int)&pOVar19[2].file_size_ + 4)" * (cast_expression "(uint **)((int)&pOVar19[2].file_size_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar19[2].file_size_ + 4)" ( (binary_expression "(int)&pOVar19[2].file_size_ + 4" (cast_expression "(int)&pOVar19[2].file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = (pointer_expression "*(uint **)&pOVar19[2].file_size_" * (cast_expression "(uint **)&pOVar19[2].file_size_" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar19[2].file_size_" & (field_expression "pOVar19[2].file_size_" (subscript_expression "pOVar19[2]" identifier [ number_literal ]) . field_identifier))))) ;) })) (return_statement "return;" return ;) })) (goto_statement "goto LAB_00222df8;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00222d98:\n        Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_fffffef4),sVar18,pOVar21);" statement_identifier : (labeled_statement "Output_file::get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_fffffef4),sVar18,pOVar21);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_fffffef4),sVar18,pOVar21);" (call_expression "get_output_view(pOVar15,CONCAT44(pcVar35,in_stack_fffffef4),sVar18,pOVar21)" identifier (argument_list "(pOVar15,CONCAT44(pcVar35,in_stack_fffffef4),sVar18,pOVar21)" ( identifier , (call_expression "CONCAT44(pcVar35,in_stack_fffffef4)" identifier (argument_list "(pcVar35,in_stack_fffffef4)" ( identifier , identifier ))) , identifier , identifier ))) ;))) })) (expression_statement "(**(code **)(pcVar33 + -0x7810))\n                (*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0);" (call_expression "(**(code **)(pcVar33 + -0x7810))\n                (*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0)" (parenthesized_expression "(**(code **)(pcVar33 + -0x7810))" ( (pointer_expression "**(code **)(pcVar33 + -0x7810)" * (pointer_expression "*(code **)(pcVar33 + -0x7810)" * (cast_expression "(code **)(pcVar33 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x7810)" ( (binary_expression "pcVar33 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + -0x7fc4) + 0x4584,0xc0,*(int *)(pcVar33 + -0x7924) + -0x32e0)" ( (binary_expression "*(int *)(pcVar33 + -0x7fc4) + 0x4584" (pointer_expression "*(int *)(pcVar33 + -0x7fc4)" * (cast_expression "(int *)(pcVar33 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7fc4)" ( (binary_expression "pcVar33 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar33 + -0x7924) + -0x32e0" (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "(**(code **)(pcVar33 + -0x7810))\n              (*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar33 + -0x7924) + -0x29fc);" (call_expression "(**(code **)(pcVar33 + -0x7810))\n              (*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar33 + -0x7924) + -0x29fc)" (parenthesized_expression "(**(code **)(pcVar33 + -0x7810))" ( (pointer_expression "**(code **)(pcVar33 + -0x7810)" * (pointer_expression "*(code **)(pcVar33 + -0x7810)" * (cast_expression "(code **)(pcVar33 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x7810)" ( (binary_expression "pcVar33 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar33 + -0x7924) + -0x29fc)" ( (binary_expression "*(int *)(pcVar33 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar33 + -0x7fc4)" * (cast_expression "(int *)(pcVar33 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7fc4)" ( (binary_expression "pcVar33 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar33 + -0x7924) + -0x29fc" (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "iVar36 = *(int *)(pcVar33 + -0x7924) + -0x2a78;" (assignment_expression "iVar36 = *(int *)(pcVar33 + -0x7924) + -0x2a78" identifier = (binary_expression "*(int *)(pcVar33 + -0x7924) + -0x2a78" (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xe3,iVar36);" (call_expression "(**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xe3,iVar36)" (parenthesized_expression "(**(code **)(pcVar33 + -0x7810))" ( (pointer_expression "**(code **)(pcVar33 + -0x7810)" * (pointer_expression "*(code **)(pcVar33 + -0x7810)" * (cast_expression "(code **)(pcVar33 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x7810)" ( (binary_expression "pcVar33 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0xe3,iVar36)" ( (binary_expression "*(int *)(pcVar33 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar33 + -0x7fc4)" * (cast_expression "(int *)(pcVar33 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7fc4)" ( (binary_expression "pcVar33 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_00222df8:\n  (**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x426c);" statement_identifier : (expression_statement "(**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x426c);" (call_expression "(**(code **)(pcVar33 + -0x7810))(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x426c)" (parenthesized_expression "(**(code **)(pcVar33 + -0x7810))" ( (pointer_expression "**(code **)(pcVar33 + -0x7810)" * (pointer_expression "*(code **)(pcVar33 + -0x7810)" * (cast_expression "(code **)(pcVar33 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x7810)" ( (binary_expression "pcVar33 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + -0x7924) + -0x48b4,0x549,iVar36 + -0x426c)" ( (binary_expression "*(int *)(pcVar33 + -0x7924) + -0x48b4" (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "iVar36 + -0x426c" identifier + number_literal) ))) ;)) (labeled_statement "Output_data::default_alignment();" statement_identifier : (ERROR ":" :) (expression_statement "default_alignment();" (call_expression "default_alignment()" identifier (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) (labeled_statement "LAB_00222aa4:\n  (**(code **)(pcVar35 + -0x7810))\n            (*(int *)(pcVar35 + -0x7fc4) + 0x3574,0x1043,*(int *)(pcVar35 + -0x7924) + -0x2a28);" statement_identifier : (expression_statement "(**(code **)(pcVar35 + -0x7810))\n            (*(int *)(pcVar35 + -0x7fc4) + 0x3574,0x1043,*(int *)(pcVar35 + -0x7924) + -0x2a28);" (call_expression "(**(code **)(pcVar35 + -0x7810))\n            (*(int *)(pcVar35 + -0x7fc4) + 0x3574,0x1043,*(int *)(pcVar35 + -0x7924) + -0x2a28)" (parenthesized_expression "(**(code **)(pcVar35 + -0x7810))" ( (pointer_expression "**(code **)(pcVar35 + -0x7810)" * (pointer_expression "*(code **)(pcVar35 + -0x7810)" * (cast_expression "(code **)(pcVar35 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x7810)" ( (binary_expression "pcVar35 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar35 + -0x7fc4) + 0x3574,0x1043,*(int *)(pcVar35 + -0x7924) + -0x2a28)" ( (binary_expression "*(int *)(pcVar35 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar35 + -0x7fc4)" * (cast_expression "(int *)(pcVar35 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7fc4)" ( (binary_expression "pcVar35 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar35 + -0x7924) + -0x2a28" (pointer_expression "*(int *)(pcVar35 + -0x7924)" * (cast_expression "(int *)(pcVar35 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7924)" ( (binary_expression "pcVar35 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_00222abc:\n  sVar18 = 0x5c8;" statement_identifier : (expression_statement "sVar18 = 0x5c8;" (assignment_expression "sVar18 = 0x5c8" identifier = number_literal) ;)) (expression_statement "pOVar21 = (Output_file *)(*(int *)(pcVar35 + -0x7924) - 0x3404);" (assignment_expression "pOVar21 = (Output_file *)(*(int *)(pcVar35 + -0x7924) - 0x3404)" identifier = (cast_expression "(Output_file *)(*(int *)(pcVar35 + -0x7924) - 0x3404)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar35 + -0x7924) - 0x3404)" ( (binary_expression "*(int *)(pcVar35 + -0x7924) - 0x3404" (pointer_expression "*(int *)(pcVar35 + -0x7924)" * (cast_expression "(int *)(pcVar35 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7924)" ( (binary_expression "pcVar35 + -0x7924" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "pOVar15 = (Output_file *)(*(int *)(pcVar35 + -0x7fc4) + 0x4570);" (assignment_expression "pOVar15 = (Output_file *)(*(int *)(pcVar35 + -0x7fc4) + 0x4570)" identifier = (cast_expression "(Output_file *)(*(int *)(pcVar35 + -0x7fc4) + 0x4570)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar35 + -0x7fc4) + 0x4570)" ( (binary_expression "*(int *)(pcVar35 + -0x7fc4) + 0x4570" (pointer_expression "*(int *)(pcVar35 + -0x7fc4)" * (cast_expression "(int *)(pcVar35 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7fc4)" ( (binary_expression "pcVar35 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar35 + -0x7810))();" (call_expression "(**(code **)(pcVar35 + -0x7810))()" (parenthesized_expression "(**(code **)(pcVar35 + -0x7810))" ( (pointer_expression "**(code **)(pcVar35 + -0x7810)" * (pointer_expression "*(code **)(pcVar35 + -0x7810)" * (cast_expression "(code **)(pcVar35 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x7810)" ( (binary_expression "pcVar35 + -0x7810" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar36 = extraout_v1_01;" (assignment_expression "iVar36 = extraout_v1_01" identifier = identifier) ;) (labeled_statement "LAB_00222ad8:\n  uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);" statement_identifier : (expression_statement "uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);" (assignment_expression "uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22)" identifier = (call_expression "(uint)(*(uint *)(sVar18 + 0xc) < uVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(sVar18 + 0xc) < uVar22)" ( (binary_expression "*(uint *)(sVar18 + 0xc) < uVar22" (pointer_expression "*(uint *)(sVar18 + 0xc)" * (cast_expression "(uint *)(sVar18 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar18 + 0xc)" ( (binary_expression "sVar18 + 0xc" identifier + number_literal) )))) < identifier) )))) ;)) (if_statement "if (uVar22 != 0) goto LAB_00222aec;" if (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00222aec;" goto statement_identifier ;)) (goto_statement "goto LAB_00222948;" goto statement_identifier ;) (labeled_statement "LAB_00222d50:\n  (**(code **)(pcVar33 + -0x7810))\n            (*(int *)(pcVar33 + -0x7fc4) + 0x3574,0x1043,*(int *)(pcVar33 + -0x7924) + -0x2a28);" statement_identifier : (expression_statement "(**(code **)(pcVar33 + -0x7810))\n            (*(int *)(pcVar33 + -0x7fc4) + 0x3574,0x1043,*(int *)(pcVar33 + -0x7924) + -0x2a28);" (call_expression "(**(code **)(pcVar33 + -0x7810))\n            (*(int *)(pcVar33 + -0x7fc4) + 0x3574,0x1043,*(int *)(pcVar33 + -0x7924) + -0x2a28)" (parenthesized_expression "(**(code **)(pcVar33 + -0x7810))" ( (pointer_expression "**(code **)(pcVar33 + -0x7810)" * (pointer_expression "*(code **)(pcVar33 + -0x7810)" * (cast_expression "(code **)(pcVar33 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x7810)" ( (binary_expression "pcVar33 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + -0x7fc4) + 0x3574,0x1043,*(int *)(pcVar33 + -0x7924) + -0x2a28)" ( (binary_expression "*(int *)(pcVar33 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar33 + -0x7fc4)" * (cast_expression "(int *)(pcVar33 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7fc4)" ( (binary_expression "pcVar33 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar33 + -0x7924) + -0x2a28" (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_00222d68:\n  sVar18 = 0x5c8;" statement_identifier : (expression_statement "sVar18 = 0x5c8;" (assignment_expression "sVar18 = 0x5c8" identifier = number_literal) ;)) (expression_statement "pOVar21 = (Output_file *)(*(int *)(pcVar33 + -0x7924) - 0x3404);" (assignment_expression "pOVar21 = (Output_file *)(*(int *)(pcVar33 + -0x7924) - 0x3404)" identifier = (cast_expression "(Output_file *)(*(int *)(pcVar33 + -0x7924) - 0x3404)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + -0x7924) - 0x3404)" ( (binary_expression "*(int *)(pcVar33 + -0x7924) - 0x3404" (pointer_expression "*(int *)(pcVar33 + -0x7924)" * (cast_expression "(int *)(pcVar33 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7924)" ( (binary_expression "pcVar33 + -0x7924" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x4570);" (assignment_expression "pOVar15 = (Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x4570)" identifier = (cast_expression "(Output_file *)(*(int *)(pcVar33 + -0x7fc4) + 0x4570)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + -0x7fc4) + 0x4570)" ( (binary_expression "*(int *)(pcVar33 + -0x7fc4) + 0x4570" (pointer_expression "*(int *)(pcVar33 + -0x7fc4)" * (cast_expression "(int *)(pcVar33 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + -0x7fc4)" ( (binary_expression "pcVar33 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar33 + -0x7810))();" (call_expression "(**(code **)(pcVar33 + -0x7810))()" (parenthesized_expression "(**(code **)(pcVar33 + -0x7810))" ( (pointer_expression "**(code **)(pcVar33 + -0x7810)" * (pointer_expression "*(code **)(pcVar33 + -0x7810)" * (cast_expression "(code **)(pcVar33 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + -0x7810)" ( (binary_expression "pcVar33 + -0x7810" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar36 = extraout_v1_02;" (assignment_expression "iVar36 = extraout_v1_02" identifier = identifier) ;) (labeled_statement "LAB_00222d84:\n  uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);" statement_identifier : (expression_statement "uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22);" (assignment_expression "uVar22 = (uint)(*(uint *)(sVar18 + 0xc) < uVar22)" identifier = (call_expression "(uint)(*(uint *)(sVar18 + 0xc) < uVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(sVar18 + 0xc) < uVar22)" ( (binary_expression "*(uint *)(sVar18 + 0xc) < uVar22" (pointer_expression "*(uint *)(sVar18 + 0xc)" * (cast_expression "(uint *)(sVar18 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar18 + 0xc)" ( (binary_expression "sVar18 + 0xc" identifier + number_literal) )))) < identifier) )))) ;)) (if_statement "if (uVar22 != 0) goto LAB_00222d98;" if (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00222d98;" goto statement_identifier ;)) (goto_statement "goto LAB_00222bf4;" goto statement_identifier ;) (ERROR "}" }))
(translation_unit "void FUN_00222358(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  \n  if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78);\n  return;\n}\n\n" (function_definition "void FUN_00222358(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  \n  if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78);\n  return;\n}" primitive_type (function_declarator "FUN_00222358(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  \n  if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (if_statement "if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) << 2 < 0)" ( (binary_expression "*(int *)(param_1 + 0x20) << 2 < 0" (binary_expression "*(int *)(param_1 + 0x20) << 2" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }" { (if_statement "if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }" if (parenthesized_expression "(-1 < *(int *)(param_1 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(param_1 + 0x20) << 1" number_literal < (binary_expression "*(int *)(param_1 + 0x20) << 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29fc" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar12 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x10) != 0)" ( (binary_expression "*(int *)(param_1 + 0x10) != 0" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x32e0" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar9 = uVar12 + *(int *)(param_1 + 0x1c);" (assignment_expression "uVar9 = uVar12 + *(int *)(param_1 + 0x1c)" identifier = (binary_expression "uVar12 + *(int *)(param_1 + 0x1c)" identifier + (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))))) ;) (if_statement "if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }" if (parenthesized_expression "(-1 < *(int *)(param_1 + 0x18))" ( (binary_expression "-1 < *(int *)(param_1 + 0x18)" number_literal < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }" { (expression_statement "iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18)" identifier = (binary_expression "(uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18)" (call_expression "(uint)(uVar9 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 < uVar12)" ( (binary_expression "uVar9 < uVar12" identifier < identifier) ))) + (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }" if (parenthesized_expression "((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc)))))" ( (binary_expression "(iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))" (parenthesized_expression "(iVar3 <= *(int *)(param_2 + 8))" ( (binary_expression "iVar3 <= *(int *)(param_2 + 8)" identifier <= (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) )) && (parenthesized_expression "((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))" ( (parenthesized_expression "(*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc)))" ( (binary_expression "*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))" (binary_expression "*(int *)(param_2 + 8) != iVar3" (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) != identifier) || (parenthesized_expression "(uVar9 <= *(uint *)(param_2 + 0xc))" ( (binary_expression "uVar9 <= *(uint *)(param_2 + 0xc)" identifier <= (pointer_expression "*(uint *)(param_2 + 0xc)" * (cast_expression "(uint *)(param_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }" { (expression_statement "puVar13 = *(uint **)(param_1 + 0x38);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x38)" identifier = (pointer_expression "*(uint **)(param_1 + 0x38)" * (cast_expression "(uint **)(param_1 + 0x38)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));" (assignment_expression "puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c))" identifier = (cast_expression "(undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c))" ( (binary_expression "*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c)" (pointer_expression "*(int *)(param_2 + 0x10)" * (cast_expression "(int *)(param_2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar4 = *(uint **)(param_1 + 0x3c);" (assignment_expression "puVar4 = *(uint **)(param_1 + 0x3c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x3c)" * (cast_expression "(uint **)(param_1 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*puVar10 = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "*puVar10 = *(undefined4 *)(param_1 + 0x34)" (pointer_expression "*puVar10" * identifier) = (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puVar2 = PTR_do_out_shndx_004c219c;" (assignment_expression "puVar2 = PTR_do_out_shndx_004c219c" identifier = identifier) ;) (expression_statement "puVar1 = PTR_do_output_section_004c1b24;" (assignment_expression "puVar1 = PTR_do_output_section_004c1b24" identifier = identifier) ;) (if_statement "if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }" if (parenthesized_expression "(puVar13 == puVar4)" ( (binary_expression "puVar13 == puVar4" identifier == identifier) )) (compound_statement "{\n          uVar9 = 4;\n        }" { (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" identifier = number_literal) ;) }) (else_clause "else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }" else (compound_statement "{\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }" { (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568" identifier = (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x4568" identifier + number_literal)) ;) (expression_statement "piVar8 = puVar10 + 1;" (assignment_expression "piVar8 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (do_statement "do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);" do (compound_statement "{\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          }" { (while_statement "while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }" { (expression_statement "piVar14 = piVar8;" (assignment_expression "piVar14 = piVar8" identifier = identifier) ;) (expression_statement "puVar4 = puVar13;" (assignment_expression "puVar4 = puVar13" identifier = identifier) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x30);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x30)" identifier = (pointer_expression "*(int **)(param_1 + 0x30)" * (cast_expression "(int **)(param_1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;" if (parenthesized_expression "(*(code **)(*piVar8 + 0x60) == (code *)puVar1)" ( (binary_expression "*(code **)(*piVar8 + 0x60) == (code *)puVar1" (pointer_expression "*(code **)(*piVar8 + 0x60)" * (cast_expression "(code **)(*piVar8 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x60)" ( (binary_expression "*piVar8 + 0x60" (pointer_expression "*piVar8" * identifier) + number_literal) )))) == (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();" (assignment_expression "piVar8 = (int *)(**(code **)(*piVar8 + 0x60))()" identifier = (cast_expression "(int *)(**(code **)(*piVar8 + 0x60))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar8 + 0x60))()" (parenthesized_expression "(**(code **)(*piVar8 + 0x60))" ( (pointer_expression "**(code **)(*piVar8 + 0x60)" * (pointer_expression "*(code **)(*piVar8 + 0x60)" * (cast_expression "(code **)(*piVar8 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x60)" ( (binary_expression "*piVar8 + 0x60" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (piVar8 != (int *)0x0) goto LAB_00222450;" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00222450;" goto statement_identifier ;)) (labeled_statement "LAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);" statement_identifier : (expression_statement "uVar11 = *(undefined4 *)(param_1 + 0x30);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;)) (expression_statement "uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);" (assignment_expression "uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5)" identifier = (call_expression "(*(code *)PTR_gettext_004c5c30)(puVar5)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" ( (pointer_expression "*(code *)PTR_gettext_004c5c30" * (cast_expression "(code *)PTR_gettext_004c5c30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_error_004c1a54)(uVar11,uVar6);" (call_expression "(*(code *)PTR_error_004c1a54)(uVar11,uVar6)" (parenthesized_expression "(*(code *)PTR_error_004c1a54)" ( (pointer_expression "*(code *)PTR_error_004c1a54" * (cast_expression "(code *)PTR_error_004c1a54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,uVar6)" ( identifier , identifier ))) ;) (expression_statement "puVar7 = *(uint **)(param_1 + 0x3c);" (assignment_expression "puVar7 = *(uint **)(param_1 + 0x3c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x3c)" * (cast_expression "(uint **)(param_1 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*piVar14 = 0;" (assignment_expression "*piVar14 = 0" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (expression_statement "puVar13 = puVar4 + 1;" (assignment_expression "puVar13 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar14 + 1;" (assignment_expression "piVar8 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) (if_statement "if (puVar7 == puVar4 + 1) goto LAB_002224e4;" if (parenthesized_expression "(puVar7 == puVar4 + 1)" ( (binary_expression "puVar7 == puVar4 + 1" identifier == (binary_expression "puVar4 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_002224e4;" goto statement_identifier ;)) })) (if_statement "if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }" if (parenthesized_expression "((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4)" ( (binary_expression "(uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4" (call_expression "(uint)(piVar8[0xf] - piVar8[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar8[0xf] - piVar8[0xe] >> 2)" ( (binary_expression "piVar8[0xf] - piVar8[0xe] >> 2" (binary_expression "piVar8[0xf] - piVar8[0xe]" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar8[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= (pointer_expression "*puVar4" * identifier)) )) (compound_statement "{\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3404" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);" (assignment_expression "piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4)" identifier = (pointer_expression "*(int **)(piVar8[0xe] + *puVar4 * 4)" * (cast_expression "(int **)(piVar8[0xe] + *puVar4 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0xe] + *puVar4 * 4)" ( (binary_expression "piVar8[0xe] + *puVar4 * 4" (subscript_expression "piVar8[0xe]" identifier [ number_literal ]) + (binary_expression "*puVar4 * 4" (pointer_expression "*puVar4" * identifier) * number_literal)) ))))) ;) (if_statement "if (piVar8 == (int *)0x0) goto LAB_002224a8;" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002224a8;" goto statement_identifier ;)) (labeled_statement "LAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }" statement_identifier : (if_statement "if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }" if (parenthesized_expression "(*(code **)(*piVar8 + 0x2c) == (code *)puVar2)" ( (binary_expression "*(code **)(*piVar8 + 0x2c) == (code *)puVar2" (pointer_expression "*(code **)(*piVar8 + 0x2c)" * (cast_expression "(code **)(*piVar8 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x2c)" ( (binary_expression "*piVar8 + 0x2c" (pointer_expression "*piVar8" * identifier) + number_literal) )))) == (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }" { (expression_statement "iVar3 = piVar8[0x19];" (assignment_expression "iVar3 = piVar8[0x19]" identifier = (subscript_expression "piVar8[0x19]" identifier [ number_literal ])) ;) (if_statement "if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a28" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }" else (compound_statement "{\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }" { (expression_statement "iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);" (assignment_expression "iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8)" identifier = (call_expression "(**(code **)(*piVar8 + 0x2c))(piVar8)" (parenthesized_expression "(**(code **)(*piVar8 + 0x2c))" ( (pointer_expression "**(code **)(*piVar8 + 0x2c)" * (pointer_expression "*(code **)(*piVar8 + 0x2c)" * (cast_expression "(code **)(*piVar8 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x2c)" ( (binary_expression "*piVar8 + 0x2c" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "(piVar8)" ( identifier )))) ;) })))) (expression_statement "puVar7 = *(uint **)(param_1 + 0x3c);" (assignment_expression "puVar7 = *(uint **)(param_1 + 0x3c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x3c)" * (cast_expression "(uint **)(param_1 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*piVar14 = iVar3;" (assignment_expression "*piVar14 = iVar3" (pointer_expression "*piVar14" * identifier) = identifier) ;) (expression_statement "puVar13 = puVar4 + 1;" (assignment_expression "puVar13 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar14 + 1;" (assignment_expression "piVar8 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != puVar4 + 1)" ( (binary_expression "puVar7 != puVar4 + 1" identifier != (binary_expression "puVar4 + 1" identifier + number_literal)) )) ;) (labeled_statement "LAB_002224e4:\n          puVar13 = puVar4 + 1;" statement_identifier : (expression_statement "puVar13 = puVar4 + 1;" (assignment_expression "puVar13 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;)) (expression_statement "uVar9 = (int)piVar14 + (4 - (int)puVar10);" (assignment_expression "uVar9 = (int)piVar14 + (4 - (int)puVar10)" identifier = (binary_expression "(int)piVar14 + (4 - (int)puVar10)" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(4 - (int)puVar10)" ( (binary_expression "4 - (int)puVar10" number_literal - (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (if_statement "if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }" if (parenthesized_expression "(uVar9 != uVar12)" ( (binary_expression "uVar9 != uVar12" identifier != identifier) )) (compound_statement "{\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x4278" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }" if (parenthesized_expression "(*(uint **)(param_1 + 0x38) != puVar13)" ( (binary_expression "*(uint **)(param_1 + 0x38) != puVar13" (pointer_expression "*(uint **)(param_1 + 0x38)" * (cast_expression "(uint **)(param_1 + 0x38)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }" { (expression_statement "*(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);" (assignment_expression "*(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38)" (pointer_expression "*(uint **)(param_1 + 0x3c)" * (cast_expression "(uint **)(param_1 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*(uint **)(param_1 + 0x38)" * (cast_expression "(uint **)(param_1 + 0x38)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) })) (return_statement "return;" return ;) })) })) (expression_statement "FUN_00212d10();" (call_expression "FUN_00212d10()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a78" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (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 LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < 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 <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) || (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , 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 * IDENT) = LIT) ;) (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 == (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (pointer_expression * IDENT) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) })))) (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 * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (return_statement return ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00222358(int param_1,int param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  \n  if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00222358(int param_1,int param_2)" (identifier "FUN_00222358") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint *puVar13;\n  int *piVar14;\n  \n  if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78);\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint *puVar4;" (type_identifier "uint") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint *puVar13;" (type_identifier "uint") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x20) << 2 < 0) {\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x20) << 2 < 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) << 2 < 0" (binary_expression "*(int *)(param_1 + 0x20) << 2" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "2")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }\n    uVar12 = *(uint *)(param_1 + 0x14);\n    if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }\n    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);\n    if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }" ({ "{") (if_statement "if (-1 < *(int *)(param_1 + 0x20) << 1) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }" (if "if") (parenthesized_expression "(-1 < *(int *)(param_1 + 0x20) << 1)" (( "(") (binary_expression "-1 < *(int *)(param_1 + 0x20) << 1" (number_literal "-1") (< "<") (binary_expression "*(int *)(param_1 + 0x20) << 1" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "1"))) () ")")) (compound_statement "{\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);\n      return;\n    }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                 PTR_s_in_a_linker_script_004c191c + -0x29fc)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0xcf") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29fc" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x29fc")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar12 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0x14)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x10) != 0) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x10) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) != 0" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);\n      return;\n    }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,\n                 PTR_s_in_a_linker_script_004c191c + -0x32e0)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x4584")) (, ",") (number_literal "0xc0") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x32e0" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x32e0")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar9 = uVar12 + *(int *)(param_1 + 0x1c);" (assignment_expression "uVar9 = uVar12 + *(int *)(param_1 + 0x1c)" (identifier "uVar9") (= "=") (binary_expression "uVar12 + *(int *)(param_1 + 0x1c)" (identifier "uVar12") (+ "+") (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (if_statement "if (-1 < *(int *)(param_1 + 0x18)) {\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }" (if "if") (parenthesized_expression "(-1 < *(int *)(param_1 + 0x18))" (( "(") (binary_expression "-1 < *(int *)(param_1 + 0x18)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);\n      if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }\n    }" ({ "{") (expression_statement "iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18)" (identifier "iVar3") (= "=") (binary_expression "(uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18)" (call_expression "(uint)(uVar9 < uVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 < uVar12)" (( "(") (binary_expression "uVar9 < uVar12" (identifier "uVar9") (< "<") (identifier "uVar12")) () ")"))) (+ "+") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (if_statement "if ((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }" (if "if") (parenthesized_expression "((iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc)))))" (( "(") (binary_expression "(iVar3 <= *(int *)(param_2 + 8)) &&\n         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))" (parenthesized_expression "(iVar3 <= *(int *)(param_2 + 8))" (( "(") (binary_expression "iVar3 <= *(int *)(param_2 + 8)" (identifier "iVar3") (<= "<=") (pointer_expression "*(int *)(param_2 + 8)" (* "*") (cast_expression "(int *)(param_2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))" (( "(") (parenthesized_expression "(*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc)))" (( "(") (binary_expression "*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))" (binary_expression "*(int *)(param_2 + 8) != iVar3" (pointer_expression "*(int *)(param_2 + 8)" (* "*") (cast_expression "(int *)(param_2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (identifier "iVar3")) (|| "||") (parenthesized_expression "(uVar9 <= *(uint *)(param_2 + 0xc))" (( "(") (binary_expression "uVar9 <= *(uint *)(param_2 + 0xc)" (identifier "uVar9") (<= "<=") (pointer_expression "*(uint *)(param_2 + 0xc)" (* "*") (cast_expression "(uint *)(param_2 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        puVar13 = *(uint **)(param_1 + 0x38);\n        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));\n        puVar4 = *(uint **)(param_1 + 0x3c);\n        *puVar10 = *(undefined4 *)(param_1 + 0x34);\n        puVar2 = PTR_do_out_shndx_004c219c;\n        puVar1 = PTR_do_output_section_004c1b24;\n        if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }\n        if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }\n        if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }\n        return;\n      }" ({ "{") (expression_statement "puVar13 = *(uint **)(param_1 + 0x38);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x38)" (identifier "puVar13") (= "=") (pointer_expression "*(uint **)(param_1 + 0x38)" (* "*") (cast_expression "(uint **)(param_1 + 0x38)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));" (assignment_expression "puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c))" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c))" (( "(") (binary_expression "*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c)" (pointer_expression "*(int *)(param_2 + 0x10)" (* "*") (cast_expression "(int *)(param_2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")))) (; ";")) (expression_statement "puVar4 = *(uint **)(param_1 + 0x3c);" (assignment_expression "puVar4 = *(uint **)(param_1 + 0x3c)" (identifier "puVar4") (= "=") (pointer_expression "*(uint **)(param_1 + 0x3c)" (* "*") (cast_expression "(uint **)(param_1 + 0x3c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "*puVar10 = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "*puVar10 = *(undefined4 *)(param_1 + 0x34)" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "puVar2 = PTR_do_out_shndx_004c219c;" (assignment_expression "puVar2 = PTR_do_out_shndx_004c219c" (identifier "puVar2") (= "=") (identifier "PTR_do_out_shndx_004c219c")) (; ";")) (expression_statement "puVar1 = PTR_do_output_section_004c1b24;" (assignment_expression "puVar1 = PTR_do_output_section_004c1b24" (identifier "puVar1") (= "=") (identifier "PTR_do_output_section_004c1b24")) (; ";")) (if_statement "if (puVar13 == puVar4) {\n          uVar9 = 4;\n        }\n        else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }" (if "if") (parenthesized_expression "(puVar13 == puVar4)" (( "(") (binary_expression "puVar13 == puVar4" (identifier "puVar13") (== "==") (identifier "puVar4")) () ")")) (compound_statement "{\n          uVar9 = 4;\n        }" ({ "{") (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" (identifier "uVar9") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }" (else "else") (compound_statement "{\n          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;\n          piVar8 = puVar10 + 1;\n          do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);\nLAB_002224e4:\n          puVar13 = puVar4 + 1;\n          uVar9 = (int)piVar14 + (4 - (int)puVar10);\n        }" ({ "{") (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568" (identifier "puVar5") (= "=") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x4568" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x4568"))) (; ";")) (expression_statement "piVar8 = puVar10 + 1;" (assignment_expression "piVar8 = puVar10 + 1" (identifier "piVar8") (= "=") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          } while (puVar7 != puVar4 + 1);" (do "do") (compound_statement "{\n            while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }\n            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }\n            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);\n            if (piVar8 == (int *)0x0) goto LAB_002224a8;\nLAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }\n            puVar7 = *(uint **)(param_1 + 0x3c);\n            *piVar14 = iVar3;\n            puVar13 = puVar4 + 1;\n            piVar8 = piVar14 + 1;\n          }" ({ "{") (while_statement "while( true ) {\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              piVar14 = piVar8;\n              puVar4 = puVar13;\n              piVar8 = *(int **)(param_1 + 0x30);\n              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;\n              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();\n              if (piVar8 != (int *)0x0) goto LAB_00222450;\nLAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);\n              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);\n              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);\n              puVar7 = *(uint **)(param_1 + 0x3c);\n              *piVar14 = 0;\n              puVar13 = puVar4 + 1;\n              piVar8 = piVar14 + 1;\n              if (puVar7 == puVar4 + 1) goto LAB_002224e4;\n            }" ({ "{") (expression_statement "piVar14 = piVar8;" (assignment_expression "piVar14 = piVar8" (identifier "piVar14") (= "=") (identifier "piVar8")) (; ";")) (expression_statement "puVar4 = puVar13;" (assignment_expression "puVar4 = puVar13" (identifier "puVar4") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "piVar8 = *(int **)(param_1 + 0x30);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x30)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x30)" (* "*") (cast_expression "(int **)(param_1 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;" (if "if") (parenthesized_expression "(*(code **)(*piVar8 + 0x60) == (code *)puVar1)" (( "(") (binary_expression "*(code **)(*piVar8 + 0x60) == (code *)puVar1" (pointer_expression "*(code **)(*piVar8 + 0x60)" (* "*") (cast_expression "(code **)(*piVar8 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar8 + 0x60)" (( "(") (binary_expression "*piVar8 + 0x60" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "0x60")) () ")")))) (== "==") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();" (assignment_expression "piVar8 = (int *)(**(code **)(*piVar8 + 0x60))()" (identifier "piVar8") (= "=") (cast_expression "(int *)(**(code **)(*piVar8 + 0x60))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*piVar8 + 0x60))()" (parenthesized_expression "(**(code **)(*piVar8 + 0x60))" (( "(") (pointer_expression "**(code **)(*piVar8 + 0x60)" (* "*") (pointer_expression "*(code **)(*piVar8 + 0x60)" (* "*") (cast_expression "(code **)(*piVar8 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar8 + 0x60)" (( "(") (binary_expression "*piVar8 + 0x60" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (piVar8 != (int *)0x0) goto LAB_00222450;" (if "if") (parenthesized_expression "(piVar8 != (int *)0x0)" (( "(") (binary_expression "piVar8 != (int *)0x0" (identifier "piVar8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00222450;" (goto "goto") (statement_identifier "LAB_00222450") (; ";"))) (labeled_statement "LAB_002224a8:\n              uVar11 = *(undefined4 *)(param_1 + 0x30);" (statement_identifier "LAB_002224a8") (: ":") (expression_statement "uVar11 = *(undefined4 *)(param_1 + 0x30);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 0x30)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";"))) (expression_statement "uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);" (assignment_expression "uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5)" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR_gettext_004c5c30)(puVar5)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" (( "(") (pointer_expression "*(code *)PTR_gettext_004c5c30" (* "*") (cast_expression "(code *)PTR_gettext_004c5c30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gettext_004c5c30"))) () ")")) (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_error_004c1a54)(uVar11,uVar6);" (call_expression "(*(code *)PTR_error_004c1a54)(uVar11,uVar6)" (parenthesized_expression "(*(code *)PTR_error_004c1a54)" (( "(") (pointer_expression "*(code *)PTR_error_004c1a54" (* "*") (cast_expression "(code *)PTR_error_004c1a54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_error_004c1a54"))) () ")")) (argument_list "(uVar11,uVar6)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "puVar7 = *(uint **)(param_1 + 0x3c);" (assignment_expression "puVar7 = *(uint **)(param_1 + 0x3c)" (identifier "puVar7") (= "=") (pointer_expression "*(uint **)(param_1 + 0x3c)" (* "*") (cast_expression "(uint **)(param_1 + 0x3c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "*piVar14 = 0;" (assignment_expression "*piVar14 = 0" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar13 = puVar4 + 1;" (assignment_expression "puVar13 = puVar4 + 1" (identifier "puVar13") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar8 = piVar14 + 1;" (assignment_expression "piVar8 = piVar14 + 1" (identifier "piVar8") (= "=") (binary_expression "piVar14 + 1" (identifier "piVar14") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (puVar7 == puVar4 + 1) goto LAB_002224e4;" (if "if") (parenthesized_expression "(puVar7 == puVar4 + 1)" (( "(") (binary_expression "puVar7 == puVar4 + 1" (identifier "puVar7") (== "==") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_002224e4;" (goto "goto") (statement_identifier "LAB_002224e4") (; ";"))) (} "}"))) (if_statement "if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }" (if "if") (parenthesized_expression "((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4)" (( "(") (binary_expression "(uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4" (call_expression "(uint)(piVar8[0xf] - piVar8[0xe] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar8[0xf] - piVar8[0xe] >> 2)" (( "(") (binary_expression "piVar8[0xf] - piVar8[0xe] >> 2" (binary_expression "piVar8[0xf] - piVar8[0xe]" (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (- "-") (subscript_expression "piVar8[0xe]" (identifier "piVar8") ([ "[") (number_literal "0xe") (] "]"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) () ")")) (compound_statement "{\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);\n              return;\n            }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,\n                         PTR_s_in_a_linker_script_004c191c + -0x3404)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x4570")) (, ",") (number_literal "0x5c8") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3404" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x3404")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);" (assignment_expression "piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(piVar8[0xe] + *puVar4 * 4)" (* "*") (cast_expression "(int **)(piVar8[0xe] + *puVar4 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0xe] + *puVar4 * 4)" (( "(") (binary_expression "piVar8[0xe] + *puVar4 * 4" (subscript_expression "piVar8[0xe]" (identifier "piVar8") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "*puVar4 * 4" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar8 == (int *)0x0) goto LAB_002224a8;" (if "if") (parenthesized_expression "(piVar8 == (int *)0x0)" (( "(") (binary_expression "piVar8 == (int *)0x0" (identifier "piVar8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_002224a8;" (goto "goto") (statement_identifier "LAB_002224a8") (; ";"))) (labeled_statement "LAB_00222450:\n            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }" (statement_identifier "LAB_00222450") (: ":") (if_statement "if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }\n            else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }" (if "if") (parenthesized_expression "(*(code **)(*piVar8 + 0x2c) == (code *)puVar2)" (( "(") (binary_expression "*(code **)(*piVar8 + 0x2c) == (code *)puVar2" (pointer_expression "*(code **)(*piVar8 + 0x2c)" (* "*") (cast_expression "(code **)(*piVar8 + 0x2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar8 + 0x2c)" (( "(") (binary_expression "*piVar8 + 0x2c" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (compound_statement "{\n              iVar3 = piVar8[0x19];\n              if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }\n            }" ({ "{") (expression_statement "iVar3 = piVar8[0x19];" (assignment_expression "iVar3 = piVar8[0x19]" (identifier "iVar3") (= "=") (subscript_expression "piVar8[0x19]" (identifier "piVar8") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (if_statement "if (iVar3 == -1) {\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);\n                return;\n              }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,\n                           PTR_s_in_a_linker_script_004c191c + -0x2a28)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0x1043") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a28" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x2a28")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }" (else "else") (compound_statement "{\n              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);\n            }" ({ "{") (expression_statement "iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);" (assignment_expression "iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*piVar8 + 0x2c))(piVar8)" (parenthesized_expression "(**(code **)(*piVar8 + 0x2c))" (( "(") (pointer_expression "**(code **)(*piVar8 + 0x2c)" (* "*") (pointer_expression "*(code **)(*piVar8 + 0x2c)" (* "*") (cast_expression "(code **)(*piVar8 + 0x2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar8 + 0x2c)" (( "(") (binary_expression "*piVar8 + 0x2c" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (argument_list "(piVar8)" (( "(") (identifier "piVar8") () ")")))) (; ";")) (} "}"))))) (expression_statement "puVar7 = *(uint **)(param_1 + 0x3c);" (assignment_expression "puVar7 = *(uint **)(param_1 + 0x3c)" (identifier "puVar7") (= "=") (pointer_expression "*(uint **)(param_1 + 0x3c)" (* "*") (cast_expression "(uint **)(param_1 + 0x3c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "*piVar14 = iVar3;" (assignment_expression "*piVar14 = iVar3" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "puVar13 = puVar4 + 1;" (assignment_expression "puVar13 = puVar4 + 1" (identifier "puVar13") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar8 = piVar14 + 1;" (assignment_expression "piVar8 = piVar14 + 1" (identifier "piVar8") (= "=") (binary_expression "piVar14 + 1" (identifier "piVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != puVar4 + 1)" (( "(") (binary_expression "puVar7 != puVar4 + 1" (identifier "puVar7") (!= "!=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) () ")")) (; ";")) (labeled_statement "LAB_002224e4:\n          puVar13 = puVar4 + 1;" (statement_identifier "LAB_002224e4") (: ":") (expression_statement "puVar13 = puVar4 + 1;" (assignment_expression "puVar13 = puVar4 + 1" (identifier "puVar13") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "uVar9 = (int)piVar14 + (4 - (int)puVar10);" (assignment_expression "uVar9 = (int)piVar14 + (4 - (int)puVar10)" (identifier "uVar9") (= "=") (binary_expression "(int)piVar14 + (4 - (int)puVar10)" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (parenthesized_expression "(4 - (int)puVar10)" (( "(") (binary_expression "4 - (int)puVar10" (number_literal "4") (- "-") (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10"))) () ")")))) (; ";")) (} "}")))) (if_statement "if (uVar9 != uVar12) {\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }" (if "if") (parenthesized_expression "(uVar9 != uVar12)" (( "(") (binary_expression "uVar9 != uVar12" (identifier "uVar9") (!= "!=") (identifier "uVar12")) () ")")) (compound_statement "{\n          (*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);\n          return;\n        }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,\n                     PTR_s_in_a_linker_script_004c191c + -0x4278)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x48b4")) (, ",") (number_literal "0x549") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x4278" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x4278")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(uint **)(param_1 + 0x38) != puVar13) {\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }" (if "if") (parenthesized_expression "(*(uint **)(param_1 + 0x38) != puVar13)" (( "(") (binary_expression "*(uint **)(param_1 + 0x38) != puVar13" (pointer_expression "*(uint **)(param_1 + 0x38)" (* "*") (cast_expression "(uint **)(param_1 + 0x38)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (!= "!=") (identifier "puVar13")) () ")")) (compound_statement "{\n          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);\n        }" ({ "{") (expression_statement "*(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);" (assignment_expression "*(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38)" (pointer_expression "*(uint **)(param_1 + 0x3c)" (* "*") (cast_expression "(uint **)(param_1 + 0x3c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (pointer_expression "*(uint **)(param_1 + 0x38)" (* "*") (cast_expression "(uint **)(param_1 + 0x38)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00212d10();" (call_expression "FUN_00212d10()" (identifier "FUN_00212d10") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n             PTR_s_in_a_linker_script_004c191c + -0x2a78)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0xe3") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a78" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x2a78")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (identifier)) (declaration type: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (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: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (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: (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: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (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: (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))))))) (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: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (if_statement condition: (parenthesized_expression (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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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))))))))) (return_statement))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))))

void MASKED(int param_1,int param_2)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint *puVar4;
  undefined *puVar5;
  undefined4 uVar6;
  uint *puVar7;
  int *piVar8;
  uint uVar9;
  undefined4 *puVar10;
  undefined4 uVar11;
  uint uVar12;
  uint *puVar13;
  int *piVar14;
  
  if (*(int *)(param_1 + 0x20) << 2 < 0) {
    if (-1 < *(int *)(param_1 + 0x20) << 1) {
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,
                 PTR_s_in_a_linker_script_004c191c + -0x29fc);
      return;
    }
    uVar12 = *(uint *)(param_1 + 0x14);
    if (*(int *)(param_1 + 0x10) != 0) {
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4584,0xc0,
                 PTR_s_in_a_linker_script_004c191c + -0x32e0);
      return;
    }
    uVar9 = uVar12 + *(int *)(param_1 + 0x1c);
    if (-1 < *(int *)(param_1 + 0x18)) {
      iVar3 = (uint)(uVar9 < uVar12) + *(int *)(param_1 + 0x18);
      if ((iVar3 <= *(int *)(param_2 + 8)) &&
         ((*(int *)(param_2 + 8) != iVar3 || (uVar9 <= *(uint *)(param_2 + 0xc))))) {
        puVar13 = *(uint **)(param_1 + 0x38);
        puVar10 = (undefined4 *)(*(int *)(param_2 + 0x10) + *(int *)(param_1 + 0x1c));
        puVar4 = *(uint **)(param_1 + 0x3c);
        *puVar10 = *(undefined4 *)(param_1 + 0x34);
        puVar2 = PTR_do_out_shndx_004c219c;
        puVar1 = PTR_do_output_section_004c1b24;
        if (puVar13 == puVar4) {
          uVar9 = 4;
        }
        else {
          puVar5 = PTR_s_in_a_linker_script_004c191c + -0x4568;
          piVar8 = puVar10 + 1;
          do {
            while( true ) {
              piVar14 = piVar8;
              puVar4 = puVar13;
              piVar8 = *(int **)(param_1 + 0x30);
              if (*(code **)(*piVar8 + 0x60) == (code *)puVar1) break;
              piVar8 = (int *)(**(code **)(*piVar8 + 0x60))();
              if (piVar8 != (int *)0x0) goto LAB_00222450;
LAB_002224a8:
              uVar11 = *(undefined4 *)(param_1 + 0x30);
              uVar6 = (*(code *)PTR_gettext_004c5c30)(puVar5);
              (*(code *)PTR_error_004c1a54)(uVar11,uVar6);
              puVar7 = *(uint **)(param_1 + 0x3c);
              *piVar14 = 0;
              puVar13 = puVar4 + 1;
              piVar8 = piVar14 + 1;
              if (puVar7 == puVar4 + 1) goto LAB_002224e4;
            }
            if ((uint)(piVar8[0xf] - piVar8[0xe] >> 2) <= *puVar4) {
              (*(code *)PTR_do_gold_unreachable_004c1a30)
                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x5c8,
                         PTR_s_in_a_linker_script_004c191c + -0x3404);
              return;
            }
            piVar8 = *(int **)(piVar8[0xe] + *puVar4 * 4);
            if (piVar8 == (int *)0x0) goto LAB_002224a8;
LAB_00222450:
            if (*(code **)(*piVar8 + 0x2c) == (code *)puVar2) {
              iVar3 = piVar8[0x19];
              if (iVar3 == -1) {
                (*(code *)PTR_do_gold_unreachable_004c1a30)
                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,
                           PTR_s_in_a_linker_script_004c191c + -0x2a28);
                return;
              }
            }
            else {
              iVar3 = (**(code **)(*piVar8 + 0x2c))(piVar8);
            }
            puVar7 = *(uint **)(param_1 + 0x3c);
            *piVar14 = iVar3;
            puVar13 = puVar4 + 1;
            piVar8 = piVar14 + 1;
          } while (puVar7 != puVar4 + 1);
LAB_002224e4:
          puVar13 = puVar4 + 1;
          uVar9 = (int)piVar14 + (4 - (int)puVar10);
        }
        if (uVar9 != uVar12) {
          (*(code *)PTR_do_gold_unreachable_004c1a30)
                    (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x549,
                     PTR_s_in_a_linker_script_004c191c + -0x4278);
          return;
        }
        if (*(uint **)(param_1 + 0x38) != puVar13) {
          *(uint **)(param_1 + 0x3c) = *(uint **)(param_1 + 0x38);
        }
        return;
      }
    }
    FUN_00212d10();
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,
             PTR_s_in_a_linker_script_004c191c + -0x2a78);
  return;
}

