
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* 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 incremental_relocs_write_reltype<4>(Sized_relobj_file<32,_true> *
   this, Relocate_info<32,_true> * relinfo, uchar * prelocs, size_t reloc_count, Output_section *
   output_section, Address output_offset, Output_file * of) */

void __thiscall
gold::Sized_relobj_file<32,_true>::incremental_relocs_write_reltype<4>
          (Sized_relobj_file<32,_true> *this,Relocate_info<32,_true> *relinfo,uchar *prelocs,
          size_t reloc_count,Output_section *output_section,Address output_offset,Output_file *of)

{
  Incremental_inputs *pIVar1;
  int iVar2;
  int *piVar3;
  uint uVar4;
  Address AVar5;
  int *piVar6;
  int iVar7;
  uchar *puVar8;
  uchar *puVar9;
  int iVar10;
  Output_file *pOVar11;
  int iVar12;
  Output_data_space *pOVar13;
  uint uVar14;
  Output_file *pOVar15;
  int iVar16;
  Output_file *pOVar17;
  uint *puVar18;
  undefined4 *puVar19;
  undefined4 uVar20;
  size_t sVar21;
  uint *puVar22;
  char *pcVar23;
  int iVar24;
  undefined *puVar25;
  Output_file *pOVar26;
  int iVar27;
  Output_file *pOVar28;
  Output_file *pOVar29;
  uint uVar30;
  uchar *puVar31;
  uint uVar32;
  uint uVar33;
  uint uVar34;
  Output_file *pOVar35;
  _func_int_varargs *p_Var36;
  code *pcVar37;
  code *pcVar38;
  bool *pbVar39;
  code *pcVar40;
  undefined4 in_stack_fffffe74;
  int iStack_180;
  int iStack_178;
  undefined4 in_stack_fffffecc;
  size_t sStack_130;
  uint uStack_12c;
  int iStack_128;
  undefined4 in_stack_ffffff1c;
  uint uStack_e0;
  Output_file *pOStack_dc;
  int iStack_d8;
  undefined4 in_stack_ffffff74;
  Output_file *pOStack_88;
  uchar *puStack_84;
  Output_file *pOStack_80;
  bool *pbVar41;
  undefined4 in_stack_ffffffc4;
  size_t local_38;
  uchar *local_34;
  Output_file *local_30;
  
  pbVar39 = &Position_dependent_options::default_options_.relax_.user_set_via_option;
  pbVar41 = &Position_dependent_options::default_options_.relax_.user_set_via_option;
  p_Var36 = (output_section->super_Output_data)._vptr_Output_data[0xb];
  pOVar29 = (Output_file *)reloc_count;
  if (p_Var36 == (_func_int_varargs *)PTR_do_out_shndx_004c219c) {
    local_30 = (Output_file *)output_section->out_shndx_;
    pOVar26 = (Output_file *)PTR_s_in_a_linker_script_004c191c;
    puVar25 = PTR_s_in_a_linker_script_004c191c;
    if (local_30 == (Output_file *)0xffffffff) goto LAB_00282cc8;
  }
  else {
    pOVar26 = (Output_file *)prelocs;
    local_30 = (Output_file *)(*p_Var36)(output_section);
  }
  pbVar39 = pbVar41;
  pIVar1 = relinfo->layout->incremental_inputs_;
  uVar20 = 0x44e;
  if (pIVar1 == (Incremental_inputs *)0x0) goto LAB_00282cb0;
  pOVar13 = pIVar1->relocs_section_;
  iVar2 = *(int *)&(pOVar13->super_Output_section_data_build).super_Output_section_data.
                   super_Output_data.field_0x20;
  pbVar41 = pbVar39;
  if (iVar2 << 2 < 0) {
    local_38 = (size_t)(pOVar13->super_Output_section_data_build).super_Output_section_data.
                       super_Output_data.offset_;
    pOVar17 = *(Output_file **)
               &(pOVar13->super_Output_section_data_build).super_Output_section_data.
                super_Output_data.offset_;
    if (iVar2 << 1 < 0) {
      uVar14 = (uint)(pOVar13->super_Output_section_data_build).super_Output_section_data.
                     super_Output_data.data_size_;
      sVar21 = local_38;
      if (-1 < (int)pOVar17) {
        sVar21 = uVar14 + local_38;
        iVar2 = (int)&pOVar17->name_ + (uint)(sVar21 < uVar14);
        pOVar17 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar2);
        if (pOVar17 == (Output_file *)0x0) {
          if (*(int *)&of->file_size_ == iVar2) goto LAB_00282ce0;
LAB_00282b34:
          local_34 = of->base_;
          sVar21 = 0;
          if (reloc_count == 0) {
            return;
          }
          do {
            uVar34 = *(uint *)(prelocs + 4);
            uVar14 = this->local_symbol_count_;
            uVar33 = uVar34 >> 8;
            if (uVar14 <= uVar33) {
              of = *(Output_file **)prelocs;
              AVar5 = output_offset;
              if (output_offset == 0xffffffff) {
                pOVar29 = of;
                AVar5 = (**(code **)(pbVar39 + -0x767c))
                                  (output_section,relinfo->object,relinfo->data_shndx);
                if (AVar5 == 0xffffffff) goto LAB_00282cac;
                uVar14 = this->local_symbol_count_;
              }
              pbVar39 = pbVar41;
              uVar33 = uVar33 - uVar14;
              uVar14 = *(uint *)(prelocs + 8);
              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.
                                _vptr_Object[0x1d])(this);
              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;
              if (puVar18 == (uint *)0x0) {
                uVar20 = 0x603;
LAB_00282c84:
                do {
                  (**(code **)(pbVar39 + -0x7810))
                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,
                             *(int *)(pbVar39 + -0x7924) + -0x684);
LAB_00282c9c:
                  uVar20 = 0x604;
                } while( true );
              }
              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;
              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;
              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {
                uVar20 = 0x605;
                goto LAB_00282c84;
              }
              puVar18 = puVar18 + uVar33;
              uVar4 = *puVar18;
              *puVar18 = uVar4 + 1;
              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);
              *puVar18 = uVar34 & 0xff;
              puVar18[1] = (uint)local_30;
              puVar18[2] = (int)&of->name_ + AVar5;
              puVar18[3] = uVar14;
              pbVar41 = pbVar39;
            }
            sVar21 = sVar21 + 1;
            prelocs = prelocs + 0xc;
            if (reloc_count == sVar21) {
              return;
            }
          } while( true );
        }
      }
LAB_00282cf0:
      Output_file::get_output_view(pOVar17,CONCAT44(pbVar41,in_stack_ffffffc4),sVar21,pOVar26);
    }
    (**(code **)(pbVar39 + -0x7810))
              (*(int *)(pbVar39 + -0x7fc4) + 0x3574,0xcf,*(int *)(pbVar39 + -0x7924) + -0x500);
  }
  iVar2 = 0xe3;
  pcVar37 = *(code **)(pbVar39 + -0x7810);
  puVar18 = (uint *)(*(int *)(pbVar39 + -0x7924) + -0x4f4);
  piVar3 = (int *)(*(int *)(pbVar39 + -0x7fc4) + 0x3574);
  (*pcVar37)();
  pcVar40 = pcVar37 + 0x246508;
  pOVar26 = pOVar29;
  if (*(code **)(*(int *)pbVar41 + 0x2c) == *(code **)(pcVar37 + 0x23f464)) {
    uVar14 = *(uint *)(pbVar41 + 100);
    iVar27 = *(int *)(pcVar37 + 0x23ebe4);
    pcVar37 = pcVar40;
    if (uVar14 == 0xffffffff) goto LAB_00283058;
  }
  else {
    uVar14 = (**(code **)(*(int *)pbVar41 + 0x2c))(pbVar41);
  }
  iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc);
  uVar20 = 0x44e;
  if (iVar27 == 0) goto LAB_00283024;
  pOVar17 = *(Output_file **)(iVar27 + 0x3c);
  pcVar37 = pcVar40;
  if (*(int *)&pOVar17[1].file_size_ << 2 < 0) {
    pOStack_88 = (Output_file *)pOVar17[1].o_;
    pcVar23 = pOVar17[1].name_;
    if (*(int *)&pOVar17[1].file_size_ << 1 < 0) {
      pbVar39 = &pOVar17->map_is_anonymous_;
      pOVar28 = pOStack_88;
      if (-1 < (int)pcVar23) {
        pOVar28 = (Output_file *)((int)&pOStack_88->name_ + (int)&(*(Output_file **)pbVar39)->name_)
        ;
        pOVar17 = *(Output_file **)&local_30->file_size_;
        pOVar15 = (Output_file *)(pcVar23 + (pOVar28 < *(Output_file **)pbVar39));
        pcVar23 = (char *)(uint)((int)pOVar17 < (int)pOVar15);
        if (pcVar23 == (char *)0x0) {
          if (pOVar17 == pOVar15) goto LAB_00283070;
LAB_00282e20:
          puStack_84 = local_30->base_;
          pOVar17 = (Output_file *)0x0;
          if (pOVar29 == (Output_file *)0x0) {
            return;
          }
          pOStack_80 = (Output_file *)
                       ((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +
                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000);
          do {
            uVar34 = puVar18[3];
            uVar33 = puVar18[2];
            uVar14 = piVar3[0x2e];
            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +
                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;
            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +
                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;
            if (uVar14 <= uVar34) {
              uVar30 = *puVar18;
              uVar4 = puVar18[1];
              local_30 = (Output_file *)
                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +
                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);
              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +
                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;
              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {
                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;
                pOVar26 = local_30;
                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))
                                            (pbVar41,*(undefined4 *)(iVar2 + 8),
                                             *(undefined4 *)(iVar2 + 0x18));
                pcVar40 = pcVar37;
                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;
                uVar14 = piVar3[0x2e];
                puVar31 = puVar8 + (int)local_30;
                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;
              }
              else {
                puVar31 = local_34 + (int)local_30;
                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;
                pcVar40 = pcVar37;
              }
              uVar34 = uVar34 - uVar14;
              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);
              if (piVar3[0x16] == 0) goto LAB_00283018;
              iVar27 = piVar3[0x17];
              uVar20 = 0x604;
              if (iVar27 == 0) goto LAB_00283000;
              iVar16 = uVar34 * 4;
              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {
                uVar20 = 0x605;
LAB_00283000:
                do {
                  (**(code **)(pcVar40 + -0x7810))
                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,
                             *(int *)(pcVar40 + -0x7924) + -0x684);
LAB_00283018:
                  uVar20 = 0x603;
                } while( true );
              }
              piVar6 = (int *)(piVar3[0x16] + iVar16);
              iVar7 = *piVar6;
              *piVar6 = iVar7 + 1;
              pOVar26 = (Output_file *)0x0;
              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));
              piVar6[5] = 0;
              piVar6[4] = 0;
              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +
                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;
              piVar6[1] = (int)pOStack_80;
              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>
                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *
                                  0x10000;
              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +
                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;
              pcVar37 = pcVar40;
            }
            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);
            puVar18 = puVar18 + 4;
            if (pOVar29 == pOVar17) {
              return;
            }
          } while( true );
        }
      }
LAB_00283080:
      Output_file::get_output_view
                (pOVar17,CONCAT44(pcVar37,in_stack_ffffff74),(size_t)pcVar23,pOVar28);
    }
    (**(code **)(pcVar40 + -0x7810))
              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);
  }
  iVar2 = 0xe3;
  pcVar38 = *(code **)(pcVar40 + -0x7810);
  puVar18 = (uint *)(*(int *)(pcVar40 + -0x7924) + -0x4f4);
  piVar3 = (int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);
  (*pcVar38)();
  pcVar40 = pcVar38 + 0x246178;
  pOVar29 = pOVar26;
  if (*(code **)(*(int *)pcVar37 + 0x2c) == *(code **)(pcVar38 + 0x23f0d4)) {
    uVar14 = *(uint *)(pcVar37 + 100);
    iVar27 = *(int *)(pcVar38 + 0x23e854);
    pcVar38 = pcVar40;
    if (uVar14 == 0xffffffff) goto LAB_002833f8;
  }
  else {
    uVar14 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37);
  }
  iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc);
  uVar20 = 0x44e;
  if (iVar27 == 0) goto LAB_002833c4;
  pOVar17 = *(Output_file **)(iVar27 + 0x3c);
  iVar27 = *(int *)(pcVar40 + -0x7924);
  pcVar38 = pcVar40;
  if (*(int *)&pOVar17[1].file_size_ << 2 < 0) {
    iStack_d8 = pOVar17[1].o_;
    pOVar28 = (Output_file *)pOVar17[1].name_;
    if (*(int *)&pOVar17[1].file_size_ << 1 < 0) {
      pOVar15 = *(Output_file **)&pOVar17->map_is_anonymous_;
      if (-1 < (int)pOVar28) {
        pOVar17 = *(Output_file **)&pOStack_80->file_size_;
        pOVar29 = (Output_file *)((int)&pOVar15->name_ + iStack_d8);
        pOVar15 = (Output_file *)((int)&pOVar28->name_ + (uint)(pOVar29 < pOVar15));
        pOVar28 = (Output_file *)(uint)((int)pOVar17 < (int)pOVar15);
        if (pOVar28 == (Output_file *)0x0) {
          if (pOVar17 == pOVar15) goto LAB_00283410;
LAB_002831b0:
          puVar31 = pOStack_80->base_;
          pOVar17 = (Output_file *)0x0;
          if (pOVar26 == (Output_file *)0x0) {
            return;
          }
          do {
            uVar33 = puVar18[3];
            uVar34 = puVar18[2];
            uVar4 = piVar3[0x2e];
            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +
                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;
            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +
                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;
            if (uVar4 <= uVar33) {
              uVar32 = *puVar18;
              uVar30 = puVar18[1];
              pOStack_80 = (Output_file *)
                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +
                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);
              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +
                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;
              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))
              {
                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;
                pOVar29 = pOStack_80;
                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))
                                            (pcVar37,*(undefined4 *)(iVar2 + 8),
                                             *(undefined4 *)(iVar2 + 0x18));
                pcVar40 = pcVar38;
                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;
                uVar4 = piVar3[0x2e];
                puVar8 = puVar9 + (int)pOStack_80;
                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;
              }
              else {
                puVar8 = puStack_84 + (int)pOStack_80;
                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;
                pcVar40 = pcVar38;
              }
              pOVar29 = (Output_file *)puVar18[5];
              uVar33 = uVar33 - uVar4;
              uStack_e0 = puVar18[4];
              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);
              if (piVar3[0x16] == 0) goto LAB_002833b8;
              iVar27 = piVar3[0x17];
              uVar20 = 0x604;
              if (iVar27 == 0) goto LAB_002833a0;
              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {
                uVar20 = 0x605;
LAB_002833a0:
                do {
                  (**(code **)(pcVar40 + -0x7810))
                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,
                             *(int *)(pcVar40 + -0x7924) + -0x684);
LAB_002833b8:
                  uVar20 = 0x603;
                } while( true );
              }
              iVar7 = uVar33 * 4;
              piVar6 = (int *)(piVar3[0x16] + iVar7);
              iVar16 = *piVar6;
              *piVar6 = iVar16 + 1;
              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);
              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +
                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;
              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +
                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;
              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10
                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;
              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +
                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;
              piVar6[5] = (int)pOVar29;
              piVar6[4] = uStack_e0;
              pcVar38 = pcVar40;
              pOStack_dc = pOVar29;
            }
            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);
            puVar18 = puVar18 + 6;
            if (pOVar26 == pOVar17) {
              return;
            }
          } while( true );
        }
      }
LAB_00283420:
      Output_file::get_output_view
                (pOVar15,CONCAT44(pcVar38,in_stack_ffffff1c),(size_t)pOVar17,pOVar28);
    }
    iVar27 = *(int *)(pcVar40 + -0x7924) + -0x500;
    (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf);
  }
  iVar2 = 0xe3;
  pcVar37 = *(code **)(pcVar40 + -0x7810);
  pOVar17 = (Output_file *)(iVar27 + -0x4f4);
  piVar3 = (int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);
  (*pcVar37)();
  pcVar40 = pcVar37 + 0x245ddc;
  pOVar26 = pOVar29;
  if (*(code **)(*(int *)pcVar38 + 0x2c) == *(code **)(pcVar37 + 0x23ed38)) {
    iStack_128 = *(int *)(pcVar38 + 100);
    pOVar28 = *(Output_file **)(pcVar37 + 0x23e4b8);
    pcVar37 = pcVar40;
    if (iStack_128 == -1) goto LAB_00283750;
  }
  else {
    pOVar28 = pOVar17;
    iStack_128 = (**(code **)(*(int *)pcVar38 + 0x2c))(pcVar38);
  }
  iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc);
  uVar20 = 0x44e;
  if (iVar27 == 0) goto LAB_0028371c;
  iVar27 = *(int *)(iVar27 + 0x3c);
  pcVar37 = pcVar40;
  if (*(int *)(iVar27 + 0x20) << 2 < 0) {
    sStack_130 = *(size_t *)(iVar27 + 0x1c);
    pOVar15 = *(Output_file **)(iVar27 + 0x18);
    if (*(int *)(iVar27 + 0x20) << 1 < 0) {
      sVar21 = sStack_130;
      if (-1 < (int)pOVar15) {
        sVar21 = *(uint *)(iVar27 + 0x14) + sStack_130;
        iVar27 = (int)&pOVar15->name_ + (uint)(sVar21 < *(uint *)(iVar27 + 0x14));
        pOVar15 = (Output_file *)(uint)(*(int *)(iStack_d8 + 8) < iVar27);
        if (pOVar15 == (Output_file *)0x0) {
          if (*(int *)(iStack_d8 + 8) == iVar27) goto LAB_00283768;
LAB_00283554:
          uStack_12c = *(uint *)(iStack_d8 + 0x10);
          pOVar28 = (Output_file *)0x0;
          if (pOVar29 == (Output_file *)0x0) {
            return;
          }
          do {
            pOVar15 = *(Output_file **)&pOVar17->file_size_;
            pOVar26 = (Output_file *)piVar3[0x2e];
            iStack_d8 = (int)pOVar17->file_size_;
            if (pOVar26 <= pOVar15) {
              pcVar23 = pOVar17->name_;
              pOVar35 = (Output_file *)pOVar17->o_;
              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {
                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;
                pOVar26 = pOVar35;
                pOVar11 = (Output_file *)
                          (**(code **)(pcVar40 + -0x767c))
                                    (pcVar38,*(undefined4 *)(iVar2 + 8),
                                     *(undefined4 *)(iVar2 + 0x18));
                pcVar40 = pcVar37;
                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;
                pOVar26 = (Output_file *)piVar3[0x2e];
                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);
                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);
              }
              else {
                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);
                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;
                pcVar40 = pcVar37;
              }
              uVar14 = (int)pOVar15 - (int)pOVar26;
              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);
              if (piVar3[0x16] == 0) goto LAB_00283710;
              iVar16 = piVar3[0x17];
              uVar20 = 0x604;
              if (iVar16 == 0) goto LAB_002836f8;
              iVar7 = uVar14 * 4;
              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {
                uVar20 = 0x605;
LAB_002836f8:
                do {
                  (**(code **)(pcVar40 + -0x7810))
                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,
                             *(int *)(pcVar40 + -0x7924) + -0x684);
LAB_00283710:
                  uVar20 = 0x603;
                } while( true );
              }
              piVar6 = (int *)(piVar3[0x16] + iVar7);
              iVar10 = *piVar6;
              *piVar6 = iVar10 + 1;
              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)
              ;
              piVar6[5] = 0;
              piVar6[4] = 0;
              *piVar6 = iStack_d8;
              piVar6[1] = iStack_128;
              piVar6[2] = (int)(pcVar23 + iVar27);
              piVar6[3] = (int)pOVar35;
              pcVar37 = pcVar40;
            }
            pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1);
            pOVar17 = (Output_file *)&pOVar17->base_;
            if (pOVar29 == pOVar28) {
              return;
            }
          } while( true );
        }
      }
LAB_00283778:
      Output_file::get_output_view(pOVar15,CONCAT44(pcVar37,in_stack_fffffecc),sVar21,pOVar28);
    }
    (**(code **)(pcVar40 + -0x7810))
              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);
  }
  iVar2 = 0xe3;
  pcVar38 = *(code **)(pcVar40 + -0x7810);
  pOVar29 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x4f4);
  piVar3 = (int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);
  (*pcVar38)();
  pcVar40 = pcVar38 + 0x245a80;
  if (*(code **)(*(int *)pcVar37 + 0x2c) == *(code **)(pcVar38 + 0x23e9dc)) {
    iStack_178 = *(int *)(pcVar37 + 100);
    pOVar17 = *(Output_file **)(pcVar38 + 0x23e15c);
    pcVar38 = pcVar40;
    if (iStack_178 == -1) goto LAB_00283ab8;
  }
  else {
    pOVar17 = pOVar29;
    iStack_178 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37);
  }
  iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc);
  uVar20 = 0x44e;
  if (iVar27 == 0) goto LAB_00283a84;
  pOVar28 = *(Output_file **)(iVar27 + 0x3c);
  if (*(int *)&pOVar28[1].file_size_ << 2 < 0) {
    iStack_180 = pOVar28[1].o_;
    pcVar23 = pOVar28[1].name_;
    if (*(int *)&pOVar28[1].file_size_ << 1 < 0) {
      pbVar41 = &pOVar28->map_is_anonymous_;
      pcVar38 = pcVar40;
      if (-1 < (int)pcVar23) {
        pOVar28 = *(Output_file **)(iStack_128 + 8);
        pOVar17 = (Output_file *)((int)&(*(Output_file **)pbVar41)->name_ + iStack_180);
        pOVar15 = (Output_file *)(pcVar23 + (pOVar17 < *(Output_file **)pbVar41));
        pcVar23 = (char *)(uint)((int)pOVar28 < (int)pOVar15);
        if (pcVar23 == (char *)0x0) {
          if (pOVar28 == pOVar15) goto LAB_00283ad0;
LAB_002838ac:
          iVar27 = *(int *)(iStack_128 + 0x10);
          pOVar17 = (Output_file *)0x0;
          if (pOVar26 == (Output_file *)0x0) {
            return;
          }
          do {
            uVar33 = *(uint *)&pOVar29->file_size_;
            uVar14 = piVar3[0x2e];
            iStack_128 = (int)pOVar29->file_size_;
            if (uVar14 <= uVar33) {
              pcVar23 = pOVar29->name_;
              iVar16 = pOVar29->o_;
              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {
                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;
                uVar4 = (**(code **)(pcVar40 + -0x767c))
                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),
                                   iVar16);
                pcVar40 = pcVar38;
                if (uVar4 == 0xffffffff) goto LAB_00283a80;
                uVar14 = piVar3[0x2e];
                uVar34 = uVar4 + iVar16;
                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);
              }
              else {
                uVar34 = uStack_12c + iVar16;
                iVar16 = (uVar34 < uStack_12c) + sStack_130;
                pcVar40 = pcVar38;
              }
              iVar7 = *(int *)&pOVar29->map_is_anonymous_;
              uVar33 = uVar33 - uVar14;
              puVar31 = pOVar29->base_;
              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);
              if (piVar3[0x16] == 0) goto LAB_00283a78;
              iVar10 = piVar3[0x17];
              uVar20 = 0x604;
              if (iVar10 == 0) goto LAB_00283a60;
              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {
                uVar20 = 0x605;
LAB_00283a60:
                do {
                  (**(code **)(pcVar40 + -0x7810))
                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,
                             *(int *)(pcVar40 + -0x7924) + -0x684);
LAB_00283a78:
                  uVar20 = 0x603;
                } while( true );
              }
              iVar24 = uVar33 * 4;
              piVar6 = (int *)(piVar3[0x16] + iVar24);
              iVar12 = *piVar6;
              *piVar6 = iVar12 + 1;
              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);
              *piVar6 = iStack_128;
              piVar6[1] = iStack_178;
              piVar6[2] = (int)(pcVar23 + iVar16);
              piVar6[3] = uVar34;
              piVar6[5] = iVar7;
              piVar6[4] = (int)puVar31;
              pcVar38 = pcVar40;
            }
            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);
            pOVar29 = pOVar29 + 1;
            if (pOVar26 == pOVar17) {
              return;
            }
          } while( true );
        }
      }
LAB_00283ae0:
      Output_file::get_output_view
                (pOVar28,CONCAT44(pcVar38,in_stack_fffffe74),(size_t)pcVar23,pOVar17);
    }
    (**(code **)(pcVar40 + -0x7810))
              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);
  }
  pcVar37 = *(code **)(pcVar40 + -0x7810);
  puVar19 = (undefined4 *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);
  (*pcVar37)(puVar19,0xe3,*(int *)(pcVar40 + -0x7924) + -0x4f4);
  piVar3 = (int *)puVar19[2];
  while (piVar3 != (int *)0x0) {
    piVar3 = (int *)*piVar3;
    (**(code **)(pcVar37 + 0x23d7d4))();
  }
  (**(code **)(pcVar37 + 0x242140))(*puVar19,0,puVar19[1] << 2);
  puVar19[3] = 0;
  puVar19[2] = 0;
  return;
LAB_00282cac:
  uVar20 = 0x46d;
  pbVar39 = pbVar41;
LAB_00282cb0:
  puVar25 = (undefined *)(*(int *)(pbVar39 + -0x7924) + -0x7a4);
  pbVar41 = pbVar39;
  (**(code **)(pbVar39 + -0x7810))(*(int *)(pbVar39 + -0x7924) + -0xe14,uVar20);
LAB_00282cc8:
  sVar21 = 0x1043;
  pOVar26 = (Output_file *)(puVar25 + -0x664);
  pOVar17 = (Output_file *)(*(int *)(pbVar39 + -0x7fc4) + 0x3574);
  (**(code **)(pbVar39 + -0x7810))();
LAB_00282ce0:
  sVar21 = (size_t)((uint)of->file_size_ < sVar21);
  if (sVar21 != 0) goto LAB_00282cf0;
  goto LAB_00282b34;
LAB_00283020:
  uVar20 = 0x46d;
LAB_00283024:
  pcVar37 = pcVar40;
  (**(code **)(pcVar40 + -0x7810))
            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x87c);
LAB_0028303c:
  iVar27 = *(int *)(pcVar40 + -0x7924) + -0x88c;
  (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0);
LAB_00283058:
  pcVar23 = (char *)0x1043;
  pOVar28 = (Output_file *)(iVar27 - 0x664);
  pOVar17 = (Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);
  uVar14 = (**(code **)(pcVar40 + -0x7810))();
LAB_00283070:
  pOVar28 = (Output_file *)(uint)(*(Output_file **)((int)&local_30->file_size_ + 4) < pOVar28);
  if (pOVar28 != (Output_file *)0x0) goto LAB_00283080;
  goto LAB_00282e20;
LAB_002833c0:
  uVar20 = 0x46d;
LAB_002833c4:
  pcVar38 = pcVar40;
  (**(code **)(pcVar40 + -0x7810))
            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x8b0);
LAB_002833dc:
  iVar27 = *(int *)(pcVar40 + -0x7924) + -0x88c;
  (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0);
LAB_002833f8:
  pOVar17 = (Output_file *)0x1043;
  pOVar28 = (Output_file *)(iVar27 - 0x664);
  uVar14 = (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x3574);
LAB_00283410:
  pOVar15 = *(Output_file **)((int)&pOStack_80->file_size_ + 4);
  pOVar29 = (Output_file *)(uint)(pOVar15 < pOVar29);
  if (pOVar29 != (Output_file *)0x0) goto LAB_00283420;
  goto LAB_002831b0;
LAB_00283718:
  uVar20 = 0x46d;
LAB_0028371c:
  pcVar37 = pcVar40;
  (**(code **)(pcVar40 + -0x7810))
            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x988);
LAB_00283734:
  pOVar28 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x88c);
  (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0);
LAB_00283750:
  sVar21 = 0x1043;
  pOVar28 = (Output_file *)&pOVar28[-0x45].map_is_anonymous_;
  pOVar15 = (Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);
  (**(code **)(pcVar40 + -0x7810))();
LAB_00283768:
  sVar21 = (size_t)(*(uint *)(iStack_d8 + 0xc) < sVar21);
  if (sVar21 != 0) goto LAB_00283778;
  goto LAB_00283554;
LAB_00283a80:
  uVar20 = 0x46d;
LAB_00283a84:
  pcVar38 = pcVar40;
  (**(code **)(pcVar40 + -0x7810))
            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x9ac);
LAB_00283a9c:
  pOVar17 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x88c);
  (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0);
LAB_00283ab8:
  pcVar23 = (char *)0x1043;
  pOVar17 = (Output_file *)&pOVar17[-0x45].map_is_anonymous_;
  pOVar28 = (Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);
  (**(code **)(pcVar40 + -0x7810))();
LAB_00283ad0:
  pOVar17 = (Output_file *)(uint)(*(Output_file **)(iStack_128 + 0xc) < pOVar17);
  if (pOVar17 != (Output_file *)0x0) goto LAB_00283ae0;
  goto LAB_002838ac;
}



/* void gold::Sized_relobj_file<32,
   true>::incremental_relocs_write_reltype<4>(gold::Relocate_info<32, true> const*, unsigned char
   const*, unsigned int, gold::Output_section*, unsigned int, gold::Output_file*) */

void __thiscall
gold::Sized_relobj_file<32,true>::incremental_relocs_write_reltype<4>
          (Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,
          Output_section *param_4,uint param_5,Output_file *param_6)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  uint *puVar4;
  uint uVar5;
  int iVar6;
  uint uVar7;
  undefined4 uVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  int iVar12;
  uint uVar13;
  uint uVar14;
  uint local_30;
  
  if (*(code **)(*(int *)param_4 + 0x2c) == (code *)PTR_do_out_shndx_004c219c) {
    local_30 = *(uint *)(param_4 + 100);
    if (local_30 == 0xffffffff) {
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,
                 PTR_s_in_a_linker_script_004c191c + -0x664);
      return;
    }
  }
  else {
    local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);
  }
  uVar8 = 0x44e;
  if (*(int *)(*(int *)(param_1 + 4) + 0x1dc) == 0) {
LAB_00282cb0:
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,
               PTR_s_in_a_linker_script_004c191c + -0x7a4);
    return;
  }
  iVar6 = *(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c);
  if (-1 < *(int *)(iVar6 + 0x20) << 2) {
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,
               PTR_s_in_a_linker_script_004c191c + -0x4f4);
    return;
  }
  iVar9 = *(int *)(iVar6 + 0x1c);
  if (*(int *)(iVar6 + 0x20) << 1 < 0) {
    if (-1 < *(int *)(iVar6 + 0x18)) {
      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;
      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);
      if ((iVar6 <= *(int *)(param_6 + 8)) &&
         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {
        iVar6 = *(int *)(param_6 + 0x10);
        uVar10 = 0;
        if (param_3 != 0) {
          do {
            uVar14 = *(uint *)((int)param_2 + 4);
            uVar7 = *(uint *)(this + 0xb8);
            uVar13 = uVar14 >> 8;
            if (uVar7 <= uVar13) {
              iVar12 = *(int *)param_2;
              uVar5 = param_5;
              if (param_5 == 0xffffffff) {
                uVar5 = (*(code *)PTR_output_offset_004c1bc4)
                                  (param_4,*(undefined4 *)(param_1 + 8),
                                   *(undefined4 *)(param_1 + 0x18),iVar12);
                if (uVar5 == 0xffffffff) {
                  uVar8 = 0x46d;
                  goto LAB_00282cb0;
                }
                uVar7 = *(uint *)(this + 0xb8);
              }
              uVar13 = uVar13 - uVar7;
              uVar7 = *(uint *)((int)param_2 + 8);
              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);
              if (*(int *)(this + 0x58) == 0) {
                uVar8 = 0x603;
LAB_00282c84:
                (*(code *)PTR_do_gold_unreachable_004c1a30)
                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,
                           PTR_s_in_a_linker_script_004c191c + -0x684);
                return;
              }
              iVar11 = *(int *)(this + 0x5c);
              if (iVar11 == 0) {
                uVar8 = 0x604;
                goto LAB_00282c84;
              }
              iVar2 = uVar13 * 4;
              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {
                uVar8 = 0x605;
                goto LAB_00282c84;
              }
              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);
              iVar3 = *piVar1;
              *piVar1 = iVar3 + 1;
              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);
              *puVar4 = uVar14 & 0xff;
              puVar4[1] = local_30;
              puVar4[2] = uVar5 + iVar12;
              puVar4[3] = uVar7;
            }
            uVar10 = uVar10 + 1;
            param_2 = (uchar *)((int)param_2 + 0xc);
          } while (param_3 != uVar10);
        }
        return;
      }
    }
    FUN_0027c51c();
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,
             PTR_s_in_a_linker_script_004c191c + -0x500);
  return;
}


lui gp,0x24
addiu gp,gp,0x67f8
addu gp,gp,t9
addiu sp,sp,-0x50
lw v0,-0x70a4(gp)
lw v1,0x60(sp)
sw gp,0x10(sp)
sw s7,0x44(sp)
or s7,a0,zero
sw s6,0x40(sp)
or s6,a2,zero
lw v1,0x0(v1)
sw s3,0x34(sp)
or s3,a3,zero
sw s1,0x2c(sp)
sw s0,0x28(sp)
sw ra,0x4c(sp)
sw s8,0x48(sp)
sw s5,0x3c(sp)
sw s4,0x38(sp)
sw s2,0x30(sp)
sw a1,0x54(sp)
lw t9,0x2c(v1)
lw s1,0x64(sp)
bne t9,v0,0x00282c6c
_lw s0,0x68(sp)
lw v0,0x60(sp)
lw v0,0x64(v0)
or v1,v0,zero
sw v0,0x20(sp)
li v0,-0x1
beq v1,v0,0x00282cc8
_lw a2,-0x7924(gp)
lw v0,0x54(sp)
lw v0,0x4(v0)
lw v0,0x1dc(v0)
beq v0,zero,0x00282cb0
_li a1,0x44e
lw v1,0x3c(v0)
lw v0,0x20(v1)
ext a0,v0,0x1d,0x1
beq a0,zero,0x00282d1c
_ext v0,v0,0x1e,0x1
lw a1,0x1c(v1)
lw a0,0x18(v1)
beq v0,zero,0x00282d00
_sw a1,0x18(sp)
bltz a0,0x00282cf0
_lw v0,0x14(v1)
lw v1,0x18(sp)
addu a1,v0,v1
lw v1,0x8(s0)
sltu v0,a1,v0
addu v0,v0,a0
slt a0,v1,v0
bne a0,zero,0x00282cf0
_nop
beq v1,v0,0x00282ce0
_nop
lw v0,0x10(s0)
or s8,zero,zero
bne s3,zero,0x00282bec
_sw v0,0x1c(sp)
b 0x00282c40
_lw ra,0x4c(sp)
addu s0,s1,s0
lw v0,0x0(s7)
or a0,s7,zero
subu s4,s4,v1
lw t9,0x74(v0)
jalr t9
_lw s2,0x8(s6)
lw v1,0x4(v0)
lw v0,0x0(v0)
lw a0,0x58(s7)
lw gp,0x10(sp)
subu v1,v1,v0
beq a0,zero,0x00282ca4
_sra v1,v1,0x2
lw a1,0x5c(s7)
beq a1,zero,0x00282c9c
_sltu v1,s4,v1
beq v1,zero,0x00282c80
_sll v0,s4,0x2
andi t3,s5,0xff
addu a0,a0,v0
addu a1,a1,v0
lw v0,0x0(a0)
addiu v1,v0,0x1
sw v1,0x0(a0)
lw v1,0x0(a1)
addu v0,v0,v1
lw v1,0x18(sp)
sll v0,v0,0x4
addu v0,v0,v1
lw v1,0x1c(sp)
addu v0,v1,v0
lw v1,0x20(sp)
sw t3,0x0(v0)
sw v1,0x4(v0)
sw s0,0x8(v0)
sw s2,0xc(v0)
addiu s8,s8,0x1
beq s3,s8,0x00282c3c
_addiu s6,s6,0xc
lw s5,0x4(s6)
lw v1,0xb8(s7)
srl s4,s5,0x8
sltu v0,s4,v1
bne v0,zero,0x00282be0
_li v0,-0x1
bne s1,v0,0x00282b4c
_lw s0,0x0(s6)
lw v0,0x54(sp)
or a3,s0,zero
lw t9,-0x767c(gp)
lw a0,0x60(sp)
lw a2,0x18(v0)
jalr t9
_lw a1,0x8(v0)
beq v0,s1,0x00282cac
_lw gp,0x10(sp)
lw v1,0xb8(s7)
b 0x00282b50
_addu s0,v0,s0
lw ra,0x4c(sp)
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x50
jalr t9
_lw a0,0x60(sp)
lw gp,0x10(sp)
b 0x00282acc
_sw v0,0x20(sp)
li a1,0x605
lw a2,-0x7924(gp)
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x684
jalr t9
_addiu a0,a0,0x4570
b 0x00282c84
_li a1,0x604
b 0x00282c84
_li a1,0x603
li a1,0x46d
lw a2,-0x7924(gp)
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x7a4
jalr t9
_addiu a0,a0,-0xe14
li a1,0x1043
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x664
jalr t9
_addiu a0,a0,0x3574
lw v0,0xc(s0)
sltu a1,v0,a1
beq a1,zero,0x00282b34
_nop
lw t9,-0x4d14(gp)
addiu t9,t9,-0x3ae4
bal 0x0027c51c
_nop
lw a2,-0x7924(gp)
li a1,0xcf
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x500
jalr t9
_addiu a0,a0,0x3574
lw a2,-0x7924(gp)
li a1,0xe3
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x4f4
jalr t9
_addiu a0,a0,0x3574
(translation_unit "/* void gold::Sized_relobj_file<32,\n   true>::incremental_relocs_write_reltype<4>(gold::Relocate_info<32, true> const*, unsigned char\n   const*, unsigned int, gold::Output_section*, unsigned int, gold::Output_file*) */\n\nvoid __thiscall\ngold::Sized_relobj_file<32,true>::incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint local_30;\n  \n  if (*(code **)(*(int *)param_4 + 0x2c) == (code *)PTR_do_out_shndx_004c219c) {\n    local_30 = *(uint *)(param_4 + 100);\n    if (local_30 == 0xffffffff) {\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 + -0x664);\n      return;\n    }\n  }\n  else {\n    local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);\n  }\n  uVar8 = 0x44e;\n  if (*(int *)(*(int *)(param_1 + 4) + 0x1dc) == 0) {\nLAB_00282cb0:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);\n    return;\n  }\n  iVar6 = *(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c);\n  if (-1 < *(int *)(iVar6 + 0x20) << 2) {\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 + -0x4f4);\n    return;\n  }\n  iVar9 = *(int *)(iVar6 + 0x1c);\n  if (*(int *)(iVar6 + 0x20) << 1 < 0) {\n    if (-1 < *(int *)(iVar6 + 0x18)) {\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }\n    FUN_0027c51c();\n  }\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 + -0x500);\n  return;\n}\n\n" comment (declaration "void __thiscall\ngold::Sized_relobj_file<32,true>::incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)\n\n{\n  int *piVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "true>::incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)\n\n{\n  int" identifier > : : (function_declarator "incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)" identifier (ERROR "<4>" < number_literal >) (parameter_list "(Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)" ( (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relocate_info *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uchar *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "Output_section *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "Output_file *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) { primitive_type) (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (if_statement "if (*(code **)(*(int *)param_4 + 0x2c) == (code *)PTR_do_out_shndx_004c219c) {\n    local_30 = *(uint *)(param_4 + 100);\n    if (local_30 == 0xffffffff) {\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 + -0x664);\n      return;\n    }\n  }\n  else {\n    local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);\n  }" if (parenthesized_expression "(*(code **)(*(int *)param_4 + 0x2c) == (code *)PTR_do_out_shndx_004c219c)" ( (binary_expression "*(code **)(*(int *)param_4 + 0x2c) == (code *)PTR_do_out_shndx_004c219c" (pointer_expression "*(code **)(*(int *)param_4 + 0x2c)" * (cast_expression "(code **)(*(int *)param_4 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_4 + 0x2c)" ( (binary_expression "*(int *)param_4 + 0x2c" (pointer_expression "*(int *)param_4" * (cast_expression "(int *)param_4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (cast_expression "(code *)PTR_do_out_shndx_004c219c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    local_30 = *(uint *)(param_4 + 100);\n    if (local_30 == 0xffffffff) {\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 + -0x664);\n      return;\n    }\n  }" { (expression_statement "local_30 = *(uint *)(param_4 + 100);" (assignment_expression "local_30 = *(uint *)(param_4 + 100)" identifier = (pointer_expression "*(uint *)(param_4 + 100)" * (cast_expression "(uint *)(param_4 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 100)" ( (binary_expression "param_4 + 100" identifier + number_literal) ))))) ;) (if_statement "if (local_30 == 0xffffffff) {\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 + -0x664);\n      return;\n    }" if (parenthesized_expression "(local_30 == 0xffffffff)" ( (binary_expression "local_30 == 0xffffffff" 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 + -0x664);\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 + -0x664);" (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 + -0x664)" (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 + -0x664)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x664" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);\n  }" else (compound_statement "{\n    local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);\n  }" { (expression_statement "local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);" (assignment_expression "local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4)" identifier = (call_expression "(**(code **)(*(int *)param_4 + 0x2c))(param_4)" (parenthesized_expression "(**(code **)(*(int *)param_4 + 0x2c))" ( (pointer_expression "**(code **)(*(int *)param_4 + 0x2c)" * (pointer_expression "*(code **)(*(int *)param_4 + 0x2c)" * (cast_expression "(code **)(*(int *)param_4 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_4 + 0x2c)" ( (binary_expression "*(int *)param_4 + 0x2c" (pointer_expression "*(int *)param_4" * (cast_expression "(int *)param_4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(param_4)" ( identifier )))) ;) }))) (expression_statement "uVar8 = 0x44e;" (assignment_expression "uVar8 = 0x44e" identifier = number_literal) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 4) + 0x1dc) == 0) {\nLAB_00282cb0:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);\n    return;\n  }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 4) + 0x1dc) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 4) + 0x1dc) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 0x1dc)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + 0x1dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0x1dc)" ( (binary_expression "*(int *)(param_1 + 4) + 0x1dc" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00282cb0:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);\n    return;\n  }" { (labeled_statement "LAB_00282cb0:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4)" (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 + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0xe14" identifier + number_literal) , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x7a4" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c);" (assignment_expression "iVar6 = *(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c)" * (cast_expression "(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c)" ( (binary_expression "*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c" (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 0x1dc)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + 0x1dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0x1dc)" ( (binary_expression "*(int *)(param_1 + 4) + 0x1dc" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (-1 < *(int *)(iVar6 + 0x20) << 2) {\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 + -0x4f4);\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar6 + 0x20) << 2)" ( (binary_expression "-1 < *(int *)(iVar6 + 0x20) << 2" number_literal < (binary_expression "*(int *)(iVar6 + 0x20) << 2" (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\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 + -0x4f4);\n    return;\n  }" { (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 + -0x4f4);" (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 + -0x4f4)" (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 + -0x4f4)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x4f4" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar9 = *(int *)(iVar6 + 0x1c);" (assignment_expression "iVar9 = *(int *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar6 + 0x1c)" * (cast_expression "(int *)(iVar6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar6 + 0x20) << 1 < 0) {\n    if (-1 < *(int *)(iVar6 + 0x18)) {\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }\n    FUN_0027c51c();\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x20) << 1 < 0)" ( (binary_expression "*(int *)(iVar6 + 0x20) << 1 < 0" (binary_expression "*(int *)(iVar6 + 0x20) << 1" (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n    if (-1 < *(int *)(iVar6 + 0x18)) {\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }\n    FUN_0027c51c();\n  }" { (if_statement "if (-1 < *(int *)(iVar6 + 0x18)) {\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }" if (parenthesized_expression "(-1 < *(int *)(iVar6 + 0x18))" ( (binary_expression "-1 < *(int *)(iVar6 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }" { (expression_statement "uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;" (assignment_expression "uVar10 = *(uint *)(iVar6 + 0x14) + iVar9" identifier = (binary_expression "*(uint *)(iVar6 + 0x14) + iVar9" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) + identifier)) ;) (expression_statement "iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);" (assignment_expression "iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18)" identifier = (binary_expression "(uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18)" (call_expression "(uint)(uVar10 < *(uint *)(iVar6 + 0x14))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < *(uint *)(iVar6 + 0x14))" ( (binary_expression "uVar10 < *(uint *)(iVar6 + 0x14)" identifier < (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }" if (parenthesized_expression "((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc)))))" ( (binary_expression "(iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))" (parenthesized_expression "(iVar6 <= *(int *)(param_6 + 8))" ( (binary_expression "iVar6 <= *(int *)(param_6 + 8)" identifier <= (pointer_expression "*(int *)(param_6 + 8)" * (cast_expression "(int *)(param_6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 8)" ( (binary_expression "param_6 + 8" identifier + number_literal) ))))) )) && (parenthesized_expression "((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))" ( (parenthesized_expression "(*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc)))" ( (binary_expression "*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))" (binary_expression "*(int *)(param_6 + 8) != iVar6" (pointer_expression "*(int *)(param_6 + 8)" * (cast_expression "(int *)(param_6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 8)" ( (binary_expression "param_6 + 8" identifier + number_literal) )))) != identifier) || (parenthesized_expression "(uVar10 <= *(uint *)(param_6 + 0xc))" ( (binary_expression "uVar10 <= *(uint *)(param_6 + 0xc)" identifier <= (pointer_expression "*(uint *)(param_6 + 0xc)" * (cast_expression "(uint *)(param_6 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0xc)" ( (binary_expression "param_6 + 0xc" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }" { (expression_statement "iVar6 = *(int *)(param_6 + 0x10);" (assignment_expression "iVar6 = *(int *)(param_6 + 0x10)" identifier = (pointer_expression "*(int *)(param_6 + 0x10)" * (cast_expression "(int *)(param_6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }" { (do_statement "do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);" do (compound_statement "{\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          }" { (expression_statement "uVar14 = *(uint *)((int)param_2 + 4);" (assignment_expression "uVar14 = *(uint *)((int)param_2 + 4)" identifier = (pointer_expression "*(uint *)((int)param_2 + 4)" * (cast_expression "(uint *)((int)param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 4)" ( (binary_expression "(int)param_2 + 4" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(this + 0xb8);" (assignment_expression "uVar7 = *(uint *)(this + 0xb8)" identifier = (pointer_expression "*(uint *)(this + 0xb8)" * (cast_expression "(uint *)(this + 0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xb8)" ( (binary_expression "this + 0xb8" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = uVar14 >> 8;" (assignment_expression "uVar13 = uVar14 >> 8" identifier = (binary_expression "uVar14 >> 8" identifier >> number_literal)) ;) (if_statement "if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }" if (parenthesized_expression "(uVar7 <= uVar13)" ( (binary_expression "uVar7 <= uVar13" identifier <= identifier) )) (compound_statement "{\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }" { (expression_statement "iVar12 = *(int *)param_2;" (assignment_expression "iVar12 = *(int *)param_2" identifier = (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = param_5;" (assignment_expression "uVar5 = param_5" identifier = identifier) ;) (if_statement "if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }" if (parenthesized_expression "(param_5 == 0xffffffff)" ( (binary_expression "param_5 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }" { (expression_statement "uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);" (assignment_expression "uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12)" identifier = (call_expression "(*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12)" (parenthesized_expression "(*(code *)PTR_output_offset_004c1bc4)" ( (pointer_expression "*(code *)PTR_output_offset_004c1bc4" * (cast_expression "(code *)PTR_output_offset_004c1bc4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12)" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }" if (parenthesized_expression "(uVar5 == 0xffffffff)" ( (binary_expression "uVar5 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }" { (expression_statement "uVar8 = 0x46d;" (assignment_expression "uVar8 = 0x46d" identifier = number_literal) ;) (goto_statement "goto LAB_00282cb0;" goto statement_identifier ;) })) (expression_statement "uVar7 = *(uint *)(this + 0xb8);" (assignment_expression "uVar7 = *(uint *)(this + 0xb8)" identifier = (pointer_expression "*(uint *)(this + 0xb8)" * (cast_expression "(uint *)(this + 0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xb8)" ( (binary_expression "this + 0xb8" identifier + number_literal) ))))) ;) })) (expression_statement "uVar13 = uVar13 - uVar7;" (assignment_expression "uVar13 = uVar13 - uVar7" identifier = (binary_expression "uVar13 - uVar7" identifier - identifier)) ;) (expression_statement "uVar7 = *(uint *)((int)param_2 + 8);" (assignment_expression "uVar7 = *(uint *)((int)param_2 + 8)" identifier = (pointer_expression "*(uint *)((int)param_2 + 8)" * (cast_expression "(uint *)((int)param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 8)" ( (binary_expression "(int)param_2 + 8" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);" (assignment_expression "piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this)" identifier = (cast_expression "(int *)(**(code **)(*(int *)this + 0x74))(this)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)this + 0x74))(this)" (parenthesized_expression "(**(code **)(*(int *)this + 0x74))" ( (pointer_expression "**(code **)(*(int *)this + 0x74)" * (pointer_expression "*(code **)(*(int *)this + 0x74)" * (cast_expression "(code **)(*(int *)this + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)this + 0x74)" ( (binary_expression "*(int *)this + 0x74" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(this)" ( identifier ))))) ;) (if_statement "if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }" if (parenthesized_expression "(*(int *)(this + 0x58) == 0)" ( (binary_expression "*(int *)(this + 0x58) == 0" (pointer_expression "*(int *)(this + 0x58)" * (cast_expression "(int *)(this + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x58)" ( (binary_expression "this + 0x58" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }" { (expression_statement "uVar8 = 0x603;" (assignment_expression "uVar8 = 0x603" identifier = number_literal) ;) (labeled_statement "LAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684)" (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,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x684" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (expression_statement "iVar11 = *(int *)(this + 0x5c);" (assignment_expression "iVar11 = *(int *)(this + 0x5c)" identifier = (pointer_expression "*(int *)(this + 0x5c)" * (cast_expression "(int *)(this + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x5c)" ( (binary_expression "this + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }" { (expression_statement "uVar8 = 0x604;" (assignment_expression "uVar8 = 0x604" identifier = number_literal) ;) (goto_statement "goto LAB_00282c84;" goto statement_identifier ;) })) (expression_statement "iVar2 = uVar13 * 4;" (assignment_expression "iVar2 = uVar13 * 4" identifier = (binary_expression "uVar13 * 4" identifier * number_literal)) ;) (if_statement "if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }" if (parenthesized_expression "((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13)" ( (binary_expression "(uint)(piVar1[1] - *piVar1 >> 2) <= uVar13" (call_expression "(uint)(piVar1[1] - *piVar1 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar1[1] - *piVar1 >> 2)" ( (binary_expression "piVar1[1] - *piVar1 >> 2" (binary_expression "piVar1[1] - *piVar1" (subscript_expression "piVar1[1]" identifier [ number_literal ]) - (pointer_expression "*piVar1" * identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }" { (expression_statement "uVar8 = 0x605;" (assignment_expression "uVar8 = 0x605" identifier = number_literal) ;) (goto_statement "goto LAB_00282c84;" goto statement_identifier ;) })) (expression_statement "piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);" (assignment_expression "piVar1 = (int *)(*(int *)(this + 0x58) + iVar2)" identifier = (cast_expression "(int *)(*(int *)(this + 0x58) + iVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 0x58) + iVar2)" ( (binary_expression "*(int *)(this + 0x58) + iVar2" (pointer_expression "*(int *)(this + 0x58)" * (cast_expression "(int *)(this + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x58)" ( (binary_expression "this + 0x58" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "iVar3 = *piVar1;" (assignment_expression "iVar3 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "*piVar1 = iVar3 + 1;" (assignment_expression "*piVar1 = iVar3 + 1" (pointer_expression "*piVar1" * identifier) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);" (assignment_expression "puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9)" identifier = (cast_expression "(uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9)" ( (binary_expression "iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9" (binary_expression "iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10" identifier + (binary_expression "(iVar3 + *(int *)(iVar11 + iVar2)) * 0x10" (parenthesized_expression "(iVar3 + *(int *)(iVar11 + iVar2))" ( (binary_expression "iVar3 + *(int *)(iVar11 + iVar2)" identifier + (pointer_expression "*(int *)(iVar11 + iVar2)" * (cast_expression "(int *)(iVar11 + iVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + iVar2)" ( (binary_expression "iVar11 + iVar2" identifier + identifier) ))))) )) * number_literal)) + identifier) )))) ;) (expression_statement "*puVar4 = uVar14 & 0xff;" (assignment_expression "*puVar4 = uVar14 & 0xff" (pointer_expression "*puVar4" * identifier) = (binary_expression "uVar14 & 0xff" identifier & number_literal)) ;) (expression_statement "puVar4[1] = local_30;" (assignment_expression "puVar4[1] = local_30" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar5 + iVar12;" (assignment_expression "puVar4[2] = uVar5 + iVar12" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (binary_expression "uVar5 + iVar12" identifier + identifier)) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "param_2 = (uchar *)((int)param_2 + 0xc);" (assignment_expression "param_2 = (uchar *)((int)param_2 + 0xc)" identifier = (cast_expression "(uchar *)((int)param_2 + 0xc)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0xc)" ( (binary_expression "(int)param_2 + 0xc" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(param_3 != uVar10)" ( (binary_expression "param_3 != uVar10" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })) })) (expression_statement "FUN_0027c51c();" (call_expression "FUN_0027c51c()" identifier (argument_list "()" ( ))) ;) })) (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 + -0x500);" (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 + -0x500)" (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 + -0x500)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x500" identifier + number_literal) ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\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 incremental_relocs_write_reltype<4>(Sized_relobj_file<32,_true> *\n   this, Relocate_info<32,_true> * relinfo, uchar * prelocs, size_t reloc_count, Output_section *\n   output_section, Address output_offset, Output_file * of) */\n\nvoid __thiscall\ngold::Sized_relobj_file<32,_true>::incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,_true> *this,Relocate_info<32,_true> *relinfo,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,Address output_offset,Output_file *of)\n\n{\n  Incremental_inputs *pIVar1;\n  int iVar2;\n  int *piVar3;\n  uint uVar4;\n  Address AVar5;\n  int *piVar6;\n  int iVar7;\n  uchar *puVar8;\n  uchar *puVar9;\n  int iVar10;\n  Output_file *pOVar11;\n  int iVar12;\n  Output_data_space *pOVar13;\n  uint uVar14;\n  Output_file *pOVar15;\n  int iVar16;\n  Output_file *pOVar17;\n  uint *puVar18;\n  undefined4 *puVar19;\n  undefined4 uVar20;\n  size_t sVar21;\n  uint *puVar22;\n  char *pcVar23;\n  int iVar24;\n  undefined *puVar25;\n  Output_file *pOVar26;\n  int iVar27;\n  Output_file *pOVar28;\n  Output_file *pOVar29;\n  uint uVar30;\n  uchar *puVar31;\n  uint uVar32;\n  uint uVar33;\n  uint uVar34;\n  Output_file *pOVar35;\n  _func_int_varargs *p_Var36;\n  code *pcVar37;\n  code *pcVar38;\n  bool *pbVar39;\n  code *pcVar40;\n  undefined4 in_stack_fffffe74;\n  int iStack_180;\n  int iStack_178;\n  undefined4 in_stack_fffffecc;\n  size_t sStack_130;\n  uint uStack_12c;\n  int iStack_128;\n  undefined4 in_stack_ffffff1c;\n  uint uStack_e0;\n  Output_file *pOStack_dc;\n  int iStack_d8;\n  undefined4 in_stack_ffffff74;\n  Output_file *pOStack_88;\n  uchar *puStack_84;\n  Output_file *pOStack_80;\n  bool *pbVar41;\n  undefined4 in_stack_ffffffc4;\n  size_t local_38;\n  uchar *local_34;\n  Output_file *local_30;\n  \n  pbVar39 = &Position_dependent_options::default_options_.relax_.user_set_via_option;\n  pbVar41 = &Position_dependent_options::default_options_.relax_.user_set_via_option;\n  p_Var36 = (output_section->super_Output_data)._vptr_Output_data[0xb];\n  pOVar29 = (Output_file *)reloc_count;\n  if (p_Var36 == (_func_int_varargs *)PTR_do_out_shndx_004c219c) {\n    local_30 = (Output_file *)output_section->out_shndx_;\n    pOVar26 = (Output_file *)PTR_s_in_a_linker_script_004c191c;\n    puVar25 = PTR_s_in_a_linker_script_004c191c;\n    if (local_30 == (Output_file *)0xffffffff) goto LAB_00282cc8;\n  }\n  else {\n    pOVar26 = (Output_file *)prelocs;\n    local_30 = (Output_file *)(*p_Var36)(output_section);\n  }\n  pbVar39 = pbVar41;\n  pIVar1 = relinfo->layout->incremental_inputs_;\n  uVar20 = 0x44e;\n  if (pIVar1 == (Incremental_inputs *)0x0) goto LAB_00282cb0;\n  pOVar13 = pIVar1->relocs_section_;\n  iVar2 = *(int *)&(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x20;\n  pbVar41 = pbVar39;\n  if (iVar2 << 2 < 0) {\n    local_38 = (size_t)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.offset_;\n    pOVar17 = *(Output_file **)\n               &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_;\n    if (iVar2 << 1 < 0) {\n      uVar14 = (uint)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                     super_Output_data.data_size_;\n      sVar21 = local_38;\n      if (-1 < (int)pOVar17) {\n        sVar21 = uVar14 + local_38;\n        iVar2 = (int)&pOVar17->name_ + (uint)(sVar21 < uVar14);\n        pOVar17 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar2);\n        if (pOVar17 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar2) goto LAB_00282ce0;\nLAB_00282b34:\n          local_34 = of->base_;\n          sVar21 = 0;\n          if (reloc_count == 0) {\n            return;\n          }\n          do {\n            uVar34 = *(uint *)(prelocs + 4);\n            uVar14 = this->local_symbol_count_;\n            uVar33 = uVar34 >> 8;\n            if (uVar14 <= uVar33) {\n              of = *(Output_file **)prelocs;\n              AVar5 = output_offset;\n              if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }\n              pbVar39 = pbVar41;\n              uVar33 = uVar33 - uVar14;\n              uVar14 = *(uint *)(prelocs + 8);\n              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);\n              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;\n              if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }\n              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;\n              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;\n              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }\n              puVar18 = puVar18 + uVar33;\n              uVar4 = *puVar18;\n              *puVar18 = uVar4 + 1;\n              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);\n              *puVar18 = uVar34 & 0xff;\n              puVar18[1] = (uint)local_30;\n              puVar18[2] = (int)&of->name_ + AVar5;\n              puVar18[3] = uVar14;\n              pbVar41 = pbVar39;\n            }\n            sVar21 = sVar21 + 1;\n            prelocs = prelocs + 0xc;\n            if (reloc_count == sVar21) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00282cf0:\n      Output_file::get_output_view(pOVar17,CONCAT44(pbVar41,in_stack_ffffffc4),sVar21,pOVar26);\n    }\n    (**(code **)(pbVar39 + -0x7810))\n              (*(int *)(pbVar39 + -0x7fc4) + 0x3574,0xcf,*(int *)(pbVar39 + -0x7924) + -0x500);\n  }\n  iVar2 = 0xe3;\n  pcVar37 = *(code **)(pbVar39 + -0x7810);\n  puVar18 = (uint *)(*(int *)(pbVar39 + -0x7924) + -0x4f4);\n  piVar3 = (int *)(*(int *)(pbVar39 + -0x7fc4) + 0x3574);\n  (*pcVar37)();\n  pcVar40 = pcVar37 + 0x246508;\n  pOVar26 = pOVar29;\n  if (*(code **)(*(int *)pbVar41 + 0x2c) == *(code **)(pcVar37 + 0x23f464)) {\n    uVar14 = *(uint *)(pbVar41 + 100);\n    iVar27 = *(int *)(pcVar37 + 0x23ebe4);\n    pcVar37 = pcVar40;\n    if (uVar14 == 0xffffffff) goto LAB_00283058;\n  }\n  else {\n    uVar14 = (**(code **)(*(int *)pbVar41 + 0x2c))(pbVar41);\n  }\n  iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc);\n  uVar20 = 0x44e;\n  if (iVar27 == 0) goto LAB_00283024;\n  pOVar17 = *(Output_file **)(iVar27 + 0x3c);\n  pcVar37 = pcVar40;\n  if (*(int *)&pOVar17[1].file_size_ << 2 < 0) {\n    pOStack_88 = (Output_file *)pOVar17[1].o_;\n    pcVar23 = pOVar17[1].name_;\n    if (*(int *)&pOVar17[1].file_size_ << 1 < 0) {\n      pbVar39 = &pOVar17->map_is_anonymous_;\n      pOVar28 = pOStack_88;\n      if (-1 < (int)pcVar23) {\n        pOVar28 = (Output_file *)((int)&pOStack_88->name_ + (int)&(*(Output_file **)pbVar39)->name_)\n        ;\n        pOVar17 = *(Output_file **)&local_30->file_size_;\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar28 < *(Output_file **)pbVar39));\n        pcVar23 = (char *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283070;\nLAB_00282e20:\n          puStack_84 = local_30->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          pOStack_80 = (Output_file *)\n                       ((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000);\n          do {\n            uVar34 = puVar18[3];\n            uVar33 = puVar18[2];\n            uVar14 = piVar3[0x2e];\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            if (uVar14 <= uVar34) {\n              uVar30 = *puVar18;\n              uVar4 = puVar18[1];\n              local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }\n              uVar34 = uVar34 - uVar14;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283018;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_00283000;\n              iVar16 = uVar34 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar16);\n              iVar7 = *piVar6;\n              *piVar6 = iVar7 + 1;\n              pOVar26 = (Output_file *)0x0;\n              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (int)pOStack_80;\n              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;\n              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              pcVar37 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 4;\n            if (pOVar29 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283080:\n      Output_file::get_output_view\n                (pOVar17,CONCAT44(pcVar37,in_stack_ffffff74),(size_t)pcVar23,pOVar28);\n    }\n    (**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);\n  }\n  iVar2 = 0xe3;\n  pcVar38 = *(code **)(pcVar40 + -0x7810);\n  puVar18 = (uint *)(*(int *)(pcVar40 + -0x7924) + -0x4f4);\n  piVar3 = (int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);\n  (*pcVar38)();\n  pcVar40 = pcVar38 + 0x246178;\n  pOVar29 = pOVar26;\n  if (*(code **)(*(int *)pcVar37 + 0x2c) == *(code **)(pcVar38 + 0x23f0d4)) {\n    uVar14 = *(uint *)(pcVar37 + 100);\n    iVar27 = *(int *)(pcVar38 + 0x23e854);\n    pcVar38 = pcVar40;\n    if (uVar14 == 0xffffffff) goto LAB_002833f8;\n  }\n  else {\n    uVar14 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37);\n  }\n  iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc);\n  uVar20 = 0x44e;\n  if (iVar27 == 0) goto LAB_002833c4;\n  pOVar17 = *(Output_file **)(iVar27 + 0x3c);\n  iVar27 = *(int *)(pcVar40 + -0x7924);\n  pcVar38 = pcVar40;\n  if (*(int *)&pOVar17[1].file_size_ << 2 < 0) {\n    iStack_d8 = pOVar17[1].o_;\n    pOVar28 = (Output_file *)pOVar17[1].name_;\n    if (*(int *)&pOVar17[1].file_size_ << 1 < 0) {\n      pOVar15 = *(Output_file **)&pOVar17->map_is_anonymous_;\n      if (-1 < (int)pOVar28) {\n        pOVar17 = *(Output_file **)&pOStack_80->file_size_;\n        pOVar29 = (Output_file *)((int)&pOVar15->name_ + iStack_d8);\n        pOVar15 = (Output_file *)((int)&pOVar28->name_ + (uint)(pOVar29 < pOVar15));\n        pOVar28 = (Output_file *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pOVar28 == (Output_file *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283410;\nLAB_002831b0:\n          puVar31 = pOStack_80->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = puVar18[3];\n            uVar34 = puVar18[2];\n            uVar4 = piVar3[0x2e];\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            if (uVar4 <= uVar33) {\n              uVar32 = *puVar18;\n              uVar30 = puVar18[1];\n              pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }\n              pOVar29 = (Output_file *)puVar18[5];\n              uVar33 = uVar33 - uVar4;\n              uStack_e0 = puVar18[4];\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_002833b8;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_002833a0;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar7 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar16 = *piVar6;\n              *piVar6 = iVar16 + 1;\n              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);\n              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;\n              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;\n              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              piVar6[5] = (int)pOVar29;\n              piVar6[4] = uStack_e0;\n              pcVar38 = pcVar40;\n              pOStack_dc = pOVar29;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 6;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283420:\n      Output_file::get_output_view\n                (pOVar15,CONCAT44(pcVar38,in_stack_ffffff1c),(size_t)pOVar17,pOVar28);\n    }\n    iVar27 = *(int *)(pcVar40 + -0x7924) + -0x500;\n    (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf);\n  }\n  iVar2 = 0xe3;\n  pcVar37 = *(code **)(pcVar40 + -0x7810);\n  pOVar17 = (Output_file *)(iVar27 + -0x4f4);\n  piVar3 = (int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);\n  (*pcVar37)();\n  pcVar40 = pcVar37 + 0x245ddc;\n  pOVar26 = pOVar29;\n  if (*(code **)(*(int *)pcVar38 + 0x2c) == *(code **)(pcVar37 + 0x23ed38)) {\n    iStack_128 = *(int *)(pcVar38 + 100);\n    pOVar28 = *(Output_file **)(pcVar37 + 0x23e4b8);\n    pcVar37 = pcVar40;\n    if (iStack_128 == -1) goto LAB_00283750;\n  }\n  else {\n    pOVar28 = pOVar17;\n    iStack_128 = (**(code **)(*(int *)pcVar38 + 0x2c))(pcVar38);\n  }\n  iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc);\n  uVar20 = 0x44e;\n  if (iVar27 == 0) goto LAB_0028371c;\n  iVar27 = *(int *)(iVar27 + 0x3c);\n  pcVar37 = pcVar40;\n  if (*(int *)(iVar27 + 0x20) << 2 < 0) {\n    sStack_130 = *(size_t *)(iVar27 + 0x1c);\n    pOVar15 = *(Output_file **)(iVar27 + 0x18);\n    if (*(int *)(iVar27 + 0x20) << 1 < 0) {\n      sVar21 = sStack_130;\n      if (-1 < (int)pOVar15) {\n        sVar21 = *(uint *)(iVar27 + 0x14) + sStack_130;\n        iVar27 = (int)&pOVar15->name_ + (uint)(sVar21 < *(uint *)(iVar27 + 0x14));\n        pOVar15 = (Output_file *)(uint)(*(int *)(iStack_d8 + 8) < iVar27);\n        if (pOVar15 == (Output_file *)0x0) {\n          if (*(int *)(iStack_d8 + 8) == iVar27) goto LAB_00283768;\nLAB_00283554:\n          uStack_12c = *(uint *)(iStack_d8 + 0x10);\n          pOVar28 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            pOVar15 = *(Output_file **)&pOVar17->file_size_;\n            pOVar26 = (Output_file *)piVar3[0x2e];\n            iStack_d8 = (int)pOVar17->file_size_;\n            if (pOVar26 <= pOVar15) {\n              pcVar23 = pOVar17->name_;\n              pOVar35 = (Output_file *)pOVar17->o_;\n              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }\n              uVar14 = (int)pOVar15 - (int)pOVar26;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283710;\n              iVar16 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar16 == 0) goto LAB_002836f8;\n              iVar7 = uVar14 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar10 = *piVar6;\n              *piVar6 = iVar10 + 1;\n              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = iStack_d8;\n              piVar6[1] = iStack_128;\n              piVar6[2] = (int)(pcVar23 + iVar27);\n              piVar6[3] = (int)pOVar35;\n              pcVar37 = pcVar40;\n            }\n            pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1);\n            pOVar17 = (Output_file *)&pOVar17->base_;\n            if (pOVar29 == pOVar28) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283778:\n      Output_file::get_output_view(pOVar15,CONCAT44(pcVar37,in_stack_fffffecc),sVar21,pOVar28);\n    }\n    (**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);\n  }\n  iVar2 = 0xe3;\n  pcVar38 = *(code **)(pcVar40 + -0x7810);\n  pOVar29 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x4f4);\n  piVar3 = (int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);\n  (*pcVar38)();\n  pcVar40 = pcVar38 + 0x245a80;\n  if (*(code **)(*(int *)pcVar37 + 0x2c) == *(code **)(pcVar38 + 0x23e9dc)) {\n    iStack_178 = *(int *)(pcVar37 + 100);\n    pOVar17 = *(Output_file **)(pcVar38 + 0x23e15c);\n    pcVar38 = pcVar40;\n    if (iStack_178 == -1) goto LAB_00283ab8;\n  }\n  else {\n    pOVar17 = pOVar29;\n    iStack_178 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37);\n  }\n  iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc);\n  uVar20 = 0x44e;\n  if (iVar27 == 0) goto LAB_00283a84;\n  pOVar28 = *(Output_file **)(iVar27 + 0x3c);\n  if (*(int *)&pOVar28[1].file_size_ << 2 < 0) {\n    iStack_180 = pOVar28[1].o_;\n    pcVar23 = pOVar28[1].name_;\n    if (*(int *)&pOVar28[1].file_size_ << 1 < 0) {\n      pbVar41 = &pOVar28->map_is_anonymous_;\n      pcVar38 = pcVar40;\n      if (-1 < (int)pcVar23) {\n        pOVar28 = *(Output_file **)(iStack_128 + 8);\n        pOVar17 = (Output_file *)((int)&(*(Output_file **)pbVar41)->name_ + iStack_180);\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar17 < *(Output_file **)pbVar41));\n        pcVar23 = (char *)(uint)((int)pOVar28 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar28 == pOVar15) goto LAB_00283ad0;\nLAB_002838ac:\n          iVar27 = *(int *)(iStack_128 + 0x10);\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = *(uint *)&pOVar29->file_size_;\n            uVar14 = piVar3[0x2e];\n            iStack_128 = (int)pOVar29->file_size_;\n            if (uVar14 <= uVar33) {\n              pcVar23 = pOVar29->name_;\n              iVar16 = pOVar29->o_;\n              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }\n              iVar7 = *(int *)&pOVar29->map_is_anonymous_;\n              uVar33 = uVar33 - uVar14;\n              puVar31 = pOVar29->base_;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283a78;\n              iVar10 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar10 == 0) goto LAB_00283a60;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar24 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar24);\n              iVar12 = *piVar6;\n              *piVar6 = iVar12 + 1;\n              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);\n              *piVar6 = iStack_128;\n              piVar6[1] = iStack_178;\n              piVar6[2] = (int)(pcVar23 + iVar16);\n              piVar6[3] = uVar34;\n              piVar6[5] = iVar7;\n              piVar6[4] = (int)puVar31;\n              pcVar38 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            pOVar29 = pOVar29 + 1;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283ae0:\n      Output_file::get_output_view\n                (pOVar28,CONCAT44(pcVar38,in_stack_fffffe74),(size_t)pcVar23,pOVar17);\n    }\n    (**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);\n  }\n  pcVar37 = *(code **)(pcVar40 + -0x7810);\n  puVar19 = (undefined4 *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);\n  (*pcVar37)(puVar19,0xe3,*(int *)(pcVar40 + -0x7924) + -0x4f4);\n  piVar3 = (int *)puVar19[2];\n  while (piVar3 != (int *)0x0) {\n    piVar3 = (int *)*piVar3;\n    (**(code **)(pcVar37 + 0x23d7d4))();\n  }\n  (**(code **)(pcVar37 + 0x242140))(*puVar19,0,puVar19[1] << 2);\n  puVar19[3] = 0;\n  puVar19[2] = 0;\n  return;\nLAB_00282cac:\n  uVar20 = 0x46d;\n  pbVar39 = pbVar41;\nLAB_00282cb0:\n  puVar25 = (undefined *)(*(int *)(pbVar39 + -0x7924) + -0x7a4);\n  pbVar41 = pbVar39;\n  (**(code **)(pbVar39 + -0x7810))(*(int *)(pbVar39 + -0x7924) + -0xe14,uVar20);\nLAB_00282cc8:\n  sVar21 = 0x1043;\n  pOVar26 = (Output_file *)(puVar25 + -0x664);\n  pOVar17 = (Output_file *)(*(int *)(pbVar39 + -0x7fc4) + 0x3574);\n  (**(code **)(pbVar39 + -0x7810))();\nLAB_00282ce0:\n  sVar21 = (size_t)((uint)of->file_size_ < sVar21);\n  if (sVar21 != 0) goto LAB_00282cf0;\n  goto LAB_00282b34;\nLAB_00283020:\n  uVar20 = 0x46d;\nLAB_00283024:\n  pcVar37 = pcVar40;\n  (**(code **)(pcVar40 + -0x7810))\n            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x87c);\nLAB_0028303c:\n  iVar27 = *(int *)(pcVar40 + -0x7924) + -0x88c;\n  (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0);\nLAB_00283058:\n  pcVar23 = (char *)0x1043;\n  pOVar28 = (Output_file *)(iVar27 - 0x664);\n  pOVar17 = (Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);\n  uVar14 = (**(code **)(pcVar40 + -0x7810))();\nLAB_00283070:\n  pOVar28 = (Output_file *)(uint)(*(Output_file **)((int)&local_30->file_size_ + 4) < pOVar28);\n  if (pOVar28 != (Output_file *)0x0) goto LAB_00283080;\n  goto LAB_00282e20;\nLAB_002833c0:\n  uVar20 = 0x46d;\nLAB_002833c4:\n  pcVar38 = pcVar40;\n  (**(code **)(pcVar40 + -0x7810))\n            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x8b0);\nLAB_002833dc:\n  iVar27 = *(int *)(pcVar40 + -0x7924) + -0x88c;\n  (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0);\nLAB_002833f8:\n  pOVar17 = (Output_file *)0x1043;\n  pOVar28 = (Output_file *)(iVar27 - 0x664);\n  uVar14 = (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x3574);\nLAB_00283410:\n  pOVar15 = *(Output_file **)((int)&pOStack_80->file_size_ + 4);\n  pOVar29 = (Output_file *)(uint)(pOVar15 < pOVar29);\n  if (pOVar29 != (Output_file *)0x0) goto LAB_00283420;\n  goto LAB_002831b0;\nLAB_00283718:\n  uVar20 = 0x46d;\nLAB_0028371c:\n  pcVar37 = pcVar40;\n  (**(code **)(pcVar40 + -0x7810))\n            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x988);\nLAB_00283734:\n  pOVar28 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x88c);\n  (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0);\nLAB_00283750:\n  sVar21 = 0x1043;\n  pOVar28 = (Output_file *)&pOVar28[-0x45].map_is_anonymous_;\n  pOVar15 = (Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);\n  (**(code **)(pcVar40 + -0x7810))();\nLAB_00283768:\n  sVar21 = (size_t)(*(uint *)(iStack_d8 + 0xc) < sVar21);\n  if (sVar21 != 0) goto LAB_00283778;\n  goto LAB_00283554;\nLAB_00283a80:\n  uVar20 = 0x46d;\nLAB_00283a84:\n  pcVar38 = pcVar40;\n  (**(code **)(pcVar40 + -0x7810))\n            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x9ac);\nLAB_00283a9c:\n  pOVar17 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x88c);\n  (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0);\nLAB_00283ab8:\n  pcVar23 = (char *)0x1043;\n  pOVar17 = (Output_file *)&pOVar17[-0x45].map_is_anonymous_;\n  pOVar28 = (Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);\n  (**(code **)(pcVar40 + -0x7810))();\nLAB_00283ad0:\n  pOVar17 = (Output_file *)(uint)(*(Output_file **)(iStack_128 + 0xc) < pOVar17);\n  if (pOVar17 != (Output_file *)0x0) goto LAB_00283ae0;\n  goto LAB_002838ac;\n}\n\n" comment comment comment comment comment comment comment (declaration "void __thiscall\ngold::Sized_relobj_file<32,_true>::incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,_true> *this,Relocate_info<32,_true> *relinfo,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,Address output_offset,Output_file *of)\n\n{\n  Incremental_inputs *pIVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>::incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,_true> *this,Relocate_info<32,_true> *relinfo,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,Address output_offset,Output_file *of)\n\n{\n  Incremental_inputs" identifier > : : (function_declarator "incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,_true> *this,Relocate_info<32,_true> *relinfo,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,Address output_offset,Output_file *of)" identifier (ERROR "<4>" < number_literal >) (parameter_list "(Sized_relobj_file<32,_true> *this,Relocate_info<32,_true> *relinfo,uchar *prelocs,\n          size_t reloc_count,Output_section *output_section,Address output_offset,Output_file *of)" ( (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relocate_info" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *relinfo" type_identifier (ERROR ">" >) (pointer_declarator "*relinfo" * identifier)) , (parameter_declaration "uchar *prelocs" type_identifier (pointer_declarator "*prelocs" * identifier)) , (parameter_declaration "size_t reloc_count" primitive_type identifier) , (parameter_declaration "Output_section *output_section" type_identifier (pointer_declarator "*output_section" * identifier)) , (parameter_declaration "Address output_offset" type_identifier identifier) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * identifier)) ))) { identifier) (pointer_declarator "*pIVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "Address AVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uchar *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uchar *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "Output_file *pOVar11;" type_identifier (pointer_declarator "*pOVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "Output_data_space *pOVar13;" type_identifier (pointer_declarator "*pOVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "Output_file *pOVar15;" type_identifier (pointer_declarator "*pOVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "Output_file *pOVar17;" type_identifier (pointer_declarator "*pOVar17" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "size_t sVar21;" primitive_type identifier ;) (declaration "uint *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "char *pcVar23;" primitive_type (pointer_declarator "*pcVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "Output_file *pOVar26;" type_identifier (pointer_declarator "*pOVar26" * identifier) ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "Output_file *pOVar28;" type_identifier (pointer_declarator "*pOVar28" * identifier) ;) (declaration "Output_file *pOVar29;" type_identifier (pointer_declarator "*pOVar29" * identifier) ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "uchar *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "uint uVar32;" type_identifier identifier ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "uint uVar34;" type_identifier identifier ;) (declaration "Output_file *pOVar35;" type_identifier (pointer_declarator "*pOVar35" * identifier) ;) (declaration "_func_int_varargs *p_Var36;" type_identifier (pointer_declarator "*p_Var36" * identifier) ;) (declaration "code *pcVar37;" type_identifier (pointer_declarator "*pcVar37" * identifier) ;) (declaration "code *pcVar38;" type_identifier (pointer_declarator "*pcVar38" * identifier) ;) (declaration "bool *pbVar39;" primitive_type (pointer_declarator "*pbVar39" * identifier) ;) (declaration "code *pcVar40;" type_identifier (pointer_declarator "*pcVar40" * identifier) ;) (declaration "undefined4 in_stack_fffffe74;" type_identifier identifier ;) (declaration "int iStack_180;" primitive_type identifier ;) (declaration "int iStack_178;" primitive_type identifier ;) (declaration "undefined4 in_stack_fffffecc;" type_identifier identifier ;) (declaration "size_t sStack_130;" primitive_type identifier ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "int iStack_128;" primitive_type identifier ;) (declaration "undefined4 in_stack_ffffff1c;" type_identifier identifier ;) (declaration "uint uStack_e0;" type_identifier identifier ;) (declaration "Output_file *pOStack_dc;" type_identifier (pointer_declarator "*pOStack_dc" * identifier) ;) (declaration "int iStack_d8;" primitive_type identifier ;) (declaration "undefined4 in_stack_ffffff74;" type_identifier identifier ;) (declaration "Output_file *pOStack_88;" type_identifier (pointer_declarator "*pOStack_88" * identifier) ;) (declaration "uchar *puStack_84;" type_identifier (pointer_declarator "*puStack_84" * identifier) ;) (declaration "Output_file *pOStack_80;" type_identifier (pointer_declarator "*pOStack_80" * identifier) ;) (declaration "bool *pbVar41;" primitive_type (pointer_declarator "*pbVar41" * identifier) ;) (declaration "undefined4 in_stack_ffffffc4;" type_identifier identifier ;) (declaration "size_t local_38;" primitive_type identifier ;) (declaration "uchar *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "Output_file *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (expression_statement "pbVar39 = &Position_dependent_options::default_options_.relax_.user_set_via_option;" (field_expression "pbVar39 = &Position_dependent_options::default_options_.relax_.user_set_via_option" (field_expression "pbVar39 = &Position_dependent_options::default_options_.relax_" (assignment_expression "pbVar39 = &Position_dependent_options" identifier = (pointer_expression "&Position_dependent_options" & identifier)) (ERROR "::default_options_" : : identifier) . field_identifier) . field_identifier) ;) (expression_statement "pbVar41 = &Position_dependent_options::default_options_.relax_.user_set_via_option;" (field_expression "pbVar41 = &Position_dependent_options::default_options_.relax_.user_set_via_option" (field_expression "pbVar41 = &Position_dependent_options::default_options_.relax_" (assignment_expression "pbVar41 = &Position_dependent_options" identifier = (pointer_expression "&Position_dependent_options" & identifier)) (ERROR "::default_options_" : : identifier) . field_identifier) . field_identifier) ;) (expression_statement "p_Var36 = (output_section->super_Output_data)._vptr_Output_data[0xb];" (assignment_expression "p_Var36 = (output_section->super_Output_data)._vptr_Output_data[0xb]" identifier = (subscript_expression "(output_section->super_Output_data)._vptr_Output_data[0xb]" (field_expression "(output_section->super_Output_data)._vptr_Output_data" (parenthesized_expression "(output_section->super_Output_data)" ( (field_expression "output_section->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "pOVar29 = (Output_file *)reloc_count;" (assignment_expression "pOVar29 = (Output_file *)reloc_count" identifier = (cast_expression "(Output_file *)reloc_count" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (p_Var36 == (_func_int_varargs *)PTR_do_out_shndx_004c219c) {\n    local_30 = (Output_file *)output_section->out_shndx_;\n    pOVar26 = (Output_file *)PTR_s_in_a_linker_script_004c191c;\n    puVar25 = PTR_s_in_a_linker_script_004c191c;\n    if (local_30 == (Output_file *)0xffffffff) goto LAB_00282cc8;\n  }\n  else {\n    pOVar26 = (Output_file *)prelocs;\n    local_30 = (Output_file *)(*p_Var36)(output_section);\n  }" if (parenthesized_expression "(p_Var36 == (_func_int_varargs *)PTR_do_out_shndx_004c219c)" ( (binary_expression "p_Var36 == (_func_int_varargs *)PTR_do_out_shndx_004c219c" identifier == (cast_expression "(_func_int_varargs *)PTR_do_out_shndx_004c219c" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    local_30 = (Output_file *)output_section->out_shndx_;\n    pOVar26 = (Output_file *)PTR_s_in_a_linker_script_004c191c;\n    puVar25 = PTR_s_in_a_linker_script_004c191c;\n    if (local_30 == (Output_file *)0xffffffff) goto LAB_00282cc8;\n  }" { (expression_statement "local_30 = (Output_file *)output_section->out_shndx_;" (assignment_expression "local_30 = (Output_file *)output_section->out_shndx_" identifier = (cast_expression "(Output_file *)output_section->out_shndx_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "output_section->out_shndx_" identifier -> field_identifier))) ;) (expression_statement "pOVar26 = (Output_file *)PTR_s_in_a_linker_script_004c191c;" (assignment_expression "pOVar26 = (Output_file *)PTR_s_in_a_linker_script_004c191c" identifier = (cast_expression "(Output_file *)PTR_s_in_a_linker_script_004c191c" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar25 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar25 = PTR_s_in_a_linker_script_004c191c" identifier = identifier) ;) (if_statement "if (local_30 == (Output_file *)0xffffffff) goto LAB_00282cc8;" if (parenthesized_expression "(local_30 == (Output_file *)0xffffffff)" ( (binary_expression "local_30 == (Output_file *)0xffffffff" identifier == (cast_expression "(Output_file *)0xffffffff" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00282cc8;" goto statement_identifier ;)) }) (else_clause "else {\n    pOVar26 = (Output_file *)prelocs;\n    local_30 = (Output_file *)(*p_Var36)(output_section);\n  }" else (compound_statement "{\n    pOVar26 = (Output_file *)prelocs;\n    local_30 = (Output_file *)(*p_Var36)(output_section);\n  }" { (expression_statement "pOVar26 = (Output_file *)prelocs;" (assignment_expression "pOVar26 = (Output_file *)prelocs" identifier = (cast_expression "(Output_file *)prelocs" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_30 = (Output_file *)(*p_Var36)(output_section);" (assignment_expression "local_30 = (Output_file *)(*p_Var36)(output_section)" identifier = (cast_expression "(Output_file *)(*p_Var36)(output_section)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var36)(output_section)" (parenthesized_expression "(*p_Var36)" ( (pointer_expression "*p_Var36" * identifier) )) (argument_list "(output_section)" ( identifier ))))) ;) }))) (expression_statement "pbVar39 = pbVar41;" (assignment_expression "pbVar39 = pbVar41" identifier = identifier) ;) (expression_statement "pIVar1 = relinfo->layout->incremental_inputs_;" (assignment_expression "pIVar1 = relinfo->layout->incremental_inputs_" identifier = (field_expression "relinfo->layout->incremental_inputs_" (field_expression "relinfo->layout" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "uVar20 = 0x44e;" (assignment_expression "uVar20 = 0x44e" identifier = number_literal) ;) (if_statement "if (pIVar1 == (Incremental_inputs *)0x0) goto LAB_00282cb0;" if (parenthesized_expression "(pIVar1 == (Incremental_inputs *)0x0)" ( (binary_expression "pIVar1 == (Incremental_inputs *)0x0" identifier == (cast_expression "(Incremental_inputs *)0x0" ( (type_descriptor "Incremental_inputs *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00282cb0;" goto statement_identifier ;)) (expression_statement "pOVar13 = pIVar1->relocs_section_;" (assignment_expression "pOVar13 = pIVar1->relocs_section_" identifier = (field_expression "pIVar1->relocs_section_" identifier -> field_identifier)) ;) (expression_statement "iVar2 = *(int *)&(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x20;" (assignment_expression "iVar2 = *(int *)&(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x20" identifier = (pointer_expression "*(int *)&(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x20" * (cast_expression "(int *)&(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x20" & (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x20" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))))) ;) (expression_statement "pbVar41 = pbVar39;" (assignment_expression "pbVar41 = pbVar39" identifier = identifier) ;) (if_statement "if (iVar2 << 2 < 0) {\n    local_38 = (size_t)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.offset_;\n    pOVar17 = *(Output_file **)\n               &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_;\n    if (iVar2 << 1 < 0) {\n      uVar14 = (uint)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                     super_Output_data.data_size_;\n      sVar21 = local_38;\n      if (-1 < (int)pOVar17) {\n        sVar21 = uVar14 + local_38;\n        iVar2 = (int)&pOVar17->name_ + (uint)(sVar21 < uVar14);\n        pOVar17 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar2);\n        if (pOVar17 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar2) goto LAB_00282ce0;\nLAB_00282b34:\n          local_34 = of->base_;\n          sVar21 = 0;\n          if (reloc_count == 0) {\n            return;\n          }\n          do {\n            uVar34 = *(uint *)(prelocs + 4);\n            uVar14 = this->local_symbol_count_;\n            uVar33 = uVar34 >> 8;\n            if (uVar14 <= uVar33) {\n              of = *(Output_file **)prelocs;\n              AVar5 = output_offset;\n              if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }\n              pbVar39 = pbVar41;\n              uVar33 = uVar33 - uVar14;\n              uVar14 = *(uint *)(prelocs + 8);\n              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);\n              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;\n              if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }\n              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;\n              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;\n              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }\n              puVar18 = puVar18 + uVar33;\n              uVar4 = *puVar18;\n              *puVar18 = uVar4 + 1;\n              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);\n              *puVar18 = uVar34 & 0xff;\n              puVar18[1] = (uint)local_30;\n              puVar18[2] = (int)&of->name_ + AVar5;\n              puVar18[3] = uVar14;\n              pbVar41 = pbVar39;\n            }\n            sVar21 = sVar21 + 1;\n            prelocs = prelocs + 0xc;\n            if (reloc_count == sVar21) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00282cf0:\n      Output_file::get_output_view(pOVar17,CONCAT44(pbVar41,in_stack_ffffffc4),sVar21,pOVar26);\n    }\n    (**(code **)(pbVar39 + -0x7810))\n              (*(int *)(pbVar39 + -0x7fc4) + 0x3574,0xcf,*(int *)(pbVar39 + -0x7924) + -0x500);\n  }" if (parenthesized_expression "(iVar2 << 2 < 0)" ( (binary_expression "iVar2 << 2 < 0" (binary_expression "iVar2 << 2" identifier << number_literal) < number_literal) )) (compound_statement "{\n    local_38 = (size_t)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.offset_;\n    pOVar17 = *(Output_file **)\n               &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_;\n    if (iVar2 << 1 < 0) {\n      uVar14 = (uint)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                     super_Output_data.data_size_;\n      sVar21 = local_38;\n      if (-1 < (int)pOVar17) {\n        sVar21 = uVar14 + local_38;\n        iVar2 = (int)&pOVar17->name_ + (uint)(sVar21 < uVar14);\n        pOVar17 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar2);\n        if (pOVar17 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar2) goto LAB_00282ce0;\nLAB_00282b34:\n          local_34 = of->base_;\n          sVar21 = 0;\n          if (reloc_count == 0) {\n            return;\n          }\n          do {\n            uVar34 = *(uint *)(prelocs + 4);\n            uVar14 = this->local_symbol_count_;\n            uVar33 = uVar34 >> 8;\n            if (uVar14 <= uVar33) {\n              of = *(Output_file **)prelocs;\n              AVar5 = output_offset;\n              if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }\n              pbVar39 = pbVar41;\n              uVar33 = uVar33 - uVar14;\n              uVar14 = *(uint *)(prelocs + 8);\n              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);\n              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;\n              if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }\n              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;\n              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;\n              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }\n              puVar18 = puVar18 + uVar33;\n              uVar4 = *puVar18;\n              *puVar18 = uVar4 + 1;\n              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);\n              *puVar18 = uVar34 & 0xff;\n              puVar18[1] = (uint)local_30;\n              puVar18[2] = (int)&of->name_ + AVar5;\n              puVar18[3] = uVar14;\n              pbVar41 = pbVar39;\n            }\n            sVar21 = sVar21 + 1;\n            prelocs = prelocs + 0xc;\n            if (reloc_count == sVar21) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00282cf0:\n      Output_file::get_output_view(pOVar17,CONCAT44(pbVar41,in_stack_ffffffc4),sVar21,pOVar26);\n    }\n    (**(code **)(pbVar39 + -0x7810))\n              (*(int *)(pbVar39 + -0x7fc4) + 0x3574,0xcf,*(int *)(pbVar39 + -0x7924) + -0x500);\n  }" { (expression_statement "local_38 = (size_t)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.offset_;" (assignment_expression "local_38 = (size_t)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.offset_" identifier = (cast_expression "(size_t)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.offset_" ( (type_descriptor "size_t" primitive_type) ) (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.offset_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "pOVar17 = *(Output_file **)\n               &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_;" (assignment_expression "pOVar17 = *(Output_file **)\n               &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_" identifier = (pointer_expression "*(Output_file **)\n               &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_" * (cast_expression "(Output_file **)\n               &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_" & (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))))) ;) (if_statement "if (iVar2 << 1 < 0) {\n      uVar14 = (uint)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                     super_Output_data.data_size_;\n      sVar21 = local_38;\n      if (-1 < (int)pOVar17) {\n        sVar21 = uVar14 + local_38;\n        iVar2 = (int)&pOVar17->name_ + (uint)(sVar21 < uVar14);\n        pOVar17 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar2);\n        if (pOVar17 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar2) goto LAB_00282ce0;\nLAB_00282b34:\n          local_34 = of->base_;\n          sVar21 = 0;\n          if (reloc_count == 0) {\n            return;\n          }\n          do {\n            uVar34 = *(uint *)(prelocs + 4);\n            uVar14 = this->local_symbol_count_;\n            uVar33 = uVar34 >> 8;\n            if (uVar14 <= uVar33) {\n              of = *(Output_file **)prelocs;\n              AVar5 = output_offset;\n              if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }\n              pbVar39 = pbVar41;\n              uVar33 = uVar33 - uVar14;\n              uVar14 = *(uint *)(prelocs + 8);\n              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);\n              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;\n              if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }\n              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;\n              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;\n              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }\n              puVar18 = puVar18 + uVar33;\n              uVar4 = *puVar18;\n              *puVar18 = uVar4 + 1;\n              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);\n              *puVar18 = uVar34 & 0xff;\n              puVar18[1] = (uint)local_30;\n              puVar18[2] = (int)&of->name_ + AVar5;\n              puVar18[3] = uVar14;\n              pbVar41 = pbVar39;\n            }\n            sVar21 = sVar21 + 1;\n            prelocs = prelocs + 0xc;\n            if (reloc_count == sVar21) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00282cf0:\n      Output_file::get_output_view(pOVar17,CONCAT44(pbVar41,in_stack_ffffffc4),sVar21,pOVar26);\n    }" if (parenthesized_expression "(iVar2 << 1 < 0)" ( (binary_expression "iVar2 << 1 < 0" (binary_expression "iVar2 << 1" identifier << number_literal) < number_literal) )) (compound_statement "{\n      uVar14 = (uint)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                     super_Output_data.data_size_;\n      sVar21 = local_38;\n      if (-1 < (int)pOVar17) {\n        sVar21 = uVar14 + local_38;\n        iVar2 = (int)&pOVar17->name_ + (uint)(sVar21 < uVar14);\n        pOVar17 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar2);\n        if (pOVar17 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar2) goto LAB_00282ce0;\nLAB_00282b34:\n          local_34 = of->base_;\n          sVar21 = 0;\n          if (reloc_count == 0) {\n            return;\n          }\n          do {\n            uVar34 = *(uint *)(prelocs + 4);\n            uVar14 = this->local_symbol_count_;\n            uVar33 = uVar34 >> 8;\n            if (uVar14 <= uVar33) {\n              of = *(Output_file **)prelocs;\n              AVar5 = output_offset;\n              if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }\n              pbVar39 = pbVar41;\n              uVar33 = uVar33 - uVar14;\n              uVar14 = *(uint *)(prelocs + 8);\n              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);\n              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;\n              if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }\n              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;\n              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;\n              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }\n              puVar18 = puVar18 + uVar33;\n              uVar4 = *puVar18;\n              *puVar18 = uVar4 + 1;\n              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);\n              *puVar18 = uVar34 & 0xff;\n              puVar18[1] = (uint)local_30;\n              puVar18[2] = (int)&of->name_ + AVar5;\n              puVar18[3] = uVar14;\n              pbVar41 = pbVar39;\n            }\n            sVar21 = sVar21 + 1;\n            prelocs = prelocs + 0xc;\n            if (reloc_count == sVar21) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00282cf0:\n      Output_file::get_output_view(pOVar17,CONCAT44(pbVar41,in_stack_ffffffc4),sVar21,pOVar26);\n    }" { (expression_statement "uVar14 = (uint)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                     super_Output_data.data_size_;" (assignment_expression "uVar14 = (uint)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                     super_Output_data.data_size_" identifier = (field_expression "(uint)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                     super_Output_data.data_size_" (field_expression "(uint)(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                     super_Output_data" (field_expression "(uint)(pOVar13->super_Output_section_data_build).super_Output_section_data" (call_expression "(uint)(pOVar13->super_Output_section_data_build)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "sVar21 = local_38;" (assignment_expression "sVar21 = local_38" identifier = identifier) ;) (if_statement "if (-1 < (int)pOVar17) {\n        sVar21 = uVar14 + local_38;\n        iVar2 = (int)&pOVar17->name_ + (uint)(sVar21 < uVar14);\n        pOVar17 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar2);\n        if (pOVar17 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar2) goto LAB_00282ce0;\nLAB_00282b34:\n          local_34 = of->base_;\n          sVar21 = 0;\n          if (reloc_count == 0) {\n            return;\n          }\n          do {\n            uVar34 = *(uint *)(prelocs + 4);\n            uVar14 = this->local_symbol_count_;\n            uVar33 = uVar34 >> 8;\n            if (uVar14 <= uVar33) {\n              of = *(Output_file **)prelocs;\n              AVar5 = output_offset;\n              if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }\n              pbVar39 = pbVar41;\n              uVar33 = uVar33 - uVar14;\n              uVar14 = *(uint *)(prelocs + 8);\n              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);\n              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;\n              if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }\n              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;\n              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;\n              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }\n              puVar18 = puVar18 + uVar33;\n              uVar4 = *puVar18;\n              *puVar18 = uVar4 + 1;\n              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);\n              *puVar18 = uVar34 & 0xff;\n              puVar18[1] = (uint)local_30;\n              puVar18[2] = (int)&of->name_ + AVar5;\n              puVar18[3] = uVar14;\n              pbVar41 = pbVar39;\n            }\n            sVar21 = sVar21 + 1;\n            prelocs = prelocs + 0xc;\n            if (reloc_count == sVar21) {\n              return;\n            }\n          } while( true );\n        }\n      }" if (parenthesized_expression "(-1 < (int)pOVar17)" ( (binary_expression "-1 < (int)pOVar17" number_literal < (cast_expression "(int)pOVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        sVar21 = uVar14 + local_38;\n        iVar2 = (int)&pOVar17->name_ + (uint)(sVar21 < uVar14);\n        pOVar17 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar2);\n        if (pOVar17 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar2) goto LAB_00282ce0;\nLAB_00282b34:\n          local_34 = of->base_;\n          sVar21 = 0;\n          if (reloc_count == 0) {\n            return;\n          }\n          do {\n            uVar34 = *(uint *)(prelocs + 4);\n            uVar14 = this->local_symbol_count_;\n            uVar33 = uVar34 >> 8;\n            if (uVar14 <= uVar33) {\n              of = *(Output_file **)prelocs;\n              AVar5 = output_offset;\n              if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }\n              pbVar39 = pbVar41;\n              uVar33 = uVar33 - uVar14;\n              uVar14 = *(uint *)(prelocs + 8);\n              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);\n              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;\n              if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }\n              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;\n              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;\n              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }\n              puVar18 = puVar18 + uVar33;\n              uVar4 = *puVar18;\n              *puVar18 = uVar4 + 1;\n              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);\n              *puVar18 = uVar34 & 0xff;\n              puVar18[1] = (uint)local_30;\n              puVar18[2] = (int)&of->name_ + AVar5;\n              puVar18[3] = uVar14;\n              pbVar41 = pbVar39;\n            }\n            sVar21 = sVar21 + 1;\n            prelocs = prelocs + 0xc;\n            if (reloc_count == sVar21) {\n              return;\n            }\n          } while( true );\n        }\n      }" { (expression_statement "sVar21 = uVar14 + local_38;" (assignment_expression "sVar21 = uVar14 + local_38" identifier = (binary_expression "uVar14 + local_38" identifier + identifier)) ;) (expression_statement "iVar2 = (int)&pOVar17->name_ + (uint)(sVar21 < uVar14);" (assignment_expression "iVar2 = (int)&pOVar17->name_ + (uint)(sVar21 < uVar14)" identifier = (binary_expression "(int)&pOVar17->name_ + (uint)(sVar21 < uVar14)" (cast_expression "(int)&pOVar17->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar17->name_" & (field_expression "pOVar17->name_" identifier -> field_identifier))) + (call_expression "(uint)(sVar21 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(sVar21 < uVar14)" ( (binary_expression "sVar21 < uVar14" identifier < identifier) ))))) ;) (expression_statement "pOVar17 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar2);" (assignment_expression "pOVar17 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar2)" identifier = (cast_expression "(Output_file *)(uint)(*(int *)&of->file_size_ < iVar2)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)&of->file_size_ < iVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&of->file_size_ < iVar2)" ( (binary_expression "*(int *)&of->file_size_ < iVar2" (pointer_expression "*(int *)&of->file_size_" * (cast_expression "(int *)&of->file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier)))) < identifier) ))))) ;) (if_statement "if (pOVar17 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar2) goto LAB_00282ce0;\nLAB_00282b34:\n          local_34 = of->base_;\n          sVar21 = 0;\n          if (reloc_count == 0) {\n            return;\n          }\n          do {\n            uVar34 = *(uint *)(prelocs + 4);\n            uVar14 = this->local_symbol_count_;\n            uVar33 = uVar34 >> 8;\n            if (uVar14 <= uVar33) {\n              of = *(Output_file **)prelocs;\n              AVar5 = output_offset;\n              if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }\n              pbVar39 = pbVar41;\n              uVar33 = uVar33 - uVar14;\n              uVar14 = *(uint *)(prelocs + 8);\n              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);\n              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;\n              if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }\n              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;\n              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;\n              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }\n              puVar18 = puVar18 + uVar33;\n              uVar4 = *puVar18;\n              *puVar18 = uVar4 + 1;\n              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);\n              *puVar18 = uVar34 & 0xff;\n              puVar18[1] = (uint)local_30;\n              puVar18[2] = (int)&of->name_ + AVar5;\n              puVar18[3] = uVar14;\n              pbVar41 = pbVar39;\n            }\n            sVar21 = sVar21 + 1;\n            prelocs = prelocs + 0xc;\n            if (reloc_count == sVar21) {\n              return;\n            }\n          } while( true );\n        }" if (parenthesized_expression "(pOVar17 == (Output_file *)0x0)" ( (binary_expression "pOVar17 == (Output_file *)0x0" identifier == (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (*(int *)&of->file_size_ == iVar2) goto LAB_00282ce0;\nLAB_00282b34:\n          local_34 = of->base_;\n          sVar21 = 0;\n          if (reloc_count == 0) {\n            return;\n          }\n          do {\n            uVar34 = *(uint *)(prelocs + 4);\n            uVar14 = this->local_symbol_count_;\n            uVar33 = uVar34 >> 8;\n            if (uVar14 <= uVar33) {\n              of = *(Output_file **)prelocs;\n              AVar5 = output_offset;\n              if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }\n              pbVar39 = pbVar41;\n              uVar33 = uVar33 - uVar14;\n              uVar14 = *(uint *)(prelocs + 8);\n              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);\n              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;\n              if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }\n              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;\n              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;\n              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }\n              puVar18 = puVar18 + uVar33;\n              uVar4 = *puVar18;\n              *puVar18 = uVar4 + 1;\n              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);\n              *puVar18 = uVar34 & 0xff;\n              puVar18[1] = (uint)local_30;\n              puVar18[2] = (int)&of->name_ + AVar5;\n              puVar18[3] = uVar14;\n              pbVar41 = pbVar39;\n            }\n            sVar21 = sVar21 + 1;\n            prelocs = prelocs + 0xc;\n            if (reloc_count == sVar21) {\n              return;\n            }\n          } while( true );\n        }" { (if_statement "if (*(int *)&of->file_size_ == iVar2) goto LAB_00282ce0;" if (parenthesized_expression "(*(int *)&of->file_size_ == iVar2)" ( (binary_expression "*(int *)&of->file_size_ == iVar2" (pointer_expression "*(int *)&of->file_size_" * (cast_expression "(int *)&of->file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier)))) == identifier) )) (goto_statement "goto LAB_00282ce0;" goto statement_identifier ;)) (labeled_statement "LAB_00282b34:\n          local_34 = of->base_;" statement_identifier : (expression_statement "local_34 = of->base_;" (assignment_expression "local_34 = of->base_" identifier = (field_expression "of->base_" identifier -> field_identifier)) ;)) (expression_statement "sVar21 = 0;" (assignment_expression "sVar21 = 0" identifier = number_literal) ;) (if_statement "if (reloc_count == 0) {\n            return;\n          }" if (parenthesized_expression "(reloc_count == 0)" ( (binary_expression "reloc_count == 0" identifier == number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (do_statement "do {\n            uVar34 = *(uint *)(prelocs + 4);\n            uVar14 = this->local_symbol_count_;\n            uVar33 = uVar34 >> 8;\n            if (uVar14 <= uVar33) {\n              of = *(Output_file **)prelocs;\n              AVar5 = output_offset;\n              if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }\n              pbVar39 = pbVar41;\n              uVar33 = uVar33 - uVar14;\n              uVar14 = *(uint *)(prelocs + 8);\n              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);\n              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;\n              if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }\n              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;\n              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;\n              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }\n              puVar18 = puVar18 + uVar33;\n              uVar4 = *puVar18;\n              *puVar18 = uVar4 + 1;\n              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);\n              *puVar18 = uVar34 & 0xff;\n              puVar18[1] = (uint)local_30;\n              puVar18[2] = (int)&of->name_ + AVar5;\n              puVar18[3] = uVar14;\n              pbVar41 = pbVar39;\n            }\n            sVar21 = sVar21 + 1;\n            prelocs = prelocs + 0xc;\n            if (reloc_count == sVar21) {\n              return;\n            }\n          } while( true );" do (compound_statement "{\n            uVar34 = *(uint *)(prelocs + 4);\n            uVar14 = this->local_symbol_count_;\n            uVar33 = uVar34 >> 8;\n            if (uVar14 <= uVar33) {\n              of = *(Output_file **)prelocs;\n              AVar5 = output_offset;\n              if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }\n              pbVar39 = pbVar41;\n              uVar33 = uVar33 - uVar14;\n              uVar14 = *(uint *)(prelocs + 8);\n              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);\n              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;\n              if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }\n              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;\n              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;\n              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }\n              puVar18 = puVar18 + uVar33;\n              uVar4 = *puVar18;\n              *puVar18 = uVar4 + 1;\n              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);\n              *puVar18 = uVar34 & 0xff;\n              puVar18[1] = (uint)local_30;\n              puVar18[2] = (int)&of->name_ + AVar5;\n              puVar18[3] = uVar14;\n              pbVar41 = pbVar39;\n            }\n            sVar21 = sVar21 + 1;\n            prelocs = prelocs + 0xc;\n            if (reloc_count == sVar21) {\n              return;\n            }\n          }" { (expression_statement "uVar34 = *(uint *)(prelocs + 4);" (assignment_expression "uVar34 = *(uint *)(prelocs + 4)" identifier = (pointer_expression "*(uint *)(prelocs + 4)" * (cast_expression "(uint *)(prelocs + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 4)" ( (binary_expression "prelocs + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = this->local_symbol_count_;" (assignment_expression "uVar14 = this->local_symbol_count_" identifier = (field_expression "this->local_symbol_count_" identifier -> field_identifier)) ;) (expression_statement "uVar33 = uVar34 >> 8;" (assignment_expression "uVar33 = uVar34 >> 8" identifier = (binary_expression "uVar34 >> 8" identifier >> number_literal)) ;) (if_statement "if (uVar14 <= uVar33) {\n              of = *(Output_file **)prelocs;\n              AVar5 = output_offset;\n              if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }\n              pbVar39 = pbVar41;\n              uVar33 = uVar33 - uVar14;\n              uVar14 = *(uint *)(prelocs + 8);\n              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);\n              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;\n              if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }\n              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;\n              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;\n              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }\n              puVar18 = puVar18 + uVar33;\n              uVar4 = *puVar18;\n              *puVar18 = uVar4 + 1;\n              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);\n              *puVar18 = uVar34 & 0xff;\n              puVar18[1] = (uint)local_30;\n              puVar18[2] = (int)&of->name_ + AVar5;\n              puVar18[3] = uVar14;\n              pbVar41 = pbVar39;\n            }" if (parenthesized_expression "(uVar14 <= uVar33)" ( (binary_expression "uVar14 <= uVar33" identifier <= identifier) )) (compound_statement "{\n              of = *(Output_file **)prelocs;\n              AVar5 = output_offset;\n              if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }\n              pbVar39 = pbVar41;\n              uVar33 = uVar33 - uVar14;\n              uVar14 = *(uint *)(prelocs + 8);\n              piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);\n              puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;\n              if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }\n              puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;\n              if (puVar22 == (uint *)0x0) goto LAB_00282c9c;\n              if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }\n              puVar18 = puVar18 + uVar33;\n              uVar4 = *puVar18;\n              *puVar18 = uVar4 + 1;\n              puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);\n              *puVar18 = uVar34 & 0xff;\n              puVar18[1] = (uint)local_30;\n              puVar18[2] = (int)&of->name_ + AVar5;\n              puVar18[3] = uVar14;\n              pbVar41 = pbVar39;\n            }" { (expression_statement "of = *(Output_file **)prelocs;" (assignment_expression "of = *(Output_file **)prelocs" identifier = (pointer_expression "*(Output_file **)prelocs" * (cast_expression "(Output_file **)prelocs" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "AVar5 = output_offset;" (assignment_expression "AVar5 = output_offset" identifier = identifier) ;) (if_statement "if (output_offset == 0xffffffff) {\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }" if (parenthesized_expression "(output_offset == 0xffffffff)" ( (binary_expression "output_offset == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                pOVar29 = of;\n                AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);\n                if (AVar5 == 0xffffffff) goto LAB_00282cac;\n                uVar14 = this->local_symbol_count_;\n              }" { (expression_statement "pOVar29 = of;" (assignment_expression "pOVar29 = of" identifier = identifier) ;) (expression_statement "AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx);" (assignment_expression "AVar5 = (**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx)" identifier = (call_expression "(**(code **)(pbVar39 + -0x767c))\n                                  (output_section,relinfo->object,relinfo->data_shndx)" (parenthesized_expression "(**(code **)(pbVar39 + -0x767c))" ( (pointer_expression "**(code **)(pbVar39 + -0x767c)" * (pointer_expression "*(code **)(pbVar39 + -0x767c)" * (cast_expression "(code **)(pbVar39 + -0x767c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar39 + -0x767c)" ( (binary_expression "pbVar39 + -0x767c" identifier + number_literal) ))))) )) (argument_list "(output_section,relinfo->object,relinfo->data_shndx)" ( identifier , (field_expression "relinfo->object" identifier -> field_identifier) , (field_expression "relinfo->data_shndx" identifier -> field_identifier) )))) ;) (if_statement "if (AVar5 == 0xffffffff) goto LAB_00282cac;" if (parenthesized_expression "(AVar5 == 0xffffffff)" ( (binary_expression "AVar5 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00282cac;" goto statement_identifier ;)) (expression_statement "uVar14 = this->local_symbol_count_;" (assignment_expression "uVar14 = this->local_symbol_count_" identifier = (field_expression "this->local_symbol_count_" identifier -> field_identifier)) ;) })) (expression_statement "pbVar39 = pbVar41;" (assignment_expression "pbVar39 = pbVar41" identifier = identifier) ;) (expression_statement "uVar33 = uVar33 - uVar14;" (assignment_expression "uVar33 = uVar33 - uVar14" identifier = (binary_expression "uVar33 - uVar14" identifier - identifier)) ;) (expression_statement "uVar14 = *(uint *)(prelocs + 8);" (assignment_expression "uVar14 = *(uint *)(prelocs + 8)" identifier = (pointer_expression "*(uint *)(prelocs + 8)" * (cast_expression "(uint *)(prelocs + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 8)" ( (binary_expression "prelocs + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this);" (assignment_expression "piVar3 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this)" identifier = (cast_expression "(int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])(this)" (parenthesized_expression "(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d])" ( (pointer_expression "*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d]" * (subscript_expression "(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object[0x1d]" (field_expression "(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.\n                                _vptr_Object" (field_expression "(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<32,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<32,_true>)" ( (comma_expression "this->super_Sized_relobj<32,_true" (binary_expression "this->super_Sized_relobj<32" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) )) (argument_list "(this)" ( identifier ))))) ;) (expression_statement "puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;" (assignment_expression "puVar18 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_" identifier = (field_expression "(this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_" (field_expression "(this->super_Sized_relobj<32,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<32,_true>)" ( (comma_expression "this->super_Sized_relobj<32,_true" (binary_expression "this->super_Sized_relobj<32" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier)) ;) (if_statement "if (puVar18 == (uint *)0x0) {\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }" if (parenthesized_expression "(puVar18 == (uint *)0x0)" ( (binary_expression "puVar18 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar20 = 0x603;\nLAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );\n              }" { (expression_statement "uVar20 = 0x603;" (assignment_expression "uVar20 = 0x603" identifier = number_literal) ;) (labeled_statement "LAB_00282c84:\n                do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );" statement_identifier : (do_statement "do {\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                } while( true );" do (compound_statement "{\n                  (**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);\nLAB_00282c9c:\n                  uVar20 = 0x604;\n                }" { (expression_statement "(**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684);" (call_expression "(**(code **)(pbVar39 + -0x7810))\n                            (*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684)" (parenthesized_expression "(**(code **)(pbVar39 + -0x7810))" ( (pointer_expression "**(code **)(pbVar39 + -0x7810)" * (pointer_expression "*(code **)(pbVar39 + -0x7810)" * (cast_expression "(code **)(pbVar39 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar39 + -0x7810)" ( (binary_expression "pbVar39 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pbVar39 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pbVar39 + -0x7924) + -0x684)" ( (binary_expression "*(int *)(pbVar39 + -0x7fc4) + 0x4570" (pointer_expression "*(int *)(pbVar39 + -0x7fc4)" * (cast_expression "(int *)(pbVar39 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar39 + -0x7fc4)" ( (binary_expression "pbVar39 + -0x7fc4" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pbVar39 + -0x7924) + -0x684" (pointer_expression "*(int *)(pbVar39 + -0x7924)" * (cast_expression "(int *)(pbVar39 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar39 + -0x7924)" ( (binary_expression "pbVar39 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_00282c9c:\n                  uVar20 = 0x604;" statement_identifier : (expression_statement "uVar20 = 0x604;" (assignment_expression "uVar20 = 0x604" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;" (assignment_expression "puVar22 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_" identifier = (field_expression "(this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_" (field_expression "(this->super_Sized_relobj<32,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<32,_true>)" ( (comma_expression "this->super_Sized_relobj<32,_true" (binary_expression "this->super_Sized_relobj<32" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier)) ;) (if_statement "if (puVar22 == (uint *)0x0) goto LAB_00282c9c;" if (parenthesized_expression "(puVar22 == (uint *)0x0)" ( (binary_expression "puVar22 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00282c9c;" goto statement_identifier ;)) (if_statement "if ((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33) {\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }" if (parenthesized_expression "((uint)(piVar3[1] - *piVar3 >> 2) <= uVar33)" ( (binary_expression "(uint)(piVar3[1] - *piVar3 >> 2) <= uVar33" (call_expression "(uint)(piVar3[1] - *piVar3 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[1] - *piVar3 >> 2)" ( (binary_expression "piVar3[1] - *piVar3 >> 2" (binary_expression "piVar3[1] - *piVar3" (subscript_expression "piVar3[1]" identifier [ number_literal ]) - (pointer_expression "*piVar3" * identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                uVar20 = 0x605;\n                goto LAB_00282c84;\n              }" { (expression_statement "uVar20 = 0x605;" (assignment_expression "uVar20 = 0x605" identifier = number_literal) ;) (goto_statement "goto LAB_00282c84;" goto statement_identifier ;) })) (expression_statement "puVar18 = puVar18 + uVar33;" (assignment_expression "puVar18 = puVar18 + uVar33" identifier = (binary_expression "puVar18 + uVar33" identifier + identifier)) ;) (expression_statement "uVar4 = *puVar18;" (assignment_expression "uVar4 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "*puVar18 = uVar4 + 1;" (assignment_expression "*puVar18 = uVar4 + 1" (pointer_expression "*puVar18" * identifier) = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) (expression_statement "puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38);" (assignment_expression "puVar18 = (uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38)" identifier = (cast_expression "(uint *)(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38)" ( (binary_expression "local_34 + (uVar4 + puVar22[uVar33]) * 0x10 + local_38" (binary_expression "local_34 + (uVar4 + puVar22[uVar33]) * 0x10" identifier + (binary_expression "(uVar4 + puVar22[uVar33]) * 0x10" (parenthesized_expression "(uVar4 + puVar22[uVar33])" ( (binary_expression "uVar4 + puVar22[uVar33]" identifier + (subscript_expression "puVar22[uVar33]" identifier [ identifier ])) )) * number_literal)) + identifier) )))) ;) (expression_statement "*puVar18 = uVar34 & 0xff;" (assignment_expression "*puVar18 = uVar34 & 0xff" (pointer_expression "*puVar18" * identifier) = (binary_expression "uVar34 & 0xff" identifier & number_literal)) ;) (expression_statement "puVar18[1] = (uint)local_30;" (assignment_expression "puVar18[1] = (uint)local_30" (subscript_expression "puVar18[1]" identifier [ number_literal ]) = (cast_expression "(uint)local_30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar18[2] = (int)&of->name_ + AVar5;" (assignment_expression "puVar18[2] = (int)&of->name_ + AVar5" (subscript_expression "puVar18[2]" identifier [ number_literal ]) = (binary_expression "(int)&of->name_ + AVar5" (cast_expression "(int)&of->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&of->name_" & (field_expression "of->name_" identifier -> field_identifier))) + identifier)) ;) (expression_statement "puVar18[3] = uVar14;" (assignment_expression "puVar18[3] = uVar14" (subscript_expression "puVar18[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar41 = pbVar39;" (assignment_expression "pbVar41 = pbVar39" identifier = identifier) ;) })) (expression_statement "sVar21 = sVar21 + 1;" (assignment_expression "sVar21 = sVar21 + 1" identifier = (binary_expression "sVar21 + 1" identifier + number_literal)) ;) (expression_statement "prelocs = prelocs + 0xc;" (assignment_expression "prelocs = prelocs + 0xc" identifier = (binary_expression "prelocs + 0xc" identifier + number_literal)) ;) (if_statement "if (reloc_count == sVar21) {\n              return;\n            }" if (parenthesized_expression "(reloc_count == sVar21)" ( (binary_expression "reloc_count == sVar21" identifier == identifier) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (labeled_statement "LAB_00282cf0:\n      Output_file::get_output_view(pOVar17,CONCAT44(pbVar41,in_stack_ffffffc4),sVar21,pOVar26);" statement_identifier : (labeled_statement "Output_file::get_output_view(pOVar17,CONCAT44(pbVar41,in_stack_ffffffc4),sVar21,pOVar26);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view(pOVar17,CONCAT44(pbVar41,in_stack_ffffffc4),sVar21,pOVar26);" (call_expression "get_output_view(pOVar17,CONCAT44(pbVar41,in_stack_ffffffc4),sVar21,pOVar26)" identifier (argument_list "(pOVar17,CONCAT44(pbVar41,in_stack_ffffffc4),sVar21,pOVar26)" ( identifier , (call_expression "CONCAT44(pbVar41,in_stack_ffffffc4)" identifier (argument_list "(pbVar41,in_stack_ffffffc4)" ( identifier , identifier ))) , identifier , identifier ))) ;))) })) (expression_statement "(**(code **)(pbVar39 + -0x7810))\n              (*(int *)(pbVar39 + -0x7fc4) + 0x3574,0xcf,*(int *)(pbVar39 + -0x7924) + -0x500);" (call_expression "(**(code **)(pbVar39 + -0x7810))\n              (*(int *)(pbVar39 + -0x7fc4) + 0x3574,0xcf,*(int *)(pbVar39 + -0x7924) + -0x500)" (parenthesized_expression "(**(code **)(pbVar39 + -0x7810))" ( (pointer_expression "**(code **)(pbVar39 + -0x7810)" * (pointer_expression "*(code **)(pbVar39 + -0x7810)" * (cast_expression "(code **)(pbVar39 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar39 + -0x7810)" ( (binary_expression "pbVar39 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pbVar39 + -0x7fc4) + 0x3574,0xcf,*(int *)(pbVar39 + -0x7924) + -0x500)" ( (binary_expression "*(int *)(pbVar39 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pbVar39 + -0x7fc4)" * (cast_expression "(int *)(pbVar39 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar39 + -0x7fc4)" ( (binary_expression "pbVar39 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pbVar39 + -0x7924) + -0x500" (pointer_expression "*(int *)(pbVar39 + -0x7924)" * (cast_expression "(int *)(pbVar39 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar39 + -0x7924)" ( (binary_expression "pbVar39 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "iVar2 = 0xe3;" (assignment_expression "iVar2 = 0xe3" identifier = number_literal) ;) (expression_statement "pcVar37 = *(code **)(pbVar39 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pbVar39 + -0x7810)" identifier = (pointer_expression "*(code **)(pbVar39 + -0x7810)" * (cast_expression "(code **)(pbVar39 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar39 + -0x7810)" ( (binary_expression "pbVar39 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "puVar18 = (uint *)(*(int *)(pbVar39 + -0x7924) + -0x4f4);" (assignment_expression "puVar18 = (uint *)(*(int *)(pbVar39 + -0x7924) + -0x4f4)" identifier = (cast_expression "(uint *)(*(int *)(pbVar39 + -0x7924) + -0x4f4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar39 + -0x7924) + -0x4f4)" ( (binary_expression "*(int *)(pbVar39 + -0x7924) + -0x4f4" (pointer_expression "*(int *)(pbVar39 + -0x7924)" * (cast_expression "(int *)(pbVar39 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar39 + -0x7924)" ( (binary_expression "pbVar39 + -0x7924" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar3 = (int *)(*(int *)(pbVar39 + -0x7fc4) + 0x3574);" (assignment_expression "piVar3 = (int *)(*(int *)(pbVar39 + -0x7fc4) + 0x3574)" identifier = (cast_expression "(int *)(*(int *)(pbVar39 + -0x7fc4) + 0x3574)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar39 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(pbVar39 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pbVar39 + -0x7fc4)" * (cast_expression "(int *)(pbVar39 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar39 + -0x7fc4)" ( (binary_expression "pbVar39 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar40 = pcVar37 + 0x246508;" (assignment_expression "pcVar40 = pcVar37 + 0x246508" identifier = (binary_expression "pcVar37 + 0x246508" identifier + number_literal)) ;) (expression_statement "pOVar26 = pOVar29;" (assignment_expression "pOVar26 = pOVar29" identifier = identifier) ;) (if_statement "if (*(code **)(*(int *)pbVar41 + 0x2c) == *(code **)(pcVar37 + 0x23f464)) {\n    uVar14 = *(uint *)(pbVar41 + 100);\n    iVar27 = *(int *)(pcVar37 + 0x23ebe4);\n    pcVar37 = pcVar40;\n    if (uVar14 == 0xffffffff) goto LAB_00283058;\n  }\n  else {\n    uVar14 = (**(code **)(*(int *)pbVar41 + 0x2c))(pbVar41);\n  }" if (parenthesized_expression "(*(code **)(*(int *)pbVar41 + 0x2c) == *(code **)(pcVar37 + 0x23f464))" ( (binary_expression "*(code **)(*(int *)pbVar41 + 0x2c) == *(code **)(pcVar37 + 0x23f464)" (pointer_expression "*(code **)(*(int *)pbVar41 + 0x2c)" * (cast_expression "(code **)(*(int *)pbVar41 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pbVar41 + 0x2c)" ( (binary_expression "*(int *)pbVar41 + 0x2c" (pointer_expression "*(int *)pbVar41" * (cast_expression "(int *)pbVar41" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (pointer_expression "*(code **)(pcVar37 + 0x23f464)" * (cast_expression "(code **)(pcVar37 + 0x23f464)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x23f464)" ( (binary_expression "pcVar37 + 0x23f464" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar14 = *(uint *)(pbVar41 + 100);\n    iVar27 = *(int *)(pcVar37 + 0x23ebe4);\n    pcVar37 = pcVar40;\n    if (uVar14 == 0xffffffff) goto LAB_00283058;\n  }" { (expression_statement "uVar14 = *(uint *)(pbVar41 + 100);" (assignment_expression "uVar14 = *(uint *)(pbVar41 + 100)" identifier = (pointer_expression "*(uint *)(pbVar41 + 100)" * (cast_expression "(uint *)(pbVar41 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar41 + 100)" ( (binary_expression "pbVar41 + 100" identifier + number_literal) ))))) ;) (expression_statement "iVar27 = *(int *)(pcVar37 + 0x23ebe4);" (assignment_expression "iVar27 = *(int *)(pcVar37 + 0x23ebe4)" identifier = (pointer_expression "*(int *)(pcVar37 + 0x23ebe4)" * (cast_expression "(int *)(pcVar37 + 0x23ebe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x23ebe4)" ( (binary_expression "pcVar37 + 0x23ebe4" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = pcVar40;" (assignment_expression "pcVar37 = pcVar40" identifier = identifier) ;) (if_statement "if (uVar14 == 0xffffffff) goto LAB_00283058;" if (parenthesized_expression "(uVar14 == 0xffffffff)" ( (binary_expression "uVar14 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00283058;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar14 = (**(code **)(*(int *)pbVar41 + 0x2c))(pbVar41);\n  }" else (compound_statement "{\n    uVar14 = (**(code **)(*(int *)pbVar41 + 0x2c))(pbVar41);\n  }" { (expression_statement "uVar14 = (**(code **)(*(int *)pbVar41 + 0x2c))(pbVar41);" (assignment_expression "uVar14 = (**(code **)(*(int *)pbVar41 + 0x2c))(pbVar41)" identifier = (call_expression "(**(code **)(*(int *)pbVar41 + 0x2c))(pbVar41)" (parenthesized_expression "(**(code **)(*(int *)pbVar41 + 0x2c))" ( (pointer_expression "**(code **)(*(int *)pbVar41 + 0x2c)" * (pointer_expression "*(code **)(*(int *)pbVar41 + 0x2c)" * (cast_expression "(code **)(*(int *)pbVar41 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pbVar41 + 0x2c)" ( (binary_expression "*(int *)pbVar41 + 0x2c" (pointer_expression "*(int *)pbVar41" * (cast_expression "(int *)pbVar41" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pbVar41)" ( identifier )))) ;) }))) (expression_statement "iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc);" (assignment_expression "iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc)" identifier = (pointer_expression "*(int *)(*(int *)(iVar2 + 4) + 0x1dc)" * (cast_expression "(int *)(*(int *)(iVar2 + 4) + 0x1dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 4) + 0x1dc)" ( (binary_expression "*(int *)(iVar2 + 4) + 0x1dc" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar20 = 0x44e;" (assignment_expression "uVar20 = 0x44e" identifier = number_literal) ;) (if_statement "if (iVar27 == 0) goto LAB_00283024;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00283024;" goto statement_identifier ;)) (expression_statement "pOVar17 = *(Output_file **)(iVar27 + 0x3c);" (assignment_expression "pOVar17 = *(Output_file **)(iVar27 + 0x3c)" identifier = (pointer_expression "*(Output_file **)(iVar27 + 0x3c)" * (cast_expression "(Output_file **)(iVar27 + 0x3c)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = pcVar40;" (assignment_expression "pcVar37 = pcVar40" identifier = identifier) ;) (if_statement "if (*(int *)&pOVar17[1].file_size_ << 2 < 0) {\n    pOStack_88 = (Output_file *)pOVar17[1].o_;\n    pcVar23 = pOVar17[1].name_;\n    if (*(int *)&pOVar17[1].file_size_ << 1 < 0) {\n      pbVar39 = &pOVar17->map_is_anonymous_;\n      pOVar28 = pOStack_88;\n      if (-1 < (int)pcVar23) {\n        pOVar28 = (Output_file *)((int)&pOStack_88->name_ + (int)&(*(Output_file **)pbVar39)->name_)\n        ;\n        pOVar17 = *(Output_file **)&local_30->file_size_;\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar28 < *(Output_file **)pbVar39));\n        pcVar23 = (char *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283070;\nLAB_00282e20:\n          puStack_84 = local_30->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          pOStack_80 = (Output_file *)\n                       ((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000);\n          do {\n            uVar34 = puVar18[3];\n            uVar33 = puVar18[2];\n            uVar14 = piVar3[0x2e];\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            if (uVar14 <= uVar34) {\n              uVar30 = *puVar18;\n              uVar4 = puVar18[1];\n              local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }\n              uVar34 = uVar34 - uVar14;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283018;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_00283000;\n              iVar16 = uVar34 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar16);\n              iVar7 = *piVar6;\n              *piVar6 = iVar7 + 1;\n              pOVar26 = (Output_file *)0x0;\n              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (int)pOStack_80;\n              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;\n              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              pcVar37 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 4;\n            if (pOVar29 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283080:\n      Output_file::get_output_view\n                (pOVar17,CONCAT44(pcVar37,in_stack_ffffff74),(size_t)pcVar23,pOVar28);\n    }\n    (**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);\n  }" if (parenthesized_expression "(*(int *)&pOVar17[1].file_size_ << 2 < 0)" ( (binary_expression "*(int *)&pOVar17[1].file_size_ << 2 < 0" (binary_expression "*(int *)&pOVar17[1].file_size_ << 2" (pointer_expression "*(int *)&pOVar17[1].file_size_" * (cast_expression "(int *)&pOVar17[1].file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar17[1].file_size_" & (field_expression "pOVar17[1].file_size_" (subscript_expression "pOVar17[1]" identifier [ number_literal ]) . field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n    pOStack_88 = (Output_file *)pOVar17[1].o_;\n    pcVar23 = pOVar17[1].name_;\n    if (*(int *)&pOVar17[1].file_size_ << 1 < 0) {\n      pbVar39 = &pOVar17->map_is_anonymous_;\n      pOVar28 = pOStack_88;\n      if (-1 < (int)pcVar23) {\n        pOVar28 = (Output_file *)((int)&pOStack_88->name_ + (int)&(*(Output_file **)pbVar39)->name_)\n        ;\n        pOVar17 = *(Output_file **)&local_30->file_size_;\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar28 < *(Output_file **)pbVar39));\n        pcVar23 = (char *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283070;\nLAB_00282e20:\n          puStack_84 = local_30->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          pOStack_80 = (Output_file *)\n                       ((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000);\n          do {\n            uVar34 = puVar18[3];\n            uVar33 = puVar18[2];\n            uVar14 = piVar3[0x2e];\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            if (uVar14 <= uVar34) {\n              uVar30 = *puVar18;\n              uVar4 = puVar18[1];\n              local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }\n              uVar34 = uVar34 - uVar14;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283018;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_00283000;\n              iVar16 = uVar34 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar16);\n              iVar7 = *piVar6;\n              *piVar6 = iVar7 + 1;\n              pOVar26 = (Output_file *)0x0;\n              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (int)pOStack_80;\n              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;\n              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              pcVar37 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 4;\n            if (pOVar29 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283080:\n      Output_file::get_output_view\n                (pOVar17,CONCAT44(pcVar37,in_stack_ffffff74),(size_t)pcVar23,pOVar28);\n    }\n    (**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);\n  }" { (expression_statement "pOStack_88 = (Output_file *)pOVar17[1].o_;" (assignment_expression "pOStack_88 = (Output_file *)pOVar17[1].o_" identifier = (cast_expression "(Output_file *)pOVar17[1].o_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar17[1].o_" (subscript_expression "pOVar17[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pcVar23 = pOVar17[1].name_;" (assignment_expression "pcVar23 = pOVar17[1].name_" identifier = (field_expression "pOVar17[1].name_" (subscript_expression "pOVar17[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (*(int *)&pOVar17[1].file_size_ << 1 < 0) {\n      pbVar39 = &pOVar17->map_is_anonymous_;\n      pOVar28 = pOStack_88;\n      if (-1 < (int)pcVar23) {\n        pOVar28 = (Output_file *)((int)&pOStack_88->name_ + (int)&(*(Output_file **)pbVar39)->name_)\n        ;\n        pOVar17 = *(Output_file **)&local_30->file_size_;\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar28 < *(Output_file **)pbVar39));\n        pcVar23 = (char *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283070;\nLAB_00282e20:\n          puStack_84 = local_30->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          pOStack_80 = (Output_file *)\n                       ((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000);\n          do {\n            uVar34 = puVar18[3];\n            uVar33 = puVar18[2];\n            uVar14 = piVar3[0x2e];\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            if (uVar14 <= uVar34) {\n              uVar30 = *puVar18;\n              uVar4 = puVar18[1];\n              local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }\n              uVar34 = uVar34 - uVar14;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283018;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_00283000;\n              iVar16 = uVar34 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar16);\n              iVar7 = *piVar6;\n              *piVar6 = iVar7 + 1;\n              pOVar26 = (Output_file *)0x0;\n              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (int)pOStack_80;\n              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;\n              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              pcVar37 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 4;\n            if (pOVar29 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283080:\n      Output_file::get_output_view\n                (pOVar17,CONCAT44(pcVar37,in_stack_ffffff74),(size_t)pcVar23,pOVar28);\n    }" if (parenthesized_expression "(*(int *)&pOVar17[1].file_size_ << 1 < 0)" ( (binary_expression "*(int *)&pOVar17[1].file_size_ << 1 < 0" (binary_expression "*(int *)&pOVar17[1].file_size_ << 1" (pointer_expression "*(int *)&pOVar17[1].file_size_" * (cast_expression "(int *)&pOVar17[1].file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar17[1].file_size_" & (field_expression "pOVar17[1].file_size_" (subscript_expression "pOVar17[1]" identifier [ number_literal ]) . field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n      pbVar39 = &pOVar17->map_is_anonymous_;\n      pOVar28 = pOStack_88;\n      if (-1 < (int)pcVar23) {\n        pOVar28 = (Output_file *)((int)&pOStack_88->name_ + (int)&(*(Output_file **)pbVar39)->name_)\n        ;\n        pOVar17 = *(Output_file **)&local_30->file_size_;\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar28 < *(Output_file **)pbVar39));\n        pcVar23 = (char *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283070;\nLAB_00282e20:\n          puStack_84 = local_30->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          pOStack_80 = (Output_file *)\n                       ((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000);\n          do {\n            uVar34 = puVar18[3];\n            uVar33 = puVar18[2];\n            uVar14 = piVar3[0x2e];\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            if (uVar14 <= uVar34) {\n              uVar30 = *puVar18;\n              uVar4 = puVar18[1];\n              local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }\n              uVar34 = uVar34 - uVar14;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283018;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_00283000;\n              iVar16 = uVar34 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar16);\n              iVar7 = *piVar6;\n              *piVar6 = iVar7 + 1;\n              pOVar26 = (Output_file *)0x0;\n              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (int)pOStack_80;\n              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;\n              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              pcVar37 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 4;\n            if (pOVar29 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283080:\n      Output_file::get_output_view\n                (pOVar17,CONCAT44(pcVar37,in_stack_ffffff74),(size_t)pcVar23,pOVar28);\n    }" { (expression_statement "pbVar39 = &pOVar17->map_is_anonymous_;" (assignment_expression "pbVar39 = &pOVar17->map_is_anonymous_" identifier = (pointer_expression "&pOVar17->map_is_anonymous_" & (field_expression "pOVar17->map_is_anonymous_" identifier -> field_identifier))) ;) (expression_statement "pOVar28 = pOStack_88;" (assignment_expression "pOVar28 = pOStack_88" identifier = identifier) ;) (if_statement "if (-1 < (int)pcVar23) {\n        pOVar28 = (Output_file *)((int)&pOStack_88->name_ + (int)&(*(Output_file **)pbVar39)->name_)\n        ;\n        pOVar17 = *(Output_file **)&local_30->file_size_;\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar28 < *(Output_file **)pbVar39));\n        pcVar23 = (char *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283070;\nLAB_00282e20:\n          puStack_84 = local_30->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          pOStack_80 = (Output_file *)\n                       ((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000);\n          do {\n            uVar34 = puVar18[3];\n            uVar33 = puVar18[2];\n            uVar14 = piVar3[0x2e];\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            if (uVar14 <= uVar34) {\n              uVar30 = *puVar18;\n              uVar4 = puVar18[1];\n              local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }\n              uVar34 = uVar34 - uVar14;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283018;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_00283000;\n              iVar16 = uVar34 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar16);\n              iVar7 = *piVar6;\n              *piVar6 = iVar7 + 1;\n              pOVar26 = (Output_file *)0x0;\n              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (int)pOStack_80;\n              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;\n              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              pcVar37 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 4;\n            if (pOVar29 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }" if (parenthesized_expression "(-1 < (int)pcVar23)" ( (binary_expression "-1 < (int)pcVar23" number_literal < (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pOVar28 = (Output_file *)((int)&pOStack_88->name_ + (int)&(*(Output_file **)pbVar39)->name_)\n        ;\n        pOVar17 = *(Output_file **)&local_30->file_size_;\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar28 < *(Output_file **)pbVar39));\n        pcVar23 = (char *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283070;\nLAB_00282e20:\n          puStack_84 = local_30->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          pOStack_80 = (Output_file *)\n                       ((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000);\n          do {\n            uVar34 = puVar18[3];\n            uVar33 = puVar18[2];\n            uVar14 = piVar3[0x2e];\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            if (uVar14 <= uVar34) {\n              uVar30 = *puVar18;\n              uVar4 = puVar18[1];\n              local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }\n              uVar34 = uVar34 - uVar14;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283018;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_00283000;\n              iVar16 = uVar34 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar16);\n              iVar7 = *piVar6;\n              *piVar6 = iVar7 + 1;\n              pOVar26 = (Output_file *)0x0;\n              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (int)pOStack_80;\n              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;\n              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              pcVar37 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 4;\n            if (pOVar29 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }" { (expression_statement "pOVar28 = (Output_file *)((int)&pOStack_88->name_ + (int)&(*(Output_file **)pbVar39)->name_)\n        ;" (assignment_expression "pOVar28 = (Output_file *)((int)&pOStack_88->name_ + (int)&(*(Output_file **)pbVar39)->name_)" identifier = (cast_expression "(Output_file *)((int)&pOStack_88->name_ + (int)&(*(Output_file **)pbVar39)->name_)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOStack_88->name_ + (int)&(*(Output_file **)pbVar39)->name_)" ( (binary_expression "(int)&pOStack_88->name_ + (int)&(*(Output_file **)pbVar39)->name_" (cast_expression "(int)&pOStack_88->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOStack_88->name_" & (field_expression "pOStack_88->name_" identifier -> field_identifier))) + (cast_expression "(int)&(*(Output_file **)pbVar39)->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(*(Output_file **)pbVar39)->name_" & (field_expression "(*(Output_file **)pbVar39)->name_" (parenthesized_expression "(*(Output_file **)pbVar39)" ( (pointer_expression "*(Output_file **)pbVar39" * (cast_expression "(Output_file **)pbVar39" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) )) -> field_identifier)))) )))) ;) (expression_statement "pOVar17 = *(Output_file **)&local_30->file_size_;" (assignment_expression "pOVar17 = *(Output_file **)&local_30->file_size_" identifier = (pointer_expression "*(Output_file **)&local_30->file_size_" * (cast_expression "(Output_file **)&local_30->file_size_" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_30->file_size_" & (field_expression "local_30->file_size_" identifier -> field_identifier))))) ;) (expression_statement "pOVar15 = (Output_file *)(pcVar23 + (pOVar28 < *(Output_file **)pbVar39));" (assignment_expression "pOVar15 = (Output_file *)(pcVar23 + (pOVar28 < *(Output_file **)pbVar39))" identifier = (cast_expression "(Output_file *)(pcVar23 + (pOVar28 < *(Output_file **)pbVar39))" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + (pOVar28 < *(Output_file **)pbVar39))" ( (binary_expression "pcVar23 + (pOVar28 < *(Output_file **)pbVar39)" identifier + (parenthesized_expression "(pOVar28 < *(Output_file **)pbVar39)" ( (binary_expression "pOVar28 < *(Output_file **)pbVar39" identifier < (pointer_expression "*(Output_file **)pbVar39" * (cast_expression "(Output_file **)pbVar39" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ))) )))) ;) (expression_statement "pcVar23 = (char *)(uint)((int)pOVar17 < (int)pOVar15);" (assignment_expression "pcVar23 = (char *)(uint)((int)pOVar17 < (int)pOVar15)" identifier = (cast_expression "(char *)(uint)((int)pOVar17 < (int)pOVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)pOVar17 < (int)pOVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pOVar17 < (int)pOVar15)" ( (binary_expression "(int)pOVar17 < (int)pOVar15" (cast_expression "(int)pOVar17" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pOVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (pcVar23 == (char *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283070;\nLAB_00282e20:\n          puStack_84 = local_30->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          pOStack_80 = (Output_file *)\n                       ((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000);\n          do {\n            uVar34 = puVar18[3];\n            uVar33 = puVar18[2];\n            uVar14 = piVar3[0x2e];\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            if (uVar14 <= uVar34) {\n              uVar30 = *puVar18;\n              uVar4 = puVar18[1];\n              local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }\n              uVar34 = uVar34 - uVar14;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283018;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_00283000;\n              iVar16 = uVar34 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar16);\n              iVar7 = *piVar6;\n              *piVar6 = iVar7 + 1;\n              pOVar26 = (Output_file *)0x0;\n              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (int)pOStack_80;\n              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;\n              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              pcVar37 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 4;\n            if (pOVar29 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }" if (parenthesized_expression "(pcVar23 == (char *)0x0)" ( (binary_expression "pcVar23 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pOVar17 == pOVar15) goto LAB_00283070;\nLAB_00282e20:\n          puStack_84 = local_30->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          pOStack_80 = (Output_file *)\n                       ((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000);\n          do {\n            uVar34 = puVar18[3];\n            uVar33 = puVar18[2];\n            uVar14 = piVar3[0x2e];\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            if (uVar14 <= uVar34) {\n              uVar30 = *puVar18;\n              uVar4 = puVar18[1];\n              local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }\n              uVar34 = uVar34 - uVar14;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283018;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_00283000;\n              iVar16 = uVar34 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar16);\n              iVar7 = *piVar6;\n              *piVar6 = iVar7 + 1;\n              pOVar26 = (Output_file *)0x0;\n              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (int)pOStack_80;\n              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;\n              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              pcVar37 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 4;\n            if (pOVar29 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }" { (if_statement "if (pOVar17 == pOVar15) goto LAB_00283070;" if (parenthesized_expression "(pOVar17 == pOVar15)" ( (binary_expression "pOVar17 == pOVar15" identifier == identifier) )) (goto_statement "goto LAB_00283070;" goto statement_identifier ;)) (labeled_statement "LAB_00282e20:\n          puStack_84 = local_30->base_;" statement_identifier : (expression_statement "puStack_84 = local_30->base_;" (assignment_expression "puStack_84 = local_30->base_" identifier = (field_expression "local_30->base_" identifier -> field_identifier)) ;)) (expression_statement "pOVar17 = (Output_file *)0x0;" (assignment_expression "pOVar17 = (Output_file *)0x0" identifier = (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }" if (parenthesized_expression "(pOVar29 == (Output_file *)0x0)" ( (binary_expression "pOVar29 == (Output_file *)0x0" identifier == (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "pOStack_80 = (Output_file *)\n                       ((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000);" (assignment_expression "pOStack_80 = (Output_file *)\n                       ((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000)" identifier = (cast_expression "(Output_file *)\n                       ((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000)" ( (binary_expression "(((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10)" ( (binary_expression "(uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10" (binary_expression "(uVar14 >> 0x10) << 0x18" (parenthesized_expression "(uVar14 >> 0x10)" ( (binary_expression "uVar14 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar14 >> 0x18) << 0x10" (parenthesized_expression "(uVar14 >> 0x18)" ( (binary_expression "uVar14 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff)" ( (binary_expression "(uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff" (binary_expression "(uVar14 & 0xff) << 8" (parenthesized_expression "(uVar14 & 0xff)" ( (binary_expression "uVar14 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar14 >> 8 & 0xff" (binary_expression "uVar14 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal)) )))) ;) (do_statement "do {\n            uVar34 = puVar18[3];\n            uVar33 = puVar18[2];\n            uVar14 = piVar3[0x2e];\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            if (uVar14 <= uVar34) {\n              uVar30 = *puVar18;\n              uVar4 = puVar18[1];\n              local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }\n              uVar34 = uVar34 - uVar14;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283018;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_00283000;\n              iVar16 = uVar34 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar16);\n              iVar7 = *piVar6;\n              *piVar6 = iVar7 + 1;\n              pOVar26 = (Output_file *)0x0;\n              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (int)pOStack_80;\n              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;\n              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              pcVar37 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 4;\n            if (pOVar29 == pOVar17) {\n              return;\n            }\n          } while( true );" do (compound_statement "{\n            uVar34 = puVar18[3];\n            uVar33 = puVar18[2];\n            uVar14 = piVar3[0x2e];\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            if (uVar14 <= uVar34) {\n              uVar30 = *puVar18;\n              uVar4 = puVar18[1];\n              local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }\n              uVar34 = uVar34 - uVar14;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283018;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_00283000;\n              iVar16 = uVar34 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar16);\n              iVar7 = *piVar6;\n              *piVar6 = iVar7 + 1;\n              pOVar26 = (Output_file *)0x0;\n              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (int)pOStack_80;\n              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;\n              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              pcVar37 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 4;\n            if (pOVar29 == pOVar17) {\n              return;\n            }\n          }" { (expression_statement "uVar34 = puVar18[3];" (assignment_expression "uVar34 = puVar18[3]" identifier = (subscript_expression "puVar18[3]" identifier [ number_literal ])) ;) (expression_statement "uVar33 = puVar18[2];" (assignment_expression "uVar33 = puVar18[2]" identifier = (subscript_expression "puVar18[2]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = piVar3[0x2e];" (assignment_expression "uVar14 = piVar3[0x2e]" identifier = (subscript_expression "piVar3[0x2e]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10)" ( (binary_expression "(uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10" (binary_expression "(uVar34 >> 0x10) << 0x18" (parenthesized_expression "(uVar34 >> 0x10)" ( (binary_expression "uVar34 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar34 >> 0x18) << 0x10" (parenthesized_expression "(uVar34 >> 0x18)" ( (binary_expression "uVar34 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff)" ( (binary_expression "(uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff" (binary_expression "(uVar34 & 0xff) << 8" (parenthesized_expression "(uVar34 & 0xff)" ( (binary_expression "uVar34 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar34 >> 8 & 0xff" (binary_expression "uVar34 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10)" ( (binary_expression "(uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10" (binary_expression "(uVar33 >> 0x10) << 0x18" (parenthesized_expression "(uVar33 >> 0x10)" ( (binary_expression "uVar33 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar33 >> 0x18) << 0x10" (parenthesized_expression "(uVar33 >> 0x18)" ( (binary_expression "uVar33 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff)" ( (binary_expression "(uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff" (binary_expression "(uVar33 & 0xff) << 8" (parenthesized_expression "(uVar33 & 0xff)" ( (binary_expression "uVar33 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar33 >> 8 & 0xff" (binary_expression "uVar33 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (if_statement "if (uVar14 <= uVar34) {\n              uVar30 = *puVar18;\n              uVar4 = puVar18[1];\n              local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }\n              uVar34 = uVar34 - uVar14;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283018;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_00283000;\n              iVar16 = uVar34 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar16);\n              iVar7 = *piVar6;\n              *piVar6 = iVar7 + 1;\n              pOVar26 = (Output_file *)0x0;\n              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (int)pOStack_80;\n              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;\n              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              pcVar37 = pcVar40;\n            }" if (parenthesized_expression "(uVar14 <= uVar34)" ( (binary_expression "uVar14 <= uVar34" identifier <= identifier) )) (compound_statement "{\n              uVar30 = *puVar18;\n              uVar4 = puVar18[1];\n              local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }\n              uVar34 = uVar34 - uVar14;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283018;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_00283000;\n              iVar16 = uVar34 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar16);\n              iVar7 = *piVar6;\n              *piVar6 = iVar7 + 1;\n              pOVar26 = (Output_file *)0x0;\n              piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (int)pOStack_80;\n              piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;\n              piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n              pcVar37 = pcVar40;\n            }" { (expression_statement "uVar30 = *puVar18;" (assignment_expression "uVar30 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "uVar4 = puVar18[1];" (assignment_expression "uVar4 = puVar18[1]" identifier = (subscript_expression "puVar18[1]" identifier [ number_literal ])) ;) (expression_statement "local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000);" (assignment_expression "local_30 = (Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000)" identifier = (cast_expression "(Output_file *)\n                         ((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000)" ( (binary_expression "(((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                         ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10)" ( (binary_expression "(uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10" (binary_expression "(uVar30 >> 0x10) << 0x18" (parenthesized_expression "(uVar30 >> 0x10)" ( (binary_expression "uVar30 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar30 >> 0x18) << 0x10" (parenthesized_expression "(uVar30 >> 0x18)" ( (binary_expression "uVar30 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff)" ( (binary_expression "(uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff" (binary_expression "(uVar30 & 0xff) << 8" (parenthesized_expression "(uVar30 & 0xff)" ( (binary_expression "uVar30 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar30 >> 8 & 0xff" (binary_expression "uVar30 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal)) )))) ;) (expression_statement "iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar27 = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10)" ( (binary_expression "(uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10" (binary_expression "(uVar4 >> 0x10) << 0x18" (parenthesized_expression "(uVar4 >> 0x10)" ( (binary_expression "uVar4 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar4 >> 0x18) << 0x10" (parenthesized_expression "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff)" ( (binary_expression "(uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff" (binary_expression "(uVar4 & 0xff) << 8" (parenthesized_expression "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (if_statement "if ((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)) {\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }" if (parenthesized_expression "((local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff))" ( (binary_expression "(local_38 == 0xffffffff) && (local_34 == (uchar *)0xffffffff)" (parenthesized_expression "(local_38 == 0xffffffff)" ( (binary_expression "local_38 == 0xffffffff" identifier == number_literal) )) && (parenthesized_expression "(local_34 == (uchar *)0xffffffff)" ( (binary_expression "local_34 == (uchar *)0xffffffff" identifier == (cast_expression "(uchar *)0xffffffff" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;\n                pOVar26 = local_30;\n                puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;\n                uVar14 = piVar3[0x2e];\n                puVar31 = puVar8 + (int)local_30;\n                uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;\n              }" { (if_statement "if (iVar27 != (int)local_30 >> 0x1f) goto LAB_0028303c;" if (parenthesized_expression "(iVar27 != (int)local_30 >> 0x1f)" ( (binary_expression "iVar27 != (int)local_30 >> 0x1f" identifier != (binary_expression "(int)local_30 >> 0x1f" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) (goto_statement "goto LAB_0028303c;" goto statement_identifier ;)) (expression_statement "pOVar26 = local_30;" (assignment_expression "pOVar26 = local_30" identifier = identifier) ;) (expression_statement "puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));" (assignment_expression "puVar8 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18))" identifier = (cast_expression "(uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18))" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar40 + -0x767c))\n                                            (pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18))" (parenthesized_expression "(**(code **)(pcVar40 + -0x767c))" ( (pointer_expression "**(code **)(pcVar40 + -0x767c)" * (pointer_expression "*(code **)(pcVar40 + -0x767c)" * (cast_expression "(code **)(pcVar40 + -0x767c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x767c)" ( (binary_expression "pcVar40 + -0x767c" identifier + number_literal) ))))) )) (argument_list "(pbVar41,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18))" ( identifier , (pointer_expression "*(undefined4 *)(iVar2 + 8)" * (cast_expression "(undefined4 *)(iVar2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar2 + 0x18)" * (cast_expression "(undefined4 *)(iVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) ))))) ;) (expression_statement "pcVar40 = pcVar37;" (assignment_expression "pcVar40 = pcVar37" identifier = identifier) ;) (if_statement "if (puVar8 == (uchar *)0xffffffff) goto LAB_00283020;" if (parenthesized_expression "(puVar8 == (uchar *)0xffffffff)" ( (binary_expression "puVar8 == (uchar *)0xffffffff" identifier == (cast_expression "(uchar *)0xffffffff" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00283020;" goto statement_identifier ;)) (expression_statement "uVar14 = piVar3[0x2e];" (assignment_expression "uVar14 = piVar3[0x2e]" identifier = (subscript_expression "piVar3[0x2e]" identifier [ number_literal ])) ;) (expression_statement "puVar31 = puVar8 + (int)local_30;" (assignment_expression "puVar31 = puVar8 + (int)local_30" identifier = (binary_expression "puVar8 + (int)local_30" identifier + (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27;" (assignment_expression "uVar4 = (uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27" identifier = (binary_expression "(uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f) + iVar27" (binary_expression "(uint)(puVar31 < puVar8) + ((int)puVar8 >> 0x1f)" (call_expression "(uint)(puVar31 < puVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 < puVar8)" ( (binary_expression "puVar31 < puVar8" identifier < identifier) ))) + (parenthesized_expression "((int)puVar8 >> 0x1f)" ( (binary_expression "(int)puVar8 >> 0x1f" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + identifier)) ;) }) (else_clause "else {\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }" else (compound_statement "{\n                puVar31 = local_34 + (int)local_30;\n                uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;\n                pcVar40 = pcVar37;\n              }" { (expression_statement "puVar31 = local_34 + (int)local_30;" (assignment_expression "puVar31 = local_34 + (int)local_30" identifier = (binary_expression "local_34 + (int)local_30" identifier + (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27;" (assignment_expression "uVar4 = (uint)(puVar31 < local_34) + local_38 + iVar27" identifier = (binary_expression "(uint)(puVar31 < local_34) + local_38 + iVar27" (binary_expression "(uint)(puVar31 < local_34) + local_38" (call_expression "(uint)(puVar31 < local_34)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 < local_34)" ( (binary_expression "puVar31 < local_34" identifier < identifier) ))) + identifier) + identifier)) ;) (expression_statement "pcVar40 = pcVar37;" (assignment_expression "pcVar40 = pcVar37" identifier = identifier) ;) }))) (expression_statement "uVar34 = uVar34 - uVar14;" (assignment_expression "uVar34 = uVar34 - uVar14" identifier = (binary_expression "uVar34 - uVar14" identifier - identifier)) ;) (expression_statement "piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);" (assignment_expression "piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3)" identifier = (cast_expression "(int *)(**(code **)(*piVar3 + 0x74))(piVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar3 + 0x74))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0x74))" ( (pointer_expression "**(code **)(*piVar3 + 0x74)" * (pointer_expression "*(code **)(*piVar3 + 0x74)" * (cast_expression "(code **)(*piVar3 + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x74)" ( (binary_expression "*piVar3 + 0x74" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))))) ;) (if_statement "if (piVar3[0x16] == 0) goto LAB_00283018;" if (parenthesized_expression "(piVar3[0x16] == 0)" ( (binary_expression "piVar3[0x16] == 0" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00283018;" goto statement_identifier ;)) (expression_statement "iVar27 = piVar3[0x17];" (assignment_expression "iVar27 = piVar3[0x17]" identifier = (subscript_expression "piVar3[0x17]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = 0x604;" (assignment_expression "uVar20 = 0x604" identifier = number_literal) ;) (if_statement "if (iVar27 == 0) goto LAB_00283000;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00283000;" goto statement_identifier ;)) (expression_statement "iVar16 = uVar34 * 4;" (assignment_expression "iVar16 = uVar34 * 4" identifier = (binary_expression "uVar34 * 4" identifier * number_literal)) ;) (if_statement "if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34) {\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }" if (parenthesized_expression "((uint)(piVar6[1] - *piVar6 >> 2) <= uVar34)" ( (binary_expression "(uint)(piVar6[1] - *piVar6 >> 2) <= uVar34" (call_expression "(uint)(piVar6[1] - *piVar6 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar6[1] - *piVar6 >> 2)" ( (binary_expression "piVar6[1] - *piVar6 >> 2" (binary_expression "piVar6[1] - *piVar6" (subscript_expression "piVar6[1]" identifier [ number_literal ]) - (pointer_expression "*piVar6" * identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                uVar20 = 0x605;\nLAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );\n              }" { (expression_statement "uVar20 = 0x605;" (assignment_expression "uVar20 = 0x605" identifier = number_literal) ;) (labeled_statement "LAB_00283000:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );" statement_identifier : (do_statement "do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                } while( true );" do (compound_statement "{\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283018:\n                  uVar20 = 0x603;\n                }" { (expression_statement "(**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);" (call_expression "(**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x4570" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x684" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_00283018:\n                  uVar20 = 0x603;" statement_identifier : (expression_statement "uVar20 = 0x603;" (assignment_expression "uVar20 = 0x603" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "piVar6 = (int *)(piVar3[0x16] + iVar16);" (assignment_expression "piVar6 = (int *)(piVar3[0x16] + iVar16)" identifier = (cast_expression "(int *)(piVar3[0x16] + iVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0x16] + iVar16)" ( (binary_expression "piVar3[0x16] + iVar16" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "*piVar6 = iVar7 + 1;" (assignment_expression "*piVar6 = iVar7 + 1" (pointer_expression "*piVar6" * identifier) = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "pOVar26 = (Output_file *)0x0;" (assignment_expression "pOVar26 = (Output_file *)0x0" identifier = (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)));" (assignment_expression "piVar6 = (int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)))" identifier = (cast_expression "(int *)(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)))" ( (binary_expression "puStack_84 + (int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16))" identifier + (cast_expression "(int)(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16))" ( (binary_expression "pOStack_88 + iVar7 + *(int *)(iVar27 + iVar16)" (binary_expression "pOStack_88 + iVar7" identifier + identifier) + (pointer_expression "*(int *)(iVar27 + iVar16)" * (cast_expression "(int *)(iVar27 + iVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + iVar16)" ( (binary_expression "iVar27 + iVar16" identifier + identifier) ))))) )))) )))) ;) (expression_statement "piVar6[5] = 0;" (assignment_expression "piVar6[5] = 0" (subscript_expression "piVar6[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[4] = 0;" (assignment_expression "piVar6[4] = 0" (subscript_expression "piVar6[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar6 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar6" * identifier) = (binary_expression "(((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10)" ( (binary_expression "(uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10" (binary_expression "(uVar33 >> 0x10) << 0x18" (parenthesized_expression "(uVar33 >> 0x10)" ( (binary_expression "uVar33 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar33 >> 0x18) << 0x10" (parenthesized_expression "(uVar33 >> 0x18)" ( (binary_expression "uVar33 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff)" ( (binary_expression "(uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff" (binary_expression "(uVar33 & 0xff) << 8" (parenthesized_expression "(uVar33 & 0xff)" ( (binary_expression "uVar33 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar33 >> 8 & 0xff" (binary_expression "uVar33 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "piVar6[1] = (int)pOStack_80;" (assignment_expression "piVar6[1] = (int)pOStack_80" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = (cast_expression "(int)pOStack_80" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000;" (assignment_expression "piVar6[2] = ((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000" (subscript_expression "piVar6[2]" identifier [ number_literal ]) = (binary_expression "((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10) + (((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000" (parenthesized_expression "((((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10)" ( (binary_expression "(((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10) >>\n                          0x10" (parenthesized_expression "(((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10)" ( (binary_expression "((uint)puVar31 >> 0x10) << 0x18 | ((uint)puVar31 >> 0x18) << 0x10" (binary_expression "((uint)puVar31 >> 0x10) << 0x18" (parenthesized_expression "((uint)puVar31 >> 0x10)" ( (binary_expression "(uint)puVar31 >> 0x10" (cast_expression "(uint)puVar31" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal) | (binary_expression "((uint)puVar31 >> 0x18) << 0x10" (parenthesized_expression "((uint)puVar31 >> 0x18)" ( (binary_expression "(uint)puVar31 >> 0x18" (cast_expression "(uint)puVar31" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "(((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff) *\n                                  0x10000" (parenthesized_expression "(((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff)" ( (binary_expression "((uint)puVar31 & 0xff) << 8 | (uint)puVar31 >> 8 & 0xff" (binary_expression "((uint)puVar31 & 0xff) << 8" (parenthesized_expression "((uint)puVar31 & 0xff)" ( (binary_expression "(uint)puVar31 & 0xff" (cast_expression "(uint)puVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)puVar31 >> 8 & 0xff" (binary_expression "(uint)puVar31 >> 8" (cast_expression "(uint)puVar31" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar6[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = (binary_expression "(((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10)" ( (binary_expression "(uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10" (binary_expression "(uVar4 >> 0x10) << 0x18" (parenthesized_expression "(uVar4 >> 0x10)" ( (binary_expression "uVar4 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar4 >> 0x18) << 0x10" (parenthesized_expression "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff)" ( (binary_expression "(uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff" (binary_expression "(uVar4 & 0xff) << 8" (parenthesized_expression "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "pcVar37 = pcVar40;" (assignment_expression "pcVar37 = pcVar40" identifier = identifier) ;) })) (expression_statement "pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);" (assignment_expression "pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1)" identifier = (cast_expression "(Output_file *)((int)&pOVar17->name_ + 1)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar17->name_ + 1)" ( (binary_expression "(int)&pOVar17->name_ + 1" (cast_expression "(int)&pOVar17->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar17->name_" & (field_expression "pOVar17->name_" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "puVar18 = puVar18 + 4;" (assignment_expression "puVar18 = puVar18 + 4" identifier = (binary_expression "puVar18 + 4" identifier + number_literal)) ;) (if_statement "if (pOVar29 == pOVar17) {\n              return;\n            }" if (parenthesized_expression "(pOVar29 == pOVar17)" ( (binary_expression "pOVar29 == pOVar17" identifier == identifier) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (labeled_statement "LAB_00283080:\n      Output_file::get_output_view\n                (pOVar17,CONCAT44(pcVar37,in_stack_ffffff74),(size_t)pcVar23,pOVar28);" statement_identifier : (labeled_statement "Output_file::get_output_view\n                (pOVar17,CONCAT44(pcVar37,in_stack_ffffff74),(size_t)pcVar23,pOVar28);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view\n                (pOVar17,CONCAT44(pcVar37,in_stack_ffffff74),(size_t)pcVar23,pOVar28);" (call_expression "get_output_view\n                (pOVar17,CONCAT44(pcVar37,in_stack_ffffff74),(size_t)pcVar23,pOVar28)" identifier (argument_list "(pOVar17,CONCAT44(pcVar37,in_stack_ffffff74),(size_t)pcVar23,pOVar28)" ( identifier , (call_expression "CONCAT44(pcVar37,in_stack_ffffff74)" identifier (argument_list "(pcVar37,in_stack_ffffff74)" ( identifier , identifier ))) , (cast_expression "(size_t)pcVar23" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;))) })) (expression_statement "(**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);" (call_expression "(**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x500" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "iVar2 = 0xe3;" (assignment_expression "iVar2 = 0xe3" identifier = number_literal) ;) (expression_statement "pcVar38 = *(code **)(pcVar40 + -0x7810);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + -0x7810)" identifier = (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "puVar18 = (uint *)(*(int *)(pcVar40 + -0x7924) + -0x4f4);" (assignment_expression "puVar18 = (uint *)(*(int *)(pcVar40 + -0x7924) + -0x4f4)" identifier = (cast_expression "(uint *)(*(int *)(pcVar40 + -0x7924) + -0x4f4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + -0x7924) + -0x4f4)" ( (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x4f4" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar3 = (int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);" (assignment_expression "piVar3 = (int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" identifier = (cast_expression "(int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar38)();" (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar40 = pcVar38 + 0x246178;" (assignment_expression "pcVar40 = pcVar38 + 0x246178" identifier = (binary_expression "pcVar38 + 0x246178" identifier + number_literal)) ;) (expression_statement "pOVar29 = pOVar26;" (assignment_expression "pOVar29 = pOVar26" identifier = identifier) ;) (if_statement "if (*(code **)(*(int *)pcVar37 + 0x2c) == *(code **)(pcVar38 + 0x23f0d4)) {\n    uVar14 = *(uint *)(pcVar37 + 100);\n    iVar27 = *(int *)(pcVar38 + 0x23e854);\n    pcVar38 = pcVar40;\n    if (uVar14 == 0xffffffff) goto LAB_002833f8;\n  }\n  else {\n    uVar14 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37);\n  }" if (parenthesized_expression "(*(code **)(*(int *)pcVar37 + 0x2c) == *(code **)(pcVar38 + 0x23f0d4))" ( (binary_expression "*(code **)(*(int *)pcVar37 + 0x2c) == *(code **)(pcVar38 + 0x23f0d4)" (pointer_expression "*(code **)(*(int *)pcVar37 + 0x2c)" * (cast_expression "(code **)(*(int *)pcVar37 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar37 + 0x2c)" ( (binary_expression "*(int *)pcVar37 + 0x2c" (pointer_expression "*(int *)pcVar37" * (cast_expression "(int *)pcVar37" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (pointer_expression "*(code **)(pcVar38 + 0x23f0d4)" * (cast_expression "(code **)(pcVar38 + 0x23f0d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + 0x23f0d4)" ( (binary_expression "pcVar38 + 0x23f0d4" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar14 = *(uint *)(pcVar37 + 100);\n    iVar27 = *(int *)(pcVar38 + 0x23e854);\n    pcVar38 = pcVar40;\n    if (uVar14 == 0xffffffff) goto LAB_002833f8;\n  }" { (expression_statement "uVar14 = *(uint *)(pcVar37 + 100);" (assignment_expression "uVar14 = *(uint *)(pcVar37 + 100)" identifier = (pointer_expression "*(uint *)(pcVar37 + 100)" * (cast_expression "(uint *)(pcVar37 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 100)" ( (binary_expression "pcVar37 + 100" identifier + number_literal) ))))) ;) (expression_statement "iVar27 = *(int *)(pcVar38 + 0x23e854);" (assignment_expression "iVar27 = *(int *)(pcVar38 + 0x23e854)" identifier = (pointer_expression "*(int *)(pcVar38 + 0x23e854)" * (cast_expression "(int *)(pcVar38 + 0x23e854)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar38 + 0x23e854)" ( (binary_expression "pcVar38 + 0x23e854" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = pcVar40;" (assignment_expression "pcVar38 = pcVar40" identifier = identifier) ;) (if_statement "if (uVar14 == 0xffffffff) goto LAB_002833f8;" if (parenthesized_expression "(uVar14 == 0xffffffff)" ( (binary_expression "uVar14 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_002833f8;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar14 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37);\n  }" else (compound_statement "{\n    uVar14 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37);\n  }" { (expression_statement "uVar14 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37);" (assignment_expression "uVar14 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37)" identifier = (call_expression "(**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37)" (parenthesized_expression "(**(code **)(*(int *)pcVar37 + 0x2c))" ( (pointer_expression "**(code **)(*(int *)pcVar37 + 0x2c)" * (pointer_expression "*(code **)(*(int *)pcVar37 + 0x2c)" * (cast_expression "(code **)(*(int *)pcVar37 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar37 + 0x2c)" ( (binary_expression "*(int *)pcVar37 + 0x2c" (pointer_expression "*(int *)pcVar37" * (cast_expression "(int *)pcVar37" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar37)" ( identifier )))) ;) }))) (expression_statement "iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc);" (assignment_expression "iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc)" identifier = (pointer_expression "*(int *)(*(int *)(iVar2 + 4) + 0x1dc)" * (cast_expression "(int *)(*(int *)(iVar2 + 4) + 0x1dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 4) + 0x1dc)" ( (binary_expression "*(int *)(iVar2 + 4) + 0x1dc" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar20 = 0x44e;" (assignment_expression "uVar20 = 0x44e" identifier = number_literal) ;) (if_statement "if (iVar27 == 0) goto LAB_002833c4;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002833c4;" goto statement_identifier ;)) (expression_statement "pOVar17 = *(Output_file **)(iVar27 + 0x3c);" (assignment_expression "pOVar17 = *(Output_file **)(iVar27 + 0x3c)" identifier = (pointer_expression "*(Output_file **)(iVar27 + 0x3c)" * (cast_expression "(Output_file **)(iVar27 + 0x3c)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar27 = *(int *)(pcVar40 + -0x7924);" (assignment_expression "iVar27 = *(int *)(pcVar40 + -0x7924)" identifier = (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = pcVar40;" (assignment_expression "pcVar38 = pcVar40" identifier = identifier) ;) (if_statement "if (*(int *)&pOVar17[1].file_size_ << 2 < 0) {\n    iStack_d8 = pOVar17[1].o_;\n    pOVar28 = (Output_file *)pOVar17[1].name_;\n    if (*(int *)&pOVar17[1].file_size_ << 1 < 0) {\n      pOVar15 = *(Output_file **)&pOVar17->map_is_anonymous_;\n      if (-1 < (int)pOVar28) {\n        pOVar17 = *(Output_file **)&pOStack_80->file_size_;\n        pOVar29 = (Output_file *)((int)&pOVar15->name_ + iStack_d8);\n        pOVar15 = (Output_file *)((int)&pOVar28->name_ + (uint)(pOVar29 < pOVar15));\n        pOVar28 = (Output_file *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pOVar28 == (Output_file *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283410;\nLAB_002831b0:\n          puVar31 = pOStack_80->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = puVar18[3];\n            uVar34 = puVar18[2];\n            uVar4 = piVar3[0x2e];\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            if (uVar4 <= uVar33) {\n              uVar32 = *puVar18;\n              uVar30 = puVar18[1];\n              pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }\n              pOVar29 = (Output_file *)puVar18[5];\n              uVar33 = uVar33 - uVar4;\n              uStack_e0 = puVar18[4];\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_002833b8;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_002833a0;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar7 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar16 = *piVar6;\n              *piVar6 = iVar16 + 1;\n              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);\n              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;\n              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;\n              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              piVar6[5] = (int)pOVar29;\n              piVar6[4] = uStack_e0;\n              pcVar38 = pcVar40;\n              pOStack_dc = pOVar29;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 6;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283420:\n      Output_file::get_output_view\n                (pOVar15,CONCAT44(pcVar38,in_stack_ffffff1c),(size_t)pOVar17,pOVar28);\n    }\n    iVar27 = *(int *)(pcVar40 + -0x7924) + -0x500;\n    (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf);\n  }" if (parenthesized_expression "(*(int *)&pOVar17[1].file_size_ << 2 < 0)" ( (binary_expression "*(int *)&pOVar17[1].file_size_ << 2 < 0" (binary_expression "*(int *)&pOVar17[1].file_size_ << 2" (pointer_expression "*(int *)&pOVar17[1].file_size_" * (cast_expression "(int *)&pOVar17[1].file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar17[1].file_size_" & (field_expression "pOVar17[1].file_size_" (subscript_expression "pOVar17[1]" identifier [ number_literal ]) . field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n    iStack_d8 = pOVar17[1].o_;\n    pOVar28 = (Output_file *)pOVar17[1].name_;\n    if (*(int *)&pOVar17[1].file_size_ << 1 < 0) {\n      pOVar15 = *(Output_file **)&pOVar17->map_is_anonymous_;\n      if (-1 < (int)pOVar28) {\n        pOVar17 = *(Output_file **)&pOStack_80->file_size_;\n        pOVar29 = (Output_file *)((int)&pOVar15->name_ + iStack_d8);\n        pOVar15 = (Output_file *)((int)&pOVar28->name_ + (uint)(pOVar29 < pOVar15));\n        pOVar28 = (Output_file *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pOVar28 == (Output_file *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283410;\nLAB_002831b0:\n          puVar31 = pOStack_80->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = puVar18[3];\n            uVar34 = puVar18[2];\n            uVar4 = piVar3[0x2e];\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            if (uVar4 <= uVar33) {\n              uVar32 = *puVar18;\n              uVar30 = puVar18[1];\n              pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }\n              pOVar29 = (Output_file *)puVar18[5];\n              uVar33 = uVar33 - uVar4;\n              uStack_e0 = puVar18[4];\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_002833b8;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_002833a0;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar7 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar16 = *piVar6;\n              *piVar6 = iVar16 + 1;\n              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);\n              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;\n              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;\n              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              piVar6[5] = (int)pOVar29;\n              piVar6[4] = uStack_e0;\n              pcVar38 = pcVar40;\n              pOStack_dc = pOVar29;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 6;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283420:\n      Output_file::get_output_view\n                (pOVar15,CONCAT44(pcVar38,in_stack_ffffff1c),(size_t)pOVar17,pOVar28);\n    }\n    iVar27 = *(int *)(pcVar40 + -0x7924) + -0x500;\n    (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf);\n  }" { (expression_statement "iStack_d8 = pOVar17[1].o_;" (assignment_expression "iStack_d8 = pOVar17[1].o_" identifier = (field_expression "pOVar17[1].o_" (subscript_expression "pOVar17[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pOVar28 = (Output_file *)pOVar17[1].name_;" (assignment_expression "pOVar28 = (Output_file *)pOVar17[1].name_" identifier = (cast_expression "(Output_file *)pOVar17[1].name_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar17[1].name_" (subscript_expression "pOVar17[1]" identifier [ number_literal ]) . field_identifier))) ;) (if_statement "if (*(int *)&pOVar17[1].file_size_ << 1 < 0) {\n      pOVar15 = *(Output_file **)&pOVar17->map_is_anonymous_;\n      if (-1 < (int)pOVar28) {\n        pOVar17 = *(Output_file **)&pOStack_80->file_size_;\n        pOVar29 = (Output_file *)((int)&pOVar15->name_ + iStack_d8);\n        pOVar15 = (Output_file *)((int)&pOVar28->name_ + (uint)(pOVar29 < pOVar15));\n        pOVar28 = (Output_file *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pOVar28 == (Output_file *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283410;\nLAB_002831b0:\n          puVar31 = pOStack_80->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = puVar18[3];\n            uVar34 = puVar18[2];\n            uVar4 = piVar3[0x2e];\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            if (uVar4 <= uVar33) {\n              uVar32 = *puVar18;\n              uVar30 = puVar18[1];\n              pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }\n              pOVar29 = (Output_file *)puVar18[5];\n              uVar33 = uVar33 - uVar4;\n              uStack_e0 = puVar18[4];\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_002833b8;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_002833a0;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar7 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar16 = *piVar6;\n              *piVar6 = iVar16 + 1;\n              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);\n              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;\n              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;\n              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              piVar6[5] = (int)pOVar29;\n              piVar6[4] = uStack_e0;\n              pcVar38 = pcVar40;\n              pOStack_dc = pOVar29;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 6;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283420:\n      Output_file::get_output_view\n                (pOVar15,CONCAT44(pcVar38,in_stack_ffffff1c),(size_t)pOVar17,pOVar28);\n    }" if (parenthesized_expression "(*(int *)&pOVar17[1].file_size_ << 1 < 0)" ( (binary_expression "*(int *)&pOVar17[1].file_size_ << 1 < 0" (binary_expression "*(int *)&pOVar17[1].file_size_ << 1" (pointer_expression "*(int *)&pOVar17[1].file_size_" * (cast_expression "(int *)&pOVar17[1].file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar17[1].file_size_" & (field_expression "pOVar17[1].file_size_" (subscript_expression "pOVar17[1]" identifier [ number_literal ]) . field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n      pOVar15 = *(Output_file **)&pOVar17->map_is_anonymous_;\n      if (-1 < (int)pOVar28) {\n        pOVar17 = *(Output_file **)&pOStack_80->file_size_;\n        pOVar29 = (Output_file *)((int)&pOVar15->name_ + iStack_d8);\n        pOVar15 = (Output_file *)((int)&pOVar28->name_ + (uint)(pOVar29 < pOVar15));\n        pOVar28 = (Output_file *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pOVar28 == (Output_file *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283410;\nLAB_002831b0:\n          puVar31 = pOStack_80->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = puVar18[3];\n            uVar34 = puVar18[2];\n            uVar4 = piVar3[0x2e];\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            if (uVar4 <= uVar33) {\n              uVar32 = *puVar18;\n              uVar30 = puVar18[1];\n              pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }\n              pOVar29 = (Output_file *)puVar18[5];\n              uVar33 = uVar33 - uVar4;\n              uStack_e0 = puVar18[4];\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_002833b8;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_002833a0;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar7 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar16 = *piVar6;\n              *piVar6 = iVar16 + 1;\n              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);\n              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;\n              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;\n              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              piVar6[5] = (int)pOVar29;\n              piVar6[4] = uStack_e0;\n              pcVar38 = pcVar40;\n              pOStack_dc = pOVar29;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 6;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283420:\n      Output_file::get_output_view\n                (pOVar15,CONCAT44(pcVar38,in_stack_ffffff1c),(size_t)pOVar17,pOVar28);\n    }" { (expression_statement "pOVar15 = *(Output_file **)&pOVar17->map_is_anonymous_;" (assignment_expression "pOVar15 = *(Output_file **)&pOVar17->map_is_anonymous_" identifier = (pointer_expression "*(Output_file **)&pOVar17->map_is_anonymous_" * (cast_expression "(Output_file **)&pOVar17->map_is_anonymous_" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar17->map_is_anonymous_" & (field_expression "pOVar17->map_is_anonymous_" identifier -> field_identifier))))) ;) (if_statement "if (-1 < (int)pOVar28) {\n        pOVar17 = *(Output_file **)&pOStack_80->file_size_;\n        pOVar29 = (Output_file *)((int)&pOVar15->name_ + iStack_d8);\n        pOVar15 = (Output_file *)((int)&pOVar28->name_ + (uint)(pOVar29 < pOVar15));\n        pOVar28 = (Output_file *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pOVar28 == (Output_file *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283410;\nLAB_002831b0:\n          puVar31 = pOStack_80->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = puVar18[3];\n            uVar34 = puVar18[2];\n            uVar4 = piVar3[0x2e];\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            if (uVar4 <= uVar33) {\n              uVar32 = *puVar18;\n              uVar30 = puVar18[1];\n              pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }\n              pOVar29 = (Output_file *)puVar18[5];\n              uVar33 = uVar33 - uVar4;\n              uStack_e0 = puVar18[4];\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_002833b8;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_002833a0;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar7 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar16 = *piVar6;\n              *piVar6 = iVar16 + 1;\n              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);\n              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;\n              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;\n              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              piVar6[5] = (int)pOVar29;\n              piVar6[4] = uStack_e0;\n              pcVar38 = pcVar40;\n              pOStack_dc = pOVar29;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 6;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }" if (parenthesized_expression "(-1 < (int)pOVar28)" ( (binary_expression "-1 < (int)pOVar28" number_literal < (cast_expression "(int)pOVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pOVar17 = *(Output_file **)&pOStack_80->file_size_;\n        pOVar29 = (Output_file *)((int)&pOVar15->name_ + iStack_d8);\n        pOVar15 = (Output_file *)((int)&pOVar28->name_ + (uint)(pOVar29 < pOVar15));\n        pOVar28 = (Output_file *)(uint)((int)pOVar17 < (int)pOVar15);\n        if (pOVar28 == (Output_file *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283410;\nLAB_002831b0:\n          puVar31 = pOStack_80->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = puVar18[3];\n            uVar34 = puVar18[2];\n            uVar4 = piVar3[0x2e];\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            if (uVar4 <= uVar33) {\n              uVar32 = *puVar18;\n              uVar30 = puVar18[1];\n              pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }\n              pOVar29 = (Output_file *)puVar18[5];\n              uVar33 = uVar33 - uVar4;\n              uStack_e0 = puVar18[4];\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_002833b8;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_002833a0;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar7 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar16 = *piVar6;\n              *piVar6 = iVar16 + 1;\n              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);\n              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;\n              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;\n              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              piVar6[5] = (int)pOVar29;\n              piVar6[4] = uStack_e0;\n              pcVar38 = pcVar40;\n              pOStack_dc = pOVar29;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 6;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }" { (expression_statement "pOVar17 = *(Output_file **)&pOStack_80->file_size_;" (assignment_expression "pOVar17 = *(Output_file **)&pOStack_80->file_size_" identifier = (pointer_expression "*(Output_file **)&pOStack_80->file_size_" * (cast_expression "(Output_file **)&pOStack_80->file_size_" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOStack_80->file_size_" & (field_expression "pOStack_80->file_size_" identifier -> field_identifier))))) ;) (expression_statement "pOVar29 = (Output_file *)((int)&pOVar15->name_ + iStack_d8);" (assignment_expression "pOVar29 = (Output_file *)((int)&pOVar15->name_ + iStack_d8)" identifier = (cast_expression "(Output_file *)((int)&pOVar15->name_ + iStack_d8)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar15->name_ + iStack_d8)" ( (binary_expression "(int)&pOVar15->name_ + iStack_d8" (cast_expression "(int)&pOVar15->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar15->name_" & (field_expression "pOVar15->name_" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "pOVar15 = (Output_file *)((int)&pOVar28->name_ + (uint)(pOVar29 < pOVar15));" (assignment_expression "pOVar15 = (Output_file *)((int)&pOVar28->name_ + (uint)(pOVar29 < pOVar15))" identifier = (cast_expression "(Output_file *)((int)&pOVar28->name_ + (uint)(pOVar29 < pOVar15))" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar28->name_ + (uint)(pOVar29 < pOVar15))" ( (binary_expression "(int)&pOVar28->name_ + (uint)(pOVar29 < pOVar15)" (cast_expression "(int)&pOVar28->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar28->name_" & (field_expression "pOVar28->name_" identifier -> field_identifier))) + (call_expression "(uint)(pOVar29 < pOVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar29 < pOVar15)" ( (binary_expression "pOVar29 < pOVar15" identifier < identifier) )))) )))) ;) (expression_statement "pOVar28 = (Output_file *)(uint)((int)pOVar17 < (int)pOVar15);" (assignment_expression "pOVar28 = (Output_file *)(uint)((int)pOVar17 < (int)pOVar15)" identifier = (cast_expression "(Output_file *)(uint)((int)pOVar17 < (int)pOVar15)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)pOVar17 < (int)pOVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pOVar17 < (int)pOVar15)" ( (binary_expression "(int)pOVar17 < (int)pOVar15" (cast_expression "(int)pOVar17" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pOVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (pOVar28 == (Output_file *)0x0) {\n          if (pOVar17 == pOVar15) goto LAB_00283410;\nLAB_002831b0:\n          puVar31 = pOStack_80->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = puVar18[3];\n            uVar34 = puVar18[2];\n            uVar4 = piVar3[0x2e];\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            if (uVar4 <= uVar33) {\n              uVar32 = *puVar18;\n              uVar30 = puVar18[1];\n              pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }\n              pOVar29 = (Output_file *)puVar18[5];\n              uVar33 = uVar33 - uVar4;\n              uStack_e0 = puVar18[4];\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_002833b8;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_002833a0;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar7 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar16 = *piVar6;\n              *piVar6 = iVar16 + 1;\n              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);\n              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;\n              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;\n              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              piVar6[5] = (int)pOVar29;\n              piVar6[4] = uStack_e0;\n              pcVar38 = pcVar40;\n              pOStack_dc = pOVar29;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 6;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }" if (parenthesized_expression "(pOVar28 == (Output_file *)0x0)" ( (binary_expression "pOVar28 == (Output_file *)0x0" identifier == (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pOVar17 == pOVar15) goto LAB_00283410;\nLAB_002831b0:\n          puVar31 = pOStack_80->base_;\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = puVar18[3];\n            uVar34 = puVar18[2];\n            uVar4 = piVar3[0x2e];\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            if (uVar4 <= uVar33) {\n              uVar32 = *puVar18;\n              uVar30 = puVar18[1];\n              pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }\n              pOVar29 = (Output_file *)puVar18[5];\n              uVar33 = uVar33 - uVar4;\n              uStack_e0 = puVar18[4];\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_002833b8;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_002833a0;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar7 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar16 = *piVar6;\n              *piVar6 = iVar16 + 1;\n              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);\n              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;\n              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;\n              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              piVar6[5] = (int)pOVar29;\n              piVar6[4] = uStack_e0;\n              pcVar38 = pcVar40;\n              pOStack_dc = pOVar29;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 6;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }" { (if_statement "if (pOVar17 == pOVar15) goto LAB_00283410;" if (parenthesized_expression "(pOVar17 == pOVar15)" ( (binary_expression "pOVar17 == pOVar15" identifier == identifier) )) (goto_statement "goto LAB_00283410;" goto statement_identifier ;)) (labeled_statement "LAB_002831b0:\n          puVar31 = pOStack_80->base_;" statement_identifier : (expression_statement "puVar31 = pOStack_80->base_;" (assignment_expression "puVar31 = pOStack_80->base_" identifier = (field_expression "pOStack_80->base_" identifier -> field_identifier)) ;)) (expression_statement "pOVar17 = (Output_file *)0x0;" (assignment_expression "pOVar17 = (Output_file *)0x0" identifier = (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }" if (parenthesized_expression "(pOVar26 == (Output_file *)0x0)" ( (binary_expression "pOVar26 == (Output_file *)0x0" identifier == (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (do_statement "do {\n            uVar33 = puVar18[3];\n            uVar34 = puVar18[2];\n            uVar4 = piVar3[0x2e];\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            if (uVar4 <= uVar33) {\n              uVar32 = *puVar18;\n              uVar30 = puVar18[1];\n              pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }\n              pOVar29 = (Output_file *)puVar18[5];\n              uVar33 = uVar33 - uVar4;\n              uStack_e0 = puVar18[4];\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_002833b8;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_002833a0;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar7 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar16 = *piVar6;\n              *piVar6 = iVar16 + 1;\n              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);\n              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;\n              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;\n              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              piVar6[5] = (int)pOVar29;\n              piVar6[4] = uStack_e0;\n              pcVar38 = pcVar40;\n              pOStack_dc = pOVar29;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 6;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );" do (compound_statement "{\n            uVar33 = puVar18[3];\n            uVar34 = puVar18[2];\n            uVar4 = piVar3[0x2e];\n            uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;\n            uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n            if (uVar4 <= uVar33) {\n              uVar32 = *puVar18;\n              uVar30 = puVar18[1];\n              pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }\n              pOVar29 = (Output_file *)puVar18[5];\n              uVar33 = uVar33 - uVar4;\n              uStack_e0 = puVar18[4];\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_002833b8;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_002833a0;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar7 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar16 = *piVar6;\n              *piVar6 = iVar16 + 1;\n              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);\n              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;\n              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;\n              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              piVar6[5] = (int)pOVar29;\n              piVar6[4] = uStack_e0;\n              pcVar38 = pcVar40;\n              pOStack_dc = pOVar29;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            puVar18 = puVar18 + 6;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          }" { (expression_statement "uVar33 = puVar18[3];" (assignment_expression "uVar33 = puVar18[3]" identifier = (subscript_expression "puVar18[3]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = puVar18[2];" (assignment_expression "uVar34 = puVar18[2]" identifier = (subscript_expression "puVar18[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = piVar3[0x2e];" (assignment_expression "uVar4 = piVar3[0x2e]" identifier = (subscript_expression "piVar3[0x2e]" identifier [ number_literal ])) ;) (expression_statement "uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar33 = (((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10)" ( (binary_expression "(uVar33 >> 0x10) << 0x18 | (uVar33 >> 0x18) << 0x10" (binary_expression "(uVar33 >> 0x10) << 0x18" (parenthesized_expression "(uVar33 >> 0x10)" ( (binary_expression "uVar33 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar33 >> 0x18) << 0x10" (parenthesized_expression "(uVar33 >> 0x18)" ( (binary_expression "uVar33 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff)" ( (binary_expression "(uVar33 & 0xff) << 8 | uVar33 >> 8 & 0xff" (binary_expression "(uVar33 & 0xff) << 8" (parenthesized_expression "(uVar33 & 0xff)" ( (binary_expression "uVar33 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar33 >> 8 & 0xff" (binary_expression "uVar33 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;" (assignment_expression "uVar34 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                     ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10)" ( (binary_expression "(uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10" (binary_expression "(uVar34 >> 0x10) << 0x18" (parenthesized_expression "(uVar34 >> 0x10)" ( (binary_expression "uVar34 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar34 >> 0x18) << 0x10" (parenthesized_expression "(uVar34 >> 0x18)" ( (binary_expression "uVar34 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff)" ( (binary_expression "(uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff" (binary_expression "(uVar34 & 0xff) << 8" (parenthesized_expression "(uVar34 & 0xff)" ( (binary_expression "uVar34 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar34 >> 8 & 0xff" (binary_expression "uVar34 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (if_statement "if (uVar4 <= uVar33) {\n              uVar32 = *puVar18;\n              uVar30 = puVar18[1];\n              pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }\n              pOVar29 = (Output_file *)puVar18[5];\n              uVar33 = uVar33 - uVar4;\n              uStack_e0 = puVar18[4];\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_002833b8;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_002833a0;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar7 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar16 = *piVar6;\n              *piVar6 = iVar16 + 1;\n              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);\n              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;\n              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;\n              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              piVar6[5] = (int)pOVar29;\n              piVar6[4] = uStack_e0;\n              pcVar38 = pcVar40;\n              pOStack_dc = pOVar29;\n            }" if (parenthesized_expression "(uVar4 <= uVar33)" ( (binary_expression "uVar4 <= uVar33" identifier <= identifier) )) (compound_statement "{\n              uVar32 = *puVar18;\n              uVar30 = puVar18[1];\n              pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);\n              iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }\n              pOVar29 = (Output_file *)puVar18[5];\n              uVar33 = uVar33 - uVar4;\n              uStack_e0 = puVar18[4];\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_002833b8;\n              iVar27 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar27 == 0) goto LAB_002833a0;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar7 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar16 = *piVar6;\n              *piVar6 = iVar16 + 1;\n              piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);\n              *piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;\n              piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;\n              piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;\n              piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;\n              piVar6[5] = (int)pOVar29;\n              piVar6[4] = uStack_e0;\n              pcVar38 = pcVar40;\n              pOStack_dc = pOVar29;\n            }" { (expression_statement "uVar32 = *puVar18;" (assignment_expression "uVar32 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "uVar30 = puVar18[1];" (assignment_expression "uVar30 = puVar18[1]" identifier = (subscript_expression "puVar18[1]" identifier [ number_literal ])) ;) (expression_statement "pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000);" (assignment_expression "pOStack_80 = (Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000)" identifier = (cast_expression "(Output_file *)\n                           ((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000)" ( (binary_expression "(((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10) +\n                           ((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10)" ( (binary_expression "(uVar32 >> 0x10) << 0x18 | (uVar32 >> 0x18) << 0x10" (binary_expression "(uVar32 >> 0x10) << 0x18" (parenthesized_expression "(uVar32 >> 0x10)" ( (binary_expression "uVar32 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar32 >> 0x18) << 0x10" (parenthesized_expression "(uVar32 >> 0x18)" ( (binary_expression "uVar32 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff)" ( (binary_expression "(uVar32 & 0xff) << 8 | uVar32 >> 8 & 0xff" (binary_expression "(uVar32 & 0xff) << 8" (parenthesized_expression "(uVar32 & 0xff)" ( (binary_expression "uVar32 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar32 >> 8 & 0xff" (binary_expression "uVar32 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal)) )))) ;) (expression_statement "iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;" (assignment_expression "iVar27 = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000" identifier = (binary_expression "(((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                       ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10)" ( (binary_expression "(uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10" (binary_expression "(uVar30 >> 0x10) << 0x18" (parenthesized_expression "(uVar30 >> 0x10)" ( (binary_expression "uVar30 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar30 >> 0x18) << 0x10" (parenthesized_expression "(uVar30 >> 0x18)" ( (binary_expression "uVar30 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff)" ( (binary_expression "(uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff" (binary_expression "(uVar30 & 0xff) << 8" (parenthesized_expression "(uVar30 & 0xff)" ( (binary_expression "uVar30 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar30 >> 8 & 0xff" (binary_expression "uVar30 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (if_statement "if ((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))\n              {\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }\n              else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }" if (parenthesized_expression "((pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff))" ( (binary_expression "(pOStack_88 == (Output_file *)0xffffffff) && (puStack_84 == (uchar *)0xffffffff)" (parenthesized_expression "(pOStack_88 == (Output_file *)0xffffffff)" ( (binary_expression "pOStack_88 == (Output_file *)0xffffffff" identifier == (cast_expression "(Output_file *)0xffffffff" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puStack_84 == (uchar *)0xffffffff)" ( (binary_expression "puStack_84 == (uchar *)0xffffffff" identifier == (cast_expression "(uchar *)0xffffffff" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;\n                pOVar29 = pOStack_80;\n                puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar38;\n                if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;\n                uVar4 = piVar3[0x2e];\n                puVar8 = puVar9 + (int)pOStack_80;\n                uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;\n              }" { (if_statement "if (iVar27 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;" if (parenthesized_expression "(iVar27 != (int)pOStack_80 >> 0x1f)" ( (binary_expression "iVar27 != (int)pOStack_80 >> 0x1f" identifier != (binary_expression "(int)pOStack_80 >> 0x1f" (cast_expression "(int)pOStack_80" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) (goto_statement "goto LAB_002833dc;" goto statement_identifier ;)) (expression_statement "pOVar29 = pOStack_80;" (assignment_expression "pOVar29 = pOStack_80" identifier = identifier) ;) (expression_statement "puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18));" (assignment_expression "puVar9 = (uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18))" identifier = (cast_expression "(uchar *)(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18))" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar40 + -0x767c))\n                                            (pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18))" (parenthesized_expression "(**(code **)(pcVar40 + -0x767c))" ( (pointer_expression "**(code **)(pcVar40 + -0x767c)" * (pointer_expression "*(code **)(pcVar40 + -0x767c)" * (cast_expression "(code **)(pcVar40 + -0x767c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x767c)" ( (binary_expression "pcVar40 + -0x767c" identifier + number_literal) ))))) )) (argument_list "(pcVar37,*(undefined4 *)(iVar2 + 8),\n                                             *(undefined4 *)(iVar2 + 0x18))" ( identifier , (pointer_expression "*(undefined4 *)(iVar2 + 8)" * (cast_expression "(undefined4 *)(iVar2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar2 + 0x18)" * (cast_expression "(undefined4 *)(iVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) ))))) ;) (expression_statement "pcVar40 = pcVar38;" (assignment_expression "pcVar40 = pcVar38" identifier = identifier) ;) (if_statement "if (puVar9 == (uchar *)0xffffffff) goto LAB_002833c0;" if (parenthesized_expression "(puVar9 == (uchar *)0xffffffff)" ( (binary_expression "puVar9 == (uchar *)0xffffffff" identifier == (cast_expression "(uchar *)0xffffffff" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002833c0;" goto statement_identifier ;)) (expression_statement "uVar4 = piVar3[0x2e];" (assignment_expression "uVar4 = piVar3[0x2e]" identifier = (subscript_expression "piVar3[0x2e]" identifier [ number_literal ])) ;) (expression_statement "puVar8 = puVar9 + (int)pOStack_80;" (assignment_expression "puVar8 = puVar9 + (int)pOStack_80" identifier = (binary_expression "puVar9 + (int)pOStack_80" identifier + (cast_expression "(int)pOStack_80" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27;" (assignment_expression "uVar30 = (uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27" identifier = (binary_expression "(uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f) + iVar27" (binary_expression "(uint)(puVar8 < puVar9) + ((int)puVar9 >> 0x1f)" (call_expression "(uint)(puVar8 < puVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar8 < puVar9)" ( (binary_expression "puVar8 < puVar9" identifier < identifier) ))) + (parenthesized_expression "((int)puVar9 >> 0x1f)" ( (binary_expression "(int)puVar9 >> 0x1f" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + identifier)) ;) }) (else_clause "else {\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }" else (compound_statement "{\n                puVar8 = puStack_84 + (int)pOStack_80;\n                uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;\n                pcVar40 = pcVar38;\n              }" { (expression_statement "puVar8 = puStack_84 + (int)pOStack_80;" (assignment_expression "puVar8 = puStack_84 + (int)pOStack_80" identifier = (binary_expression "puStack_84 + (int)pOStack_80" identifier + (cast_expression "(int)pOStack_80" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27;" (assignment_expression "uVar30 = (int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27" identifier = (binary_expression "(int)pOStack_88 + (uint)(puVar8 < puStack_84) + iVar27" (binary_expression "(int)pOStack_88 + (uint)(puVar8 < puStack_84)" (cast_expression "(int)pOStack_88" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(puVar8 < puStack_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar8 < puStack_84)" ( (binary_expression "puVar8 < puStack_84" identifier < identifier) )))) + identifier)) ;) (expression_statement "pcVar40 = pcVar38;" (assignment_expression "pcVar40 = pcVar38" identifier = identifier) ;) }))) (expression_statement "pOVar29 = (Output_file *)puVar18[5];" (assignment_expression "pOVar29 = (Output_file *)puVar18[5]" identifier = (cast_expression "(Output_file *)puVar18[5]" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar18[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar33 = uVar33 - uVar4;" (assignment_expression "uVar33 = uVar33 - uVar4" identifier = (binary_expression "uVar33 - uVar4" identifier - identifier)) ;) (expression_statement "uStack_e0 = puVar18[4];" (assignment_expression "uStack_e0 = puVar18[4]" identifier = (subscript_expression "puVar18[4]" identifier [ number_literal ])) ;) (expression_statement "piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);" (assignment_expression "piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3)" identifier = (cast_expression "(int *)(**(code **)(*piVar3 + 0x74))(piVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar3 + 0x74))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0x74))" ( (pointer_expression "**(code **)(*piVar3 + 0x74)" * (pointer_expression "*(code **)(*piVar3 + 0x74)" * (cast_expression "(code **)(*piVar3 + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x74)" ( (binary_expression "*piVar3 + 0x74" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))))) ;) (if_statement "if (piVar3[0x16] == 0) goto LAB_002833b8;" if (parenthesized_expression "(piVar3[0x16] == 0)" ( (binary_expression "piVar3[0x16] == 0" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_002833b8;" goto statement_identifier ;)) (expression_statement "iVar27 = piVar3[0x17];" (assignment_expression "iVar27 = piVar3[0x17]" identifier = (subscript_expression "piVar3[0x17]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = 0x604;" (assignment_expression "uVar20 = 0x604" identifier = number_literal) ;) (if_statement "if (iVar27 == 0) goto LAB_002833a0;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002833a0;" goto statement_identifier ;)) (if_statement "if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }" if (parenthesized_expression "((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33)" ( (binary_expression "(uint)(piVar6[1] - *piVar6 >> 2) <= uVar33" (call_expression "(uint)(piVar6[1] - *piVar6 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar6[1] - *piVar6 >> 2)" ( (binary_expression "piVar6[1] - *piVar6 >> 2" (binary_expression "piVar6[1] - *piVar6" (subscript_expression "piVar6[1]" identifier [ number_literal ]) - (pointer_expression "*piVar6" * identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                uVar20 = 0x605;\nLAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );\n              }" { (expression_statement "uVar20 = 0x605;" (assignment_expression "uVar20 = 0x605" identifier = number_literal) ;) (labeled_statement "LAB_002833a0:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );" statement_identifier : (do_statement "do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                } while( true );" do (compound_statement "{\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_002833b8:\n                  uVar20 = 0x603;\n                }" { (expression_statement "(**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);" (call_expression "(**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x4570" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x684" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_002833b8:\n                  uVar20 = 0x603;" statement_identifier : (expression_statement "uVar20 = 0x603;" (assignment_expression "uVar20 = 0x603" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "iVar7 = uVar33 * 4;" (assignment_expression "iVar7 = uVar33 * 4" identifier = (binary_expression "uVar33 * 4" identifier * number_literal)) ;) (expression_statement "piVar6 = (int *)(piVar3[0x16] + iVar7);" (assignment_expression "piVar6 = (int *)(piVar3[0x16] + iVar7)" identifier = (cast_expression "(int *)(piVar3[0x16] + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0x16] + iVar7)" ( (binary_expression "piVar3[0x16] + iVar7" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar16 = *piVar6;" (assignment_expression "iVar16 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "*piVar6 = iVar16 + 1;" (assignment_expression "*piVar6 = iVar16 + 1" (pointer_expression "*piVar6" * identifier) = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (expression_statement "piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8);" (assignment_expression "piVar6 = (int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8)" identifier = (cast_expression "(int *)(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8)" ( (binary_expression "puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18 + iStack_d8" (binary_expression "puVar31 + (iVar16 + *(int *)(iVar27 + iVar7)) * 0x18" identifier + (binary_expression "(iVar16 + *(int *)(iVar27 + iVar7)) * 0x18" (parenthesized_expression "(iVar16 + *(int *)(iVar27 + iVar7))" ( (binary_expression "iVar16 + *(int *)(iVar27 + iVar7)" identifier + (pointer_expression "*(int *)(iVar27 + iVar7)" * (cast_expression "(int *)(iVar27 + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + iVar7)" ( (binary_expression "iVar27 + iVar7" identifier + identifier) ))))) )) * number_literal)) + identifier) )))) ;) (expression_statement "*piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar6 = (((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar6" * identifier) = (binary_expression "(((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10) +\n                        ((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10)" ( (binary_expression "(uVar34 >> 0x10) << 0x18 | (uVar34 >> 0x18) << 0x10" (binary_expression "(uVar34 >> 0x10) << 0x18" (parenthesized_expression "(uVar34 >> 0x10)" ( (binary_expression "uVar34 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar34 >> 0x18) << 0x10" (parenthesized_expression "(uVar34 >> 0x18)" ( (binary_expression "uVar34 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff)" ( (binary_expression "(uVar34 & 0xff) << 8 | uVar34 >> 8 & 0xff" (binary_expression "(uVar34 & 0xff) << 8" (parenthesized_expression "(uVar34 & 0xff)" ( (binary_expression "uVar34 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar34 >> 8 & 0xff" (binary_expression "uVar34 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar6[1] = (((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = (binary_expression "(((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10)" ( (binary_expression "(uVar14 >> 0x10) << 0x18 | (uVar14 >> 0x18) << 0x10" (binary_expression "(uVar14 >> 0x10) << 0x18" (parenthesized_expression "(uVar14 >> 0x10)" ( (binary_expression "uVar14 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar14 >> 0x18) << 0x10" (parenthesized_expression "(uVar14 >> 0x18)" ( (binary_expression "uVar14 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff)" ( (binary_expression "(uVar14 & 0xff) << 8 | uVar14 >> 8 & 0xff" (binary_expression "(uVar14 & 0xff) << 8" (parenthesized_expression "(uVar14 & 0xff)" ( (binary_expression "uVar14 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar14 >> 8 & 0xff" (binary_expression "uVar14 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar6[2] = ((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar6[2]" identifier [ number_literal ]) = (binary_expression "((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          ) + (((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10\n                          )" ( (binary_expression "(((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "(((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10)" ( (binary_expression "((uint)puVar8 >> 0x10) << 0x18 | ((uint)puVar8 >> 0x18) << 0x10" (binary_expression "((uint)puVar8 >> 0x10) << 0x18" (parenthesized_expression "((uint)puVar8 >> 0x10)" ( (binary_expression "(uint)puVar8 >> 0x10" (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal) | (binary_expression "((uint)puVar8 >> 0x18) << 0x10" (parenthesized_expression "((uint)puVar8 >> 0x18)" ( (binary_expression "(uint)puVar8 >> 0x18" (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "(((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff)" ( (binary_expression "((uint)puVar8 & 0xff) << 8 | (uint)puVar8 >> 8 & 0xff" (binary_expression "((uint)puVar8 & 0xff) << 8" (parenthesized_expression "((uint)puVar8 & 0xff)" ( (binary_expression "(uint)puVar8 & 0xff" (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal) | (binary_expression "(uint)puVar8 >> 8 & 0xff" (binary_expression "(uint)puVar8 >> 8" (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar6[3] = (((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = (binary_expression "(((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10) +\n                          ((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10)" ( (binary_expression "(uVar30 >> 0x10) << 0x18 | (uVar30 >> 0x18) << 0x10" (binary_expression "(uVar30 >> 0x10) << 0x18" (parenthesized_expression "(uVar30 >> 0x10)" ( (binary_expression "uVar30 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar30 >> 0x18) << 0x10" (parenthesized_expression "(uVar30 >> 0x18)" ( (binary_expression "uVar30 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff)" ( (binary_expression "(uVar30 & 0xff) << 8 | uVar30 >> 8 & 0xff" (binary_expression "(uVar30 & 0xff) << 8" (parenthesized_expression "(uVar30 & 0xff)" ( (binary_expression "uVar30 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar30 >> 8 & 0xff" (binary_expression "uVar30 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "piVar6[5] = (int)pOVar29;" (assignment_expression "piVar6[5] = (int)pOVar29" (subscript_expression "piVar6[5]" identifier [ number_literal ]) = (cast_expression "(int)pOVar29" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar6[4] = uStack_e0;" (assignment_expression "piVar6[4] = uStack_e0" (subscript_expression "piVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar38 = pcVar40;" (assignment_expression "pcVar38 = pcVar40" identifier = identifier) ;) (expression_statement "pOStack_dc = pOVar29;" (assignment_expression "pOStack_dc = pOVar29" identifier = identifier) ;) })) (expression_statement "pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);" (assignment_expression "pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1)" identifier = (cast_expression "(Output_file *)((int)&pOVar17->name_ + 1)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar17->name_ + 1)" ( (binary_expression "(int)&pOVar17->name_ + 1" (cast_expression "(int)&pOVar17->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar17->name_" & (field_expression "pOVar17->name_" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "puVar18 = puVar18 + 6;" (assignment_expression "puVar18 = puVar18 + 6" identifier = (binary_expression "puVar18 + 6" identifier + number_literal)) ;) (if_statement "if (pOVar26 == pOVar17) {\n              return;\n            }" if (parenthesized_expression "(pOVar26 == pOVar17)" ( (binary_expression "pOVar26 == pOVar17" identifier == identifier) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (labeled_statement "LAB_00283420:\n      Output_file::get_output_view\n                (pOVar15,CONCAT44(pcVar38,in_stack_ffffff1c),(size_t)pOVar17,pOVar28);" statement_identifier : (labeled_statement "Output_file::get_output_view\n                (pOVar15,CONCAT44(pcVar38,in_stack_ffffff1c),(size_t)pOVar17,pOVar28);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view\n                (pOVar15,CONCAT44(pcVar38,in_stack_ffffff1c),(size_t)pOVar17,pOVar28);" (call_expression "get_output_view\n                (pOVar15,CONCAT44(pcVar38,in_stack_ffffff1c),(size_t)pOVar17,pOVar28)" identifier (argument_list "(pOVar15,CONCAT44(pcVar38,in_stack_ffffff1c),(size_t)pOVar17,pOVar28)" ( identifier , (call_expression "CONCAT44(pcVar38,in_stack_ffffff1c)" identifier (argument_list "(pcVar38,in_stack_ffffff1c)" ( identifier , identifier ))) , (cast_expression "(size_t)pOVar17" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;))) })) (expression_statement "iVar27 = *(int *)(pcVar40 + -0x7924) + -0x500;" (assignment_expression "iVar27 = *(int *)(pcVar40 + -0x7924) + -0x500" identifier = (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x500" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf);" (call_expression "(**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) })) (expression_statement "iVar2 = 0xe3;" (assignment_expression "iVar2 = 0xe3" identifier = number_literal) ;) (expression_statement "pcVar37 = *(code **)(pcVar40 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcVar40 + -0x7810)" identifier = (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pOVar17 = (Output_file *)(iVar27 + -0x4f4);" (assignment_expression "pOVar17 = (Output_file *)(iVar27 + -0x4f4)" identifier = (cast_expression "(Output_file *)(iVar27 + -0x4f4)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + -0x4f4)" ( (binary_expression "iVar27 + -0x4f4" identifier + number_literal) )))) ;) (expression_statement "piVar3 = (int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);" (assignment_expression "piVar3 = (int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" identifier = (cast_expression "(int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar40 = pcVar37 + 0x245ddc;" (assignment_expression "pcVar40 = pcVar37 + 0x245ddc" identifier = (binary_expression "pcVar37 + 0x245ddc" identifier + number_literal)) ;) (expression_statement "pOVar26 = pOVar29;" (assignment_expression "pOVar26 = pOVar29" identifier = identifier) ;) (if_statement "if (*(code **)(*(int *)pcVar38 + 0x2c) == *(code **)(pcVar37 + 0x23ed38)) {\n    iStack_128 = *(int *)(pcVar38 + 100);\n    pOVar28 = *(Output_file **)(pcVar37 + 0x23e4b8);\n    pcVar37 = pcVar40;\n    if (iStack_128 == -1) goto LAB_00283750;\n  }\n  else {\n    pOVar28 = pOVar17;\n    iStack_128 = (**(code **)(*(int *)pcVar38 + 0x2c))(pcVar38);\n  }" if (parenthesized_expression "(*(code **)(*(int *)pcVar38 + 0x2c) == *(code **)(pcVar37 + 0x23ed38))" ( (binary_expression "*(code **)(*(int *)pcVar38 + 0x2c) == *(code **)(pcVar37 + 0x23ed38)" (pointer_expression "*(code **)(*(int *)pcVar38 + 0x2c)" * (cast_expression "(code **)(*(int *)pcVar38 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar38 + 0x2c)" ( (binary_expression "*(int *)pcVar38 + 0x2c" (pointer_expression "*(int *)pcVar38" * (cast_expression "(int *)pcVar38" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (pointer_expression "*(code **)(pcVar37 + 0x23ed38)" * (cast_expression "(code **)(pcVar37 + 0x23ed38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x23ed38)" ( (binary_expression "pcVar37 + 0x23ed38" identifier + number_literal) ))))) )) (compound_statement "{\n    iStack_128 = *(int *)(pcVar38 + 100);\n    pOVar28 = *(Output_file **)(pcVar37 + 0x23e4b8);\n    pcVar37 = pcVar40;\n    if (iStack_128 == -1) goto LAB_00283750;\n  }" { (expression_statement "iStack_128 = *(int *)(pcVar38 + 100);" (assignment_expression "iStack_128 = *(int *)(pcVar38 + 100)" identifier = (pointer_expression "*(int *)(pcVar38 + 100)" * (cast_expression "(int *)(pcVar38 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar38 + 100)" ( (binary_expression "pcVar38 + 100" identifier + number_literal) ))))) ;) (expression_statement "pOVar28 = *(Output_file **)(pcVar37 + 0x23e4b8);" (assignment_expression "pOVar28 = *(Output_file **)(pcVar37 + 0x23e4b8)" identifier = (pointer_expression "*(Output_file **)(pcVar37 + 0x23e4b8)" * (cast_expression "(Output_file **)(pcVar37 + 0x23e4b8)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x23e4b8)" ( (binary_expression "pcVar37 + 0x23e4b8" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = pcVar40;" (assignment_expression "pcVar37 = pcVar40" identifier = identifier) ;) (if_statement "if (iStack_128 == -1) goto LAB_00283750;" if (parenthesized_expression "(iStack_128 == -1)" ( (binary_expression "iStack_128 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00283750;" goto statement_identifier ;)) }) (else_clause "else {\n    pOVar28 = pOVar17;\n    iStack_128 = (**(code **)(*(int *)pcVar38 + 0x2c))(pcVar38);\n  }" else (compound_statement "{\n    pOVar28 = pOVar17;\n    iStack_128 = (**(code **)(*(int *)pcVar38 + 0x2c))(pcVar38);\n  }" { (expression_statement "pOVar28 = pOVar17;" (assignment_expression "pOVar28 = pOVar17" identifier = identifier) ;) (expression_statement "iStack_128 = (**(code **)(*(int *)pcVar38 + 0x2c))(pcVar38);" (assignment_expression "iStack_128 = (**(code **)(*(int *)pcVar38 + 0x2c))(pcVar38)" identifier = (call_expression "(**(code **)(*(int *)pcVar38 + 0x2c))(pcVar38)" (parenthesized_expression "(**(code **)(*(int *)pcVar38 + 0x2c))" ( (pointer_expression "**(code **)(*(int *)pcVar38 + 0x2c)" * (pointer_expression "*(code **)(*(int *)pcVar38 + 0x2c)" * (cast_expression "(code **)(*(int *)pcVar38 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar38 + 0x2c)" ( (binary_expression "*(int *)pcVar38 + 0x2c" (pointer_expression "*(int *)pcVar38" * (cast_expression "(int *)pcVar38" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar38)" ( identifier )))) ;) }))) (expression_statement "iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc);" (assignment_expression "iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc)" identifier = (pointer_expression "*(int *)(*(int *)(iVar2 + 4) + 0x1dc)" * (cast_expression "(int *)(*(int *)(iVar2 + 4) + 0x1dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 4) + 0x1dc)" ( (binary_expression "*(int *)(iVar2 + 4) + 0x1dc" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar20 = 0x44e;" (assignment_expression "uVar20 = 0x44e" identifier = number_literal) ;) (if_statement "if (iVar27 == 0) goto LAB_0028371c;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0028371c;" goto statement_identifier ;)) (expression_statement "iVar27 = *(int *)(iVar27 + 0x3c);" (assignment_expression "iVar27 = *(int *)(iVar27 + 0x3c)" identifier = (pointer_expression "*(int *)(iVar27 + 0x3c)" * (cast_expression "(int *)(iVar27 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = pcVar40;" (assignment_expression "pcVar37 = pcVar40" identifier = identifier) ;) (if_statement "if (*(int *)(iVar27 + 0x20) << 2 < 0) {\n    sStack_130 = *(size_t *)(iVar27 + 0x1c);\n    pOVar15 = *(Output_file **)(iVar27 + 0x18);\n    if (*(int *)(iVar27 + 0x20) << 1 < 0) {\n      sVar21 = sStack_130;\n      if (-1 < (int)pOVar15) {\n        sVar21 = *(uint *)(iVar27 + 0x14) + sStack_130;\n        iVar27 = (int)&pOVar15->name_ + (uint)(sVar21 < *(uint *)(iVar27 + 0x14));\n        pOVar15 = (Output_file *)(uint)(*(int *)(iStack_d8 + 8) < iVar27);\n        if (pOVar15 == (Output_file *)0x0) {\n          if (*(int *)(iStack_d8 + 8) == iVar27) goto LAB_00283768;\nLAB_00283554:\n          uStack_12c = *(uint *)(iStack_d8 + 0x10);\n          pOVar28 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            pOVar15 = *(Output_file **)&pOVar17->file_size_;\n            pOVar26 = (Output_file *)piVar3[0x2e];\n            iStack_d8 = (int)pOVar17->file_size_;\n            if (pOVar26 <= pOVar15) {\n              pcVar23 = pOVar17->name_;\n              pOVar35 = (Output_file *)pOVar17->o_;\n              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }\n              uVar14 = (int)pOVar15 - (int)pOVar26;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283710;\n              iVar16 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar16 == 0) goto LAB_002836f8;\n              iVar7 = uVar14 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar10 = *piVar6;\n              *piVar6 = iVar10 + 1;\n              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = iStack_d8;\n              piVar6[1] = iStack_128;\n              piVar6[2] = (int)(pcVar23 + iVar27);\n              piVar6[3] = (int)pOVar35;\n              pcVar37 = pcVar40;\n            }\n            pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1);\n            pOVar17 = (Output_file *)&pOVar17->base_;\n            if (pOVar29 == pOVar28) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283778:\n      Output_file::get_output_view(pOVar15,CONCAT44(pcVar37,in_stack_fffffecc),sVar21,pOVar28);\n    }\n    (**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);\n  }" if (parenthesized_expression "(*(int *)(iVar27 + 0x20) << 2 < 0)" ( (binary_expression "*(int *)(iVar27 + 0x20) << 2 < 0" (binary_expression "*(int *)(iVar27 + 0x20) << 2" (pointer_expression "*(int *)(iVar27 + 0x20)" * (cast_expression "(int *)(iVar27 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x20)" ( (binary_expression "iVar27 + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n    sStack_130 = *(size_t *)(iVar27 + 0x1c);\n    pOVar15 = *(Output_file **)(iVar27 + 0x18);\n    if (*(int *)(iVar27 + 0x20) << 1 < 0) {\n      sVar21 = sStack_130;\n      if (-1 < (int)pOVar15) {\n        sVar21 = *(uint *)(iVar27 + 0x14) + sStack_130;\n        iVar27 = (int)&pOVar15->name_ + (uint)(sVar21 < *(uint *)(iVar27 + 0x14));\n        pOVar15 = (Output_file *)(uint)(*(int *)(iStack_d8 + 8) < iVar27);\n        if (pOVar15 == (Output_file *)0x0) {\n          if (*(int *)(iStack_d8 + 8) == iVar27) goto LAB_00283768;\nLAB_00283554:\n          uStack_12c = *(uint *)(iStack_d8 + 0x10);\n          pOVar28 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            pOVar15 = *(Output_file **)&pOVar17->file_size_;\n            pOVar26 = (Output_file *)piVar3[0x2e];\n            iStack_d8 = (int)pOVar17->file_size_;\n            if (pOVar26 <= pOVar15) {\n              pcVar23 = pOVar17->name_;\n              pOVar35 = (Output_file *)pOVar17->o_;\n              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }\n              uVar14 = (int)pOVar15 - (int)pOVar26;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283710;\n              iVar16 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar16 == 0) goto LAB_002836f8;\n              iVar7 = uVar14 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar10 = *piVar6;\n              *piVar6 = iVar10 + 1;\n              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = iStack_d8;\n              piVar6[1] = iStack_128;\n              piVar6[2] = (int)(pcVar23 + iVar27);\n              piVar6[3] = (int)pOVar35;\n              pcVar37 = pcVar40;\n            }\n            pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1);\n            pOVar17 = (Output_file *)&pOVar17->base_;\n            if (pOVar29 == pOVar28) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283778:\n      Output_file::get_output_view(pOVar15,CONCAT44(pcVar37,in_stack_fffffecc),sVar21,pOVar28);\n    }\n    (**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);\n  }" { (expression_statement "sStack_130 = *(size_t *)(iVar27 + 0x1c);" (assignment_expression "sStack_130 = *(size_t *)(iVar27 + 0x1c)" identifier = (pointer_expression "*(size_t *)(iVar27 + 0x1c)" * (cast_expression "(size_t *)(iVar27 + 0x1c)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x1c)" ( (binary_expression "iVar27 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "pOVar15 = *(Output_file **)(iVar27 + 0x18);" (assignment_expression "pOVar15 = *(Output_file **)(iVar27 + 0x18)" identifier = (pointer_expression "*(Output_file **)(iVar27 + 0x18)" * (cast_expression "(Output_file **)(iVar27 + 0x18)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x18)" ( (binary_expression "iVar27 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar27 + 0x20) << 1 < 0) {\n      sVar21 = sStack_130;\n      if (-1 < (int)pOVar15) {\n        sVar21 = *(uint *)(iVar27 + 0x14) + sStack_130;\n        iVar27 = (int)&pOVar15->name_ + (uint)(sVar21 < *(uint *)(iVar27 + 0x14));\n        pOVar15 = (Output_file *)(uint)(*(int *)(iStack_d8 + 8) < iVar27);\n        if (pOVar15 == (Output_file *)0x0) {\n          if (*(int *)(iStack_d8 + 8) == iVar27) goto LAB_00283768;\nLAB_00283554:\n          uStack_12c = *(uint *)(iStack_d8 + 0x10);\n          pOVar28 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            pOVar15 = *(Output_file **)&pOVar17->file_size_;\n            pOVar26 = (Output_file *)piVar3[0x2e];\n            iStack_d8 = (int)pOVar17->file_size_;\n            if (pOVar26 <= pOVar15) {\n              pcVar23 = pOVar17->name_;\n              pOVar35 = (Output_file *)pOVar17->o_;\n              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }\n              uVar14 = (int)pOVar15 - (int)pOVar26;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283710;\n              iVar16 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar16 == 0) goto LAB_002836f8;\n              iVar7 = uVar14 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar10 = *piVar6;\n              *piVar6 = iVar10 + 1;\n              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = iStack_d8;\n              piVar6[1] = iStack_128;\n              piVar6[2] = (int)(pcVar23 + iVar27);\n              piVar6[3] = (int)pOVar35;\n              pcVar37 = pcVar40;\n            }\n            pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1);\n            pOVar17 = (Output_file *)&pOVar17->base_;\n            if (pOVar29 == pOVar28) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283778:\n      Output_file::get_output_view(pOVar15,CONCAT44(pcVar37,in_stack_fffffecc),sVar21,pOVar28);\n    }" if (parenthesized_expression "(*(int *)(iVar27 + 0x20) << 1 < 0)" ( (binary_expression "*(int *)(iVar27 + 0x20) << 1 < 0" (binary_expression "*(int *)(iVar27 + 0x20) << 1" (pointer_expression "*(int *)(iVar27 + 0x20)" * (cast_expression "(int *)(iVar27 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x20)" ( (binary_expression "iVar27 + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n      sVar21 = sStack_130;\n      if (-1 < (int)pOVar15) {\n        sVar21 = *(uint *)(iVar27 + 0x14) + sStack_130;\n        iVar27 = (int)&pOVar15->name_ + (uint)(sVar21 < *(uint *)(iVar27 + 0x14));\n        pOVar15 = (Output_file *)(uint)(*(int *)(iStack_d8 + 8) < iVar27);\n        if (pOVar15 == (Output_file *)0x0) {\n          if (*(int *)(iStack_d8 + 8) == iVar27) goto LAB_00283768;\nLAB_00283554:\n          uStack_12c = *(uint *)(iStack_d8 + 0x10);\n          pOVar28 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            pOVar15 = *(Output_file **)&pOVar17->file_size_;\n            pOVar26 = (Output_file *)piVar3[0x2e];\n            iStack_d8 = (int)pOVar17->file_size_;\n            if (pOVar26 <= pOVar15) {\n              pcVar23 = pOVar17->name_;\n              pOVar35 = (Output_file *)pOVar17->o_;\n              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }\n              uVar14 = (int)pOVar15 - (int)pOVar26;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283710;\n              iVar16 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar16 == 0) goto LAB_002836f8;\n              iVar7 = uVar14 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar10 = *piVar6;\n              *piVar6 = iVar10 + 1;\n              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = iStack_d8;\n              piVar6[1] = iStack_128;\n              piVar6[2] = (int)(pcVar23 + iVar27);\n              piVar6[3] = (int)pOVar35;\n              pcVar37 = pcVar40;\n            }\n            pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1);\n            pOVar17 = (Output_file *)&pOVar17->base_;\n            if (pOVar29 == pOVar28) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283778:\n      Output_file::get_output_view(pOVar15,CONCAT44(pcVar37,in_stack_fffffecc),sVar21,pOVar28);\n    }" { (expression_statement "sVar21 = sStack_130;" (assignment_expression "sVar21 = sStack_130" identifier = identifier) ;) (if_statement "if (-1 < (int)pOVar15) {\n        sVar21 = *(uint *)(iVar27 + 0x14) + sStack_130;\n        iVar27 = (int)&pOVar15->name_ + (uint)(sVar21 < *(uint *)(iVar27 + 0x14));\n        pOVar15 = (Output_file *)(uint)(*(int *)(iStack_d8 + 8) < iVar27);\n        if (pOVar15 == (Output_file *)0x0) {\n          if (*(int *)(iStack_d8 + 8) == iVar27) goto LAB_00283768;\nLAB_00283554:\n          uStack_12c = *(uint *)(iStack_d8 + 0x10);\n          pOVar28 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            pOVar15 = *(Output_file **)&pOVar17->file_size_;\n            pOVar26 = (Output_file *)piVar3[0x2e];\n            iStack_d8 = (int)pOVar17->file_size_;\n            if (pOVar26 <= pOVar15) {\n              pcVar23 = pOVar17->name_;\n              pOVar35 = (Output_file *)pOVar17->o_;\n              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }\n              uVar14 = (int)pOVar15 - (int)pOVar26;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283710;\n              iVar16 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar16 == 0) goto LAB_002836f8;\n              iVar7 = uVar14 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar10 = *piVar6;\n              *piVar6 = iVar10 + 1;\n              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = iStack_d8;\n              piVar6[1] = iStack_128;\n              piVar6[2] = (int)(pcVar23 + iVar27);\n              piVar6[3] = (int)pOVar35;\n              pcVar37 = pcVar40;\n            }\n            pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1);\n            pOVar17 = (Output_file *)&pOVar17->base_;\n            if (pOVar29 == pOVar28) {\n              return;\n            }\n          } while( true );\n        }\n      }" if (parenthesized_expression "(-1 < (int)pOVar15)" ( (binary_expression "-1 < (int)pOVar15" number_literal < (cast_expression "(int)pOVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        sVar21 = *(uint *)(iVar27 + 0x14) + sStack_130;\n        iVar27 = (int)&pOVar15->name_ + (uint)(sVar21 < *(uint *)(iVar27 + 0x14));\n        pOVar15 = (Output_file *)(uint)(*(int *)(iStack_d8 + 8) < iVar27);\n        if (pOVar15 == (Output_file *)0x0) {\n          if (*(int *)(iStack_d8 + 8) == iVar27) goto LAB_00283768;\nLAB_00283554:\n          uStack_12c = *(uint *)(iStack_d8 + 0x10);\n          pOVar28 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            pOVar15 = *(Output_file **)&pOVar17->file_size_;\n            pOVar26 = (Output_file *)piVar3[0x2e];\n            iStack_d8 = (int)pOVar17->file_size_;\n            if (pOVar26 <= pOVar15) {\n              pcVar23 = pOVar17->name_;\n              pOVar35 = (Output_file *)pOVar17->o_;\n              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }\n              uVar14 = (int)pOVar15 - (int)pOVar26;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283710;\n              iVar16 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar16 == 0) goto LAB_002836f8;\n              iVar7 = uVar14 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar10 = *piVar6;\n              *piVar6 = iVar10 + 1;\n              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = iStack_d8;\n              piVar6[1] = iStack_128;\n              piVar6[2] = (int)(pcVar23 + iVar27);\n              piVar6[3] = (int)pOVar35;\n              pcVar37 = pcVar40;\n            }\n            pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1);\n            pOVar17 = (Output_file *)&pOVar17->base_;\n            if (pOVar29 == pOVar28) {\n              return;\n            }\n          } while( true );\n        }\n      }" { (expression_statement "sVar21 = *(uint *)(iVar27 + 0x14) + sStack_130;" (assignment_expression "sVar21 = *(uint *)(iVar27 + 0x14) + sStack_130" identifier = (binary_expression "*(uint *)(iVar27 + 0x14) + sStack_130" (pointer_expression "*(uint *)(iVar27 + 0x14)" * (cast_expression "(uint *)(iVar27 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x14)" ( (binary_expression "iVar27 + 0x14" identifier + number_literal) )))) + identifier)) ;) (expression_statement "iVar27 = (int)&pOVar15->name_ + (uint)(sVar21 < *(uint *)(iVar27 + 0x14));" (assignment_expression "iVar27 = (int)&pOVar15->name_ + (uint)(sVar21 < *(uint *)(iVar27 + 0x14))" identifier = (binary_expression "(int)&pOVar15->name_ + (uint)(sVar21 < *(uint *)(iVar27 + 0x14))" (cast_expression "(int)&pOVar15->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar15->name_" & (field_expression "pOVar15->name_" identifier -> field_identifier))) + (call_expression "(uint)(sVar21 < *(uint *)(iVar27 + 0x14))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(sVar21 < *(uint *)(iVar27 + 0x14))" ( (binary_expression "sVar21 < *(uint *)(iVar27 + 0x14)" identifier < (pointer_expression "*(uint *)(iVar27 + 0x14)" * (cast_expression "(uint *)(iVar27 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x14)" ( (binary_expression "iVar27 + 0x14" identifier + number_literal) ))))) ))))) ;) (expression_statement "pOVar15 = (Output_file *)(uint)(*(int *)(iStack_d8 + 8) < iVar27);" (assignment_expression "pOVar15 = (Output_file *)(uint)(*(int *)(iStack_d8 + 8) < iVar27)" identifier = (cast_expression "(Output_file *)(uint)(*(int *)(iStack_d8 + 8) < iVar27)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)(iStack_d8 + 8) < iVar27)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iStack_d8 + 8) < iVar27)" ( (binary_expression "*(int *)(iStack_d8 + 8) < iVar27" (pointer_expression "*(int *)(iStack_d8 + 8)" * (cast_expression "(int *)(iStack_d8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_d8 + 8)" ( (binary_expression "iStack_d8 + 8" identifier + number_literal) )))) < identifier) ))))) ;) (if_statement "if (pOVar15 == (Output_file *)0x0) {\n          if (*(int *)(iStack_d8 + 8) == iVar27) goto LAB_00283768;\nLAB_00283554:\n          uStack_12c = *(uint *)(iStack_d8 + 0x10);\n          pOVar28 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            pOVar15 = *(Output_file **)&pOVar17->file_size_;\n            pOVar26 = (Output_file *)piVar3[0x2e];\n            iStack_d8 = (int)pOVar17->file_size_;\n            if (pOVar26 <= pOVar15) {\n              pcVar23 = pOVar17->name_;\n              pOVar35 = (Output_file *)pOVar17->o_;\n              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }\n              uVar14 = (int)pOVar15 - (int)pOVar26;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283710;\n              iVar16 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar16 == 0) goto LAB_002836f8;\n              iVar7 = uVar14 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar10 = *piVar6;\n              *piVar6 = iVar10 + 1;\n              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = iStack_d8;\n              piVar6[1] = iStack_128;\n              piVar6[2] = (int)(pcVar23 + iVar27);\n              piVar6[3] = (int)pOVar35;\n              pcVar37 = pcVar40;\n            }\n            pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1);\n            pOVar17 = (Output_file *)&pOVar17->base_;\n            if (pOVar29 == pOVar28) {\n              return;\n            }\n          } while( true );\n        }" if (parenthesized_expression "(pOVar15 == (Output_file *)0x0)" ( (binary_expression "pOVar15 == (Output_file *)0x0" identifier == (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (*(int *)(iStack_d8 + 8) == iVar27) goto LAB_00283768;\nLAB_00283554:\n          uStack_12c = *(uint *)(iStack_d8 + 0x10);\n          pOVar28 = (Output_file *)0x0;\n          if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            pOVar15 = *(Output_file **)&pOVar17->file_size_;\n            pOVar26 = (Output_file *)piVar3[0x2e];\n            iStack_d8 = (int)pOVar17->file_size_;\n            if (pOVar26 <= pOVar15) {\n              pcVar23 = pOVar17->name_;\n              pOVar35 = (Output_file *)pOVar17->o_;\n              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }\n              uVar14 = (int)pOVar15 - (int)pOVar26;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283710;\n              iVar16 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar16 == 0) goto LAB_002836f8;\n              iVar7 = uVar14 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar10 = *piVar6;\n              *piVar6 = iVar10 + 1;\n              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = iStack_d8;\n              piVar6[1] = iStack_128;\n              piVar6[2] = (int)(pcVar23 + iVar27);\n              piVar6[3] = (int)pOVar35;\n              pcVar37 = pcVar40;\n            }\n            pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1);\n            pOVar17 = (Output_file *)&pOVar17->base_;\n            if (pOVar29 == pOVar28) {\n              return;\n            }\n          } while( true );\n        }" { (if_statement "if (*(int *)(iStack_d8 + 8) == iVar27) goto LAB_00283768;" if (parenthesized_expression "(*(int *)(iStack_d8 + 8) == iVar27)" ( (binary_expression "*(int *)(iStack_d8 + 8) == iVar27" (pointer_expression "*(int *)(iStack_d8 + 8)" * (cast_expression "(int *)(iStack_d8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_d8 + 8)" ( (binary_expression "iStack_d8 + 8" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_00283768;" goto statement_identifier ;)) (labeled_statement "LAB_00283554:\n          uStack_12c = *(uint *)(iStack_d8 + 0x10);" statement_identifier : (expression_statement "uStack_12c = *(uint *)(iStack_d8 + 0x10);" (assignment_expression "uStack_12c = *(uint *)(iStack_d8 + 0x10)" identifier = (pointer_expression "*(uint *)(iStack_d8 + 0x10)" * (cast_expression "(uint *)(iStack_d8 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_d8 + 0x10)" ( (binary_expression "iStack_d8 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "pOVar28 = (Output_file *)0x0;" (assignment_expression "pOVar28 = (Output_file *)0x0" identifier = (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pOVar29 == (Output_file *)0x0) {\n            return;\n          }" if (parenthesized_expression "(pOVar29 == (Output_file *)0x0)" ( (binary_expression "pOVar29 == (Output_file *)0x0" identifier == (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (do_statement "do {\n            pOVar15 = *(Output_file **)&pOVar17->file_size_;\n            pOVar26 = (Output_file *)piVar3[0x2e];\n            iStack_d8 = (int)pOVar17->file_size_;\n            if (pOVar26 <= pOVar15) {\n              pcVar23 = pOVar17->name_;\n              pOVar35 = (Output_file *)pOVar17->o_;\n              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }\n              uVar14 = (int)pOVar15 - (int)pOVar26;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283710;\n              iVar16 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar16 == 0) goto LAB_002836f8;\n              iVar7 = uVar14 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar10 = *piVar6;\n              *piVar6 = iVar10 + 1;\n              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = iStack_d8;\n              piVar6[1] = iStack_128;\n              piVar6[2] = (int)(pcVar23 + iVar27);\n              piVar6[3] = (int)pOVar35;\n              pcVar37 = pcVar40;\n            }\n            pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1);\n            pOVar17 = (Output_file *)&pOVar17->base_;\n            if (pOVar29 == pOVar28) {\n              return;\n            }\n          } while( true );" do (compound_statement "{\n            pOVar15 = *(Output_file **)&pOVar17->file_size_;\n            pOVar26 = (Output_file *)piVar3[0x2e];\n            iStack_d8 = (int)pOVar17->file_size_;\n            if (pOVar26 <= pOVar15) {\n              pcVar23 = pOVar17->name_;\n              pOVar35 = (Output_file *)pOVar17->o_;\n              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }\n              uVar14 = (int)pOVar15 - (int)pOVar26;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283710;\n              iVar16 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar16 == 0) goto LAB_002836f8;\n              iVar7 = uVar14 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar10 = *piVar6;\n              *piVar6 = iVar10 + 1;\n              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = iStack_d8;\n              piVar6[1] = iStack_128;\n              piVar6[2] = (int)(pcVar23 + iVar27);\n              piVar6[3] = (int)pOVar35;\n              pcVar37 = pcVar40;\n            }\n            pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1);\n            pOVar17 = (Output_file *)&pOVar17->base_;\n            if (pOVar29 == pOVar28) {\n              return;\n            }\n          }" { (expression_statement "pOVar15 = *(Output_file **)&pOVar17->file_size_;" (assignment_expression "pOVar15 = *(Output_file **)&pOVar17->file_size_" identifier = (pointer_expression "*(Output_file **)&pOVar17->file_size_" * (cast_expression "(Output_file **)&pOVar17->file_size_" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar17->file_size_" & (field_expression "pOVar17->file_size_" identifier -> field_identifier))))) ;) (expression_statement "pOVar26 = (Output_file *)piVar3[0x2e];" (assignment_expression "pOVar26 = (Output_file *)piVar3[0x2e]" identifier = (cast_expression "(Output_file *)piVar3[0x2e]" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "iStack_d8 = (int)pOVar17->file_size_;" (assignment_expression "iStack_d8 = (int)pOVar17->file_size_" identifier = (cast_expression "(int)pOVar17->file_size_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar17->file_size_" identifier -> field_identifier))) ;) (if_statement "if (pOVar26 <= pOVar15) {\n              pcVar23 = pOVar17->name_;\n              pOVar35 = (Output_file *)pOVar17->o_;\n              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }\n              uVar14 = (int)pOVar15 - (int)pOVar26;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283710;\n              iVar16 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar16 == 0) goto LAB_002836f8;\n              iVar7 = uVar14 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar10 = *piVar6;\n              *piVar6 = iVar10 + 1;\n              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = iStack_d8;\n              piVar6[1] = iStack_128;\n              piVar6[2] = (int)(pcVar23 + iVar27);\n              piVar6[3] = (int)pOVar35;\n              pcVar37 = pcVar40;\n            }" if (parenthesized_expression "(pOVar26 <= pOVar15)" ( (binary_expression "pOVar26 <= pOVar15" identifier <= identifier) )) (compound_statement "{\n              pcVar23 = pOVar17->name_;\n              pOVar35 = (Output_file *)pOVar17->o_;\n              if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }\n              uVar14 = (int)pOVar15 - (int)pOVar26;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283710;\n              iVar16 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar16 == 0) goto LAB_002836f8;\n              iVar7 = uVar14 * 4;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              piVar6 = (int *)(piVar3[0x16] + iVar7);\n              iVar10 = *piVar6;\n              *piVar6 = iVar10 + 1;\n              piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;\n              piVar6[5] = 0;\n              piVar6[4] = 0;\n              *piVar6 = iStack_d8;\n              piVar6[1] = iStack_128;\n              piVar6[2] = (int)(pcVar23 + iVar27);\n              piVar6[3] = (int)pOVar35;\n              pcVar37 = pcVar40;\n            }" { (expression_statement "pcVar23 = pOVar17->name_;" (assignment_expression "pcVar23 = pOVar17->name_" identifier = (field_expression "pOVar17->name_" identifier -> field_identifier)) ;) (expression_statement "pOVar35 = (Output_file *)pOVar17->o_;" (assignment_expression "pOVar35 = (Output_file *)pOVar17->o_" identifier = (cast_expression "(Output_file *)pOVar17->o_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar17->o_" identifier -> field_identifier))) ;) (if_statement "if ((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)) {\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }\n              else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }" if (parenthesized_expression "((uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff))" ( (binary_expression "(uStack_e0 == 0xffffffff) && (pOStack_dc == (Output_file *)0xffffffff)" (parenthesized_expression "(uStack_e0 == 0xffffffff)" ( (binary_expression "uStack_e0 == 0xffffffff" identifier == number_literal) )) && (parenthesized_expression "(pOStack_dc == (Output_file *)0xffffffff)" ( (binary_expression "pOStack_dc == (Output_file *)0xffffffff" identifier == (cast_expression "(Output_file *)0xffffffff" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;\n                pOVar26 = pOVar35;\n                pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));\n                pcVar40 = pcVar37;\n                if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;\n                pOVar26 = (Output_file *)piVar3[0x2e];\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);\n                iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);\n              }" { (if_statement "if (pcVar23 != (char *)((int)pOVar35 >> 0x1f)) goto LAB_00283734;" if (parenthesized_expression "(pcVar23 != (char *)((int)pOVar35 >> 0x1f))" ( (binary_expression "pcVar23 != (char *)((int)pOVar35 >> 0x1f)" identifier != (cast_expression "(char *)((int)pOVar35 >> 0x1f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pOVar35 >> 0x1f)" ( (binary_expression "(int)pOVar35 >> 0x1f" (cast_expression "(int)pOVar35" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) )) (goto_statement "goto LAB_00283734;" goto statement_identifier ;)) (expression_statement "pOVar26 = pOVar35;" (assignment_expression "pOVar26 = pOVar35" identifier = identifier) ;) (expression_statement "pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18));" (assignment_expression "pOVar11 = (Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18))" identifier = (cast_expression "(Output_file *)\n                          (**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18))" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar40 + -0x767c))\n                                    (pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18))" (parenthesized_expression "(**(code **)(pcVar40 + -0x767c))" ( (pointer_expression "**(code **)(pcVar40 + -0x767c)" * (pointer_expression "*(code **)(pcVar40 + -0x767c)" * (cast_expression "(code **)(pcVar40 + -0x767c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x767c)" ( (binary_expression "pcVar40 + -0x767c" identifier + number_literal) ))))) )) (argument_list "(pcVar38,*(undefined4 *)(iVar2 + 8),\n                                     *(undefined4 *)(iVar2 + 0x18))" ( identifier , (pointer_expression "*(undefined4 *)(iVar2 + 8)" * (cast_expression "(undefined4 *)(iVar2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar2 + 0x18)" * (cast_expression "(undefined4 *)(iVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) ))))) ;) (expression_statement "pcVar40 = pcVar37;" (assignment_expression "pcVar40 = pcVar37" identifier = identifier) ;) (if_statement "if (pOVar11 == (Output_file *)0xffffffff) goto LAB_00283718;" if (parenthesized_expression "(pOVar11 == (Output_file *)0xffffffff)" ( (binary_expression "pOVar11 == (Output_file *)0xffffffff" identifier == (cast_expression "(Output_file *)0xffffffff" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00283718;" goto statement_identifier ;)) (expression_statement "pOVar26 = (Output_file *)piVar3[0x2e];" (assignment_expression "pOVar26 = (Output_file *)piVar3[0x2e]" identifier = (cast_expression "(Output_file *)piVar3[0x2e]" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_);" (assignment_expression "pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_)" identifier = (cast_expression "(Output_file *)((int)&pOVar35->name_ + (int)&pOVar11->name_)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar35->name_ + (int)&pOVar11->name_)" ( (binary_expression "(int)&pOVar35->name_ + (int)&pOVar11->name_" (cast_expression "(int)&pOVar35->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar35->name_" & (field_expression "pOVar35->name_" identifier -> field_identifier))) + (cast_expression "(int)&pOVar11->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar11->name_" & (field_expression "pOVar11->name_" identifier -> field_identifier)))) )))) ;) (expression_statement "iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f);" (assignment_expression "iVar27 = (uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f)" identifier = (binary_expression "(uint)(pOVar35 < pOVar11) + ((int)pOVar11 >> 0x1f)" (call_expression "(uint)(pOVar35 < pOVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar35 < pOVar11)" ( (binary_expression "pOVar35 < pOVar11" identifier < identifier) ))) + (parenthesized_expression "((int)pOVar11 >> 0x1f)" ( (binary_expression "(int)pOVar11 >> 0x1f" (cast_expression "(int)pOVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) }) (else_clause "else {\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }" else (compound_statement "{\n                pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);\n                iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;\n                pcVar40 = pcVar37;\n              }" { (expression_statement "pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_);" (assignment_expression "pOVar35 = (Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_)" identifier = (cast_expression "(Output_file *)((int)&pOVar35->name_ + (int)&pOStack_dc->name_)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar35->name_ + (int)&pOStack_dc->name_)" ( (binary_expression "(int)&pOVar35->name_ + (int)&pOStack_dc->name_" (cast_expression "(int)&pOVar35->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar35->name_" & (field_expression "pOVar35->name_" identifier -> field_identifier))) + (cast_expression "(int)&pOStack_dc->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOStack_dc->name_" & (field_expression "pOStack_dc->name_" identifier -> field_identifier)))) )))) ;) (expression_statement "iVar27 = (pOVar35 < pOStack_dc) + uStack_e0;" (assignment_expression "iVar27 = (pOVar35 < pOStack_dc) + uStack_e0" identifier = (binary_expression "(pOVar35 < pOStack_dc) + uStack_e0" (parenthesized_expression "(pOVar35 < pOStack_dc)" ( (binary_expression "pOVar35 < pOStack_dc" identifier < identifier) )) + identifier)) ;) (expression_statement "pcVar40 = pcVar37;" (assignment_expression "pcVar40 = pcVar37" identifier = identifier) ;) }))) (expression_statement "uVar14 = (int)pOVar15 - (int)pOVar26;" (assignment_expression "uVar14 = (int)pOVar15 - (int)pOVar26" identifier = (binary_expression "(int)pOVar15 - (int)pOVar26" (cast_expression "(int)pOVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pOVar26" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);" (assignment_expression "piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3)" identifier = (cast_expression "(int *)(**(code **)(*piVar3 + 0x74))(piVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar3 + 0x74))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0x74))" ( (pointer_expression "**(code **)(*piVar3 + 0x74)" * (pointer_expression "*(code **)(*piVar3 + 0x74)" * (cast_expression "(code **)(*piVar3 + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x74)" ( (binary_expression "*piVar3 + 0x74" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))))) ;) (if_statement "if (piVar3[0x16] == 0) goto LAB_00283710;" if (parenthesized_expression "(piVar3[0x16] == 0)" ( (binary_expression "piVar3[0x16] == 0" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00283710;" goto statement_identifier ;)) (expression_statement "iVar16 = piVar3[0x17];" (assignment_expression "iVar16 = piVar3[0x17]" identifier = (subscript_expression "piVar3[0x17]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = 0x604;" (assignment_expression "uVar20 = 0x604" identifier = number_literal) ;) (if_statement "if (iVar16 == 0) goto LAB_002836f8;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002836f8;" goto statement_identifier ;)) (expression_statement "iVar7 = uVar14 * 4;" (assignment_expression "iVar7 = uVar14 * 4" identifier = (binary_expression "uVar14 * 4" identifier * number_literal)) ;) (if_statement "if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14) {\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }" if (parenthesized_expression "((uint)(piVar6[1] - *piVar6 >> 2) <= uVar14)" ( (binary_expression "(uint)(piVar6[1] - *piVar6 >> 2) <= uVar14" (call_expression "(uint)(piVar6[1] - *piVar6 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar6[1] - *piVar6 >> 2)" ( (binary_expression "piVar6[1] - *piVar6 >> 2" (binary_expression "piVar6[1] - *piVar6" (subscript_expression "piVar6[1]" identifier [ number_literal ]) - (pointer_expression "*piVar6" * identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                uVar20 = 0x605;\nLAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );\n              }" { (expression_statement "uVar20 = 0x605;" (assignment_expression "uVar20 = 0x605" identifier = number_literal) ;) (labeled_statement "LAB_002836f8:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );" statement_identifier : (do_statement "do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                } while( true );" do (compound_statement "{\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283710:\n                  uVar20 = 0x603;\n                }" { (expression_statement "(**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);" (call_expression "(**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x4570" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x684" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_00283710:\n                  uVar20 = 0x603;" statement_identifier : (expression_statement "uVar20 = 0x603;" (assignment_expression "uVar20 = 0x603" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "piVar6 = (int *)(piVar3[0x16] + iVar7);" (assignment_expression "piVar6 = (int *)(piVar3[0x16] + iVar7)" identifier = (cast_expression "(int *)(piVar3[0x16] + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0x16] + iVar7)" ( (binary_expression "piVar3[0x16] + iVar7" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "*piVar6 = iVar10 + 1;" (assignment_expression "*piVar6 = iVar10 + 1" (pointer_expression "*piVar6" * identifier) = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)\n              ;" (assignment_expression "piVar6 = (int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)" identifier = (cast_expression "(int *)(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130)" ( (binary_expression "uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18 + sStack_130" (binary_expression "uStack_12c + (iVar10 + *(int *)(iVar16 + iVar7)) * 0x18" identifier + (binary_expression "(iVar10 + *(int *)(iVar16 + iVar7)) * 0x18" (parenthesized_expression "(iVar10 + *(int *)(iVar16 + iVar7))" ( (binary_expression "iVar10 + *(int *)(iVar16 + iVar7)" identifier + (pointer_expression "*(int *)(iVar16 + iVar7)" * (cast_expression "(int *)(iVar16 + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + iVar7)" ( (binary_expression "iVar16 + iVar7" identifier + identifier) ))))) )) * number_literal)) + identifier) )))) ;) (expression_statement "piVar6[5] = 0;" (assignment_expression "piVar6[5] = 0" (subscript_expression "piVar6[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[4] = 0;" (assignment_expression "piVar6[4] = 0" (subscript_expression "piVar6[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar6 = iStack_d8;" (assignment_expression "*piVar6 = iStack_d8" (pointer_expression "*piVar6" * identifier) = identifier) ;) (expression_statement "piVar6[1] = iStack_128;" (assignment_expression "piVar6[1] = iStack_128" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[2] = (int)(pcVar23 + iVar27);" (assignment_expression "piVar6[2] = (int)(pcVar23 + iVar27)" (subscript_expression "piVar6[2]" identifier [ number_literal ]) = (cast_expression "(int)(pcVar23 + iVar27)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar23 + iVar27)" ( (binary_expression "pcVar23 + iVar27" identifier + identifier) )))) ;) (expression_statement "piVar6[3] = (int)pOVar35;" (assignment_expression "piVar6[3] = (int)pOVar35" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = (cast_expression "(int)pOVar35" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar37 = pcVar40;" (assignment_expression "pcVar37 = pcVar40" identifier = identifier) ;) })) (expression_statement "pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1);" (assignment_expression "pOVar28 = (Output_file *)((int)&pOVar28->name_ + 1)" identifier = (cast_expression "(Output_file *)((int)&pOVar28->name_ + 1)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar28->name_ + 1)" ( (binary_expression "(int)&pOVar28->name_ + 1" (cast_expression "(int)&pOVar28->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar28->name_" & (field_expression "pOVar28->name_" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pOVar17 = (Output_file *)&pOVar17->base_;" (assignment_expression "pOVar17 = (Output_file *)&pOVar17->base_" identifier = (cast_expression "(Output_file *)&pOVar17->base_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar17->base_" & (field_expression "pOVar17->base_" identifier -> field_identifier)))) ;) (if_statement "if (pOVar29 == pOVar28) {\n              return;\n            }" if (parenthesized_expression "(pOVar29 == pOVar28)" ( (binary_expression "pOVar29 == pOVar28" identifier == identifier) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (labeled_statement "LAB_00283778:\n      Output_file::get_output_view(pOVar15,CONCAT44(pcVar37,in_stack_fffffecc),sVar21,pOVar28);" statement_identifier : (labeled_statement "Output_file::get_output_view(pOVar15,CONCAT44(pcVar37,in_stack_fffffecc),sVar21,pOVar28);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view(pOVar15,CONCAT44(pcVar37,in_stack_fffffecc),sVar21,pOVar28);" (call_expression "get_output_view(pOVar15,CONCAT44(pcVar37,in_stack_fffffecc),sVar21,pOVar28)" identifier (argument_list "(pOVar15,CONCAT44(pcVar37,in_stack_fffffecc),sVar21,pOVar28)" ( identifier , (call_expression "CONCAT44(pcVar37,in_stack_fffffecc)" identifier (argument_list "(pcVar37,in_stack_fffffecc)" ( identifier , identifier ))) , identifier , identifier ))) ;))) })) (expression_statement "(**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);" (call_expression "(**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x500" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "iVar2 = 0xe3;" (assignment_expression "iVar2 = 0xe3" identifier = number_literal) ;) (expression_statement "pcVar38 = *(code **)(pcVar40 + -0x7810);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + -0x7810)" identifier = (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pOVar29 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x4f4);" (assignment_expression "pOVar29 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x4f4)" identifier = (cast_expression "(Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x4f4)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + -0x7924) + -0x4f4)" ( (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x4f4" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar3 = (int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);" (assignment_expression "piVar3 = (int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" identifier = (cast_expression "(int *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar38)();" (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar40 = pcVar38 + 0x245a80;" (assignment_expression "pcVar40 = pcVar38 + 0x245a80" identifier = (binary_expression "pcVar38 + 0x245a80" identifier + number_literal)) ;) (if_statement "if (*(code **)(*(int *)pcVar37 + 0x2c) == *(code **)(pcVar38 + 0x23e9dc)) {\n    iStack_178 = *(int *)(pcVar37 + 100);\n    pOVar17 = *(Output_file **)(pcVar38 + 0x23e15c);\n    pcVar38 = pcVar40;\n    if (iStack_178 == -1) goto LAB_00283ab8;\n  }\n  else {\n    pOVar17 = pOVar29;\n    iStack_178 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37);\n  }" if (parenthesized_expression "(*(code **)(*(int *)pcVar37 + 0x2c) == *(code **)(pcVar38 + 0x23e9dc))" ( (binary_expression "*(code **)(*(int *)pcVar37 + 0x2c) == *(code **)(pcVar38 + 0x23e9dc)" (pointer_expression "*(code **)(*(int *)pcVar37 + 0x2c)" * (cast_expression "(code **)(*(int *)pcVar37 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar37 + 0x2c)" ( (binary_expression "*(int *)pcVar37 + 0x2c" (pointer_expression "*(int *)pcVar37" * (cast_expression "(int *)pcVar37" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (pointer_expression "*(code **)(pcVar38 + 0x23e9dc)" * (cast_expression "(code **)(pcVar38 + 0x23e9dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + 0x23e9dc)" ( (binary_expression "pcVar38 + 0x23e9dc" identifier + number_literal) ))))) )) (compound_statement "{\n    iStack_178 = *(int *)(pcVar37 + 100);\n    pOVar17 = *(Output_file **)(pcVar38 + 0x23e15c);\n    pcVar38 = pcVar40;\n    if (iStack_178 == -1) goto LAB_00283ab8;\n  }" { (expression_statement "iStack_178 = *(int *)(pcVar37 + 100);" (assignment_expression "iStack_178 = *(int *)(pcVar37 + 100)" identifier = (pointer_expression "*(int *)(pcVar37 + 100)" * (cast_expression "(int *)(pcVar37 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 100)" ( (binary_expression "pcVar37 + 100" identifier + number_literal) ))))) ;) (expression_statement "pOVar17 = *(Output_file **)(pcVar38 + 0x23e15c);" (assignment_expression "pOVar17 = *(Output_file **)(pcVar38 + 0x23e15c)" identifier = (pointer_expression "*(Output_file **)(pcVar38 + 0x23e15c)" * (cast_expression "(Output_file **)(pcVar38 + 0x23e15c)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + 0x23e15c)" ( (binary_expression "pcVar38 + 0x23e15c" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = pcVar40;" (assignment_expression "pcVar38 = pcVar40" identifier = identifier) ;) (if_statement "if (iStack_178 == -1) goto LAB_00283ab8;" if (parenthesized_expression "(iStack_178 == -1)" ( (binary_expression "iStack_178 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00283ab8;" goto statement_identifier ;)) }) (else_clause "else {\n    pOVar17 = pOVar29;\n    iStack_178 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37);\n  }" else (compound_statement "{\n    pOVar17 = pOVar29;\n    iStack_178 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37);\n  }" { (expression_statement "pOVar17 = pOVar29;" (assignment_expression "pOVar17 = pOVar29" identifier = identifier) ;) (expression_statement "iStack_178 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37);" (assignment_expression "iStack_178 = (**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37)" identifier = (call_expression "(**(code **)(*(int *)pcVar37 + 0x2c))(pcVar37)" (parenthesized_expression "(**(code **)(*(int *)pcVar37 + 0x2c))" ( (pointer_expression "**(code **)(*(int *)pcVar37 + 0x2c)" * (pointer_expression "*(code **)(*(int *)pcVar37 + 0x2c)" * (cast_expression "(code **)(*(int *)pcVar37 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar37 + 0x2c)" ( (binary_expression "*(int *)pcVar37 + 0x2c" (pointer_expression "*(int *)pcVar37" * (cast_expression "(int *)pcVar37" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar37)" ( identifier )))) ;) }))) (expression_statement "iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc);" (assignment_expression "iVar27 = *(int *)(*(int *)(iVar2 + 4) + 0x1dc)" identifier = (pointer_expression "*(int *)(*(int *)(iVar2 + 4) + 0x1dc)" * (cast_expression "(int *)(*(int *)(iVar2 + 4) + 0x1dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 4) + 0x1dc)" ( (binary_expression "*(int *)(iVar2 + 4) + 0x1dc" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar20 = 0x44e;" (assignment_expression "uVar20 = 0x44e" identifier = number_literal) ;) (if_statement "if (iVar27 == 0) goto LAB_00283a84;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00283a84;" goto statement_identifier ;)) (expression_statement "pOVar28 = *(Output_file **)(iVar27 + 0x3c);" (assignment_expression "pOVar28 = *(Output_file **)(iVar27 + 0x3c)" identifier = (pointer_expression "*(Output_file **)(iVar27 + 0x3c)" * (cast_expression "(Output_file **)(iVar27 + 0x3c)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)&pOVar28[1].file_size_ << 2 < 0) {\n    iStack_180 = pOVar28[1].o_;\n    pcVar23 = pOVar28[1].name_;\n    if (*(int *)&pOVar28[1].file_size_ << 1 < 0) {\n      pbVar41 = &pOVar28->map_is_anonymous_;\n      pcVar38 = pcVar40;\n      if (-1 < (int)pcVar23) {\n        pOVar28 = *(Output_file **)(iStack_128 + 8);\n        pOVar17 = (Output_file *)((int)&(*(Output_file **)pbVar41)->name_ + iStack_180);\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar17 < *(Output_file **)pbVar41));\n        pcVar23 = (char *)(uint)((int)pOVar28 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar28 == pOVar15) goto LAB_00283ad0;\nLAB_002838ac:\n          iVar27 = *(int *)(iStack_128 + 0x10);\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = *(uint *)&pOVar29->file_size_;\n            uVar14 = piVar3[0x2e];\n            iStack_128 = (int)pOVar29->file_size_;\n            if (uVar14 <= uVar33) {\n              pcVar23 = pOVar29->name_;\n              iVar16 = pOVar29->o_;\n              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }\n              iVar7 = *(int *)&pOVar29->map_is_anonymous_;\n              uVar33 = uVar33 - uVar14;\n              puVar31 = pOVar29->base_;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283a78;\n              iVar10 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar10 == 0) goto LAB_00283a60;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar24 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar24);\n              iVar12 = *piVar6;\n              *piVar6 = iVar12 + 1;\n              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);\n              *piVar6 = iStack_128;\n              piVar6[1] = iStack_178;\n              piVar6[2] = (int)(pcVar23 + iVar16);\n              piVar6[3] = uVar34;\n              piVar6[5] = iVar7;\n              piVar6[4] = (int)puVar31;\n              pcVar38 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            pOVar29 = pOVar29 + 1;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283ae0:\n      Output_file::get_output_view\n                (pOVar28,CONCAT44(pcVar38,in_stack_fffffe74),(size_t)pcVar23,pOVar17);\n    }\n    (**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);\n  }" if (parenthesized_expression "(*(int *)&pOVar28[1].file_size_ << 2 < 0)" ( (binary_expression "*(int *)&pOVar28[1].file_size_ << 2 < 0" (binary_expression "*(int *)&pOVar28[1].file_size_ << 2" (pointer_expression "*(int *)&pOVar28[1].file_size_" * (cast_expression "(int *)&pOVar28[1].file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar28[1].file_size_" & (field_expression "pOVar28[1].file_size_" (subscript_expression "pOVar28[1]" identifier [ number_literal ]) . field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n    iStack_180 = pOVar28[1].o_;\n    pcVar23 = pOVar28[1].name_;\n    if (*(int *)&pOVar28[1].file_size_ << 1 < 0) {\n      pbVar41 = &pOVar28->map_is_anonymous_;\n      pcVar38 = pcVar40;\n      if (-1 < (int)pcVar23) {\n        pOVar28 = *(Output_file **)(iStack_128 + 8);\n        pOVar17 = (Output_file *)((int)&(*(Output_file **)pbVar41)->name_ + iStack_180);\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar17 < *(Output_file **)pbVar41));\n        pcVar23 = (char *)(uint)((int)pOVar28 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar28 == pOVar15) goto LAB_00283ad0;\nLAB_002838ac:\n          iVar27 = *(int *)(iStack_128 + 0x10);\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = *(uint *)&pOVar29->file_size_;\n            uVar14 = piVar3[0x2e];\n            iStack_128 = (int)pOVar29->file_size_;\n            if (uVar14 <= uVar33) {\n              pcVar23 = pOVar29->name_;\n              iVar16 = pOVar29->o_;\n              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }\n              iVar7 = *(int *)&pOVar29->map_is_anonymous_;\n              uVar33 = uVar33 - uVar14;\n              puVar31 = pOVar29->base_;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283a78;\n              iVar10 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar10 == 0) goto LAB_00283a60;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar24 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar24);\n              iVar12 = *piVar6;\n              *piVar6 = iVar12 + 1;\n              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);\n              *piVar6 = iStack_128;\n              piVar6[1] = iStack_178;\n              piVar6[2] = (int)(pcVar23 + iVar16);\n              piVar6[3] = uVar34;\n              piVar6[5] = iVar7;\n              piVar6[4] = (int)puVar31;\n              pcVar38 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            pOVar29 = pOVar29 + 1;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283ae0:\n      Output_file::get_output_view\n                (pOVar28,CONCAT44(pcVar38,in_stack_fffffe74),(size_t)pcVar23,pOVar17);\n    }\n    (**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);\n  }" { (expression_statement "iStack_180 = pOVar28[1].o_;" (assignment_expression "iStack_180 = pOVar28[1].o_" identifier = (field_expression "pOVar28[1].o_" (subscript_expression "pOVar28[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pcVar23 = pOVar28[1].name_;" (assignment_expression "pcVar23 = pOVar28[1].name_" identifier = (field_expression "pOVar28[1].name_" (subscript_expression "pOVar28[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (*(int *)&pOVar28[1].file_size_ << 1 < 0) {\n      pbVar41 = &pOVar28->map_is_anonymous_;\n      pcVar38 = pcVar40;\n      if (-1 < (int)pcVar23) {\n        pOVar28 = *(Output_file **)(iStack_128 + 8);\n        pOVar17 = (Output_file *)((int)&(*(Output_file **)pbVar41)->name_ + iStack_180);\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar17 < *(Output_file **)pbVar41));\n        pcVar23 = (char *)(uint)((int)pOVar28 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar28 == pOVar15) goto LAB_00283ad0;\nLAB_002838ac:\n          iVar27 = *(int *)(iStack_128 + 0x10);\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = *(uint *)&pOVar29->file_size_;\n            uVar14 = piVar3[0x2e];\n            iStack_128 = (int)pOVar29->file_size_;\n            if (uVar14 <= uVar33) {\n              pcVar23 = pOVar29->name_;\n              iVar16 = pOVar29->o_;\n              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }\n              iVar7 = *(int *)&pOVar29->map_is_anonymous_;\n              uVar33 = uVar33 - uVar14;\n              puVar31 = pOVar29->base_;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283a78;\n              iVar10 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar10 == 0) goto LAB_00283a60;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar24 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar24);\n              iVar12 = *piVar6;\n              *piVar6 = iVar12 + 1;\n              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);\n              *piVar6 = iStack_128;\n              piVar6[1] = iStack_178;\n              piVar6[2] = (int)(pcVar23 + iVar16);\n              piVar6[3] = uVar34;\n              piVar6[5] = iVar7;\n              piVar6[4] = (int)puVar31;\n              pcVar38 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            pOVar29 = pOVar29 + 1;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283ae0:\n      Output_file::get_output_view\n                (pOVar28,CONCAT44(pcVar38,in_stack_fffffe74),(size_t)pcVar23,pOVar17);\n    }" if (parenthesized_expression "(*(int *)&pOVar28[1].file_size_ << 1 < 0)" ( (binary_expression "*(int *)&pOVar28[1].file_size_ << 1 < 0" (binary_expression "*(int *)&pOVar28[1].file_size_ << 1" (pointer_expression "*(int *)&pOVar28[1].file_size_" * (cast_expression "(int *)&pOVar28[1].file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar28[1].file_size_" & (field_expression "pOVar28[1].file_size_" (subscript_expression "pOVar28[1]" identifier [ number_literal ]) . field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\n      pbVar41 = &pOVar28->map_is_anonymous_;\n      pcVar38 = pcVar40;\n      if (-1 < (int)pcVar23) {\n        pOVar28 = *(Output_file **)(iStack_128 + 8);\n        pOVar17 = (Output_file *)((int)&(*(Output_file **)pbVar41)->name_ + iStack_180);\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar17 < *(Output_file **)pbVar41));\n        pcVar23 = (char *)(uint)((int)pOVar28 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar28 == pOVar15) goto LAB_00283ad0;\nLAB_002838ac:\n          iVar27 = *(int *)(iStack_128 + 0x10);\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = *(uint *)&pOVar29->file_size_;\n            uVar14 = piVar3[0x2e];\n            iStack_128 = (int)pOVar29->file_size_;\n            if (uVar14 <= uVar33) {\n              pcVar23 = pOVar29->name_;\n              iVar16 = pOVar29->o_;\n              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }\n              iVar7 = *(int *)&pOVar29->map_is_anonymous_;\n              uVar33 = uVar33 - uVar14;\n              puVar31 = pOVar29->base_;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283a78;\n              iVar10 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar10 == 0) goto LAB_00283a60;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar24 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar24);\n              iVar12 = *piVar6;\n              *piVar6 = iVar12 + 1;\n              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);\n              *piVar6 = iStack_128;\n              piVar6[1] = iStack_178;\n              piVar6[2] = (int)(pcVar23 + iVar16);\n              piVar6[3] = uVar34;\n              piVar6[5] = iVar7;\n              piVar6[4] = (int)puVar31;\n              pcVar38 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            pOVar29 = pOVar29 + 1;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }\nLAB_00283ae0:\n      Output_file::get_output_view\n                (pOVar28,CONCAT44(pcVar38,in_stack_fffffe74),(size_t)pcVar23,pOVar17);\n    }" { (expression_statement "pbVar41 = &pOVar28->map_is_anonymous_;" (assignment_expression "pbVar41 = &pOVar28->map_is_anonymous_" identifier = (pointer_expression "&pOVar28->map_is_anonymous_" & (field_expression "pOVar28->map_is_anonymous_" identifier -> field_identifier))) ;) (expression_statement "pcVar38 = pcVar40;" (assignment_expression "pcVar38 = pcVar40" identifier = identifier) ;) (if_statement "if (-1 < (int)pcVar23) {\n        pOVar28 = *(Output_file **)(iStack_128 + 8);\n        pOVar17 = (Output_file *)((int)&(*(Output_file **)pbVar41)->name_ + iStack_180);\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar17 < *(Output_file **)pbVar41));\n        pcVar23 = (char *)(uint)((int)pOVar28 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar28 == pOVar15) goto LAB_00283ad0;\nLAB_002838ac:\n          iVar27 = *(int *)(iStack_128 + 0x10);\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = *(uint *)&pOVar29->file_size_;\n            uVar14 = piVar3[0x2e];\n            iStack_128 = (int)pOVar29->file_size_;\n            if (uVar14 <= uVar33) {\n              pcVar23 = pOVar29->name_;\n              iVar16 = pOVar29->o_;\n              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }\n              iVar7 = *(int *)&pOVar29->map_is_anonymous_;\n              uVar33 = uVar33 - uVar14;\n              puVar31 = pOVar29->base_;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283a78;\n              iVar10 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar10 == 0) goto LAB_00283a60;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar24 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar24);\n              iVar12 = *piVar6;\n              *piVar6 = iVar12 + 1;\n              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);\n              *piVar6 = iStack_128;\n              piVar6[1] = iStack_178;\n              piVar6[2] = (int)(pcVar23 + iVar16);\n              piVar6[3] = uVar34;\n              piVar6[5] = iVar7;\n              piVar6[4] = (int)puVar31;\n              pcVar38 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            pOVar29 = pOVar29 + 1;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }" if (parenthesized_expression "(-1 < (int)pcVar23)" ( (binary_expression "-1 < (int)pcVar23" number_literal < (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pOVar28 = *(Output_file **)(iStack_128 + 8);\n        pOVar17 = (Output_file *)((int)&(*(Output_file **)pbVar41)->name_ + iStack_180);\n        pOVar15 = (Output_file *)(pcVar23 + (pOVar17 < *(Output_file **)pbVar41));\n        pcVar23 = (char *)(uint)((int)pOVar28 < (int)pOVar15);\n        if (pcVar23 == (char *)0x0) {\n          if (pOVar28 == pOVar15) goto LAB_00283ad0;\nLAB_002838ac:\n          iVar27 = *(int *)(iStack_128 + 0x10);\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = *(uint *)&pOVar29->file_size_;\n            uVar14 = piVar3[0x2e];\n            iStack_128 = (int)pOVar29->file_size_;\n            if (uVar14 <= uVar33) {\n              pcVar23 = pOVar29->name_;\n              iVar16 = pOVar29->o_;\n              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }\n              iVar7 = *(int *)&pOVar29->map_is_anonymous_;\n              uVar33 = uVar33 - uVar14;\n              puVar31 = pOVar29->base_;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283a78;\n              iVar10 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar10 == 0) goto LAB_00283a60;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar24 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar24);\n              iVar12 = *piVar6;\n              *piVar6 = iVar12 + 1;\n              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);\n              *piVar6 = iStack_128;\n              piVar6[1] = iStack_178;\n              piVar6[2] = (int)(pcVar23 + iVar16);\n              piVar6[3] = uVar34;\n              piVar6[5] = iVar7;\n              piVar6[4] = (int)puVar31;\n              pcVar38 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            pOVar29 = pOVar29 + 1;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }\n      }" { (expression_statement "pOVar28 = *(Output_file **)(iStack_128 + 8);" (assignment_expression "pOVar28 = *(Output_file **)(iStack_128 + 8)" identifier = (pointer_expression "*(Output_file **)(iStack_128 + 8)" * (cast_expression "(Output_file **)(iStack_128 + 8)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iStack_128 + 8)" ( (binary_expression "iStack_128 + 8" identifier + number_literal) ))))) ;) (expression_statement "pOVar17 = (Output_file *)((int)&(*(Output_file **)pbVar41)->name_ + iStack_180);" (assignment_expression "pOVar17 = (Output_file *)((int)&(*(Output_file **)pbVar41)->name_ + iStack_180)" identifier = (cast_expression "(Output_file *)((int)&(*(Output_file **)pbVar41)->name_ + iStack_180)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(*(Output_file **)pbVar41)->name_ + iStack_180)" ( (binary_expression "(int)&(*(Output_file **)pbVar41)->name_ + iStack_180" (cast_expression "(int)&(*(Output_file **)pbVar41)->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(*(Output_file **)pbVar41)->name_" & (field_expression "(*(Output_file **)pbVar41)->name_" (parenthesized_expression "(*(Output_file **)pbVar41)" ( (pointer_expression "*(Output_file **)pbVar41" * (cast_expression "(Output_file **)pbVar41" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) )) -> field_identifier))) + identifier) )))) ;) (expression_statement "pOVar15 = (Output_file *)(pcVar23 + (pOVar17 < *(Output_file **)pbVar41));" (assignment_expression "pOVar15 = (Output_file *)(pcVar23 + (pOVar17 < *(Output_file **)pbVar41))" identifier = (cast_expression "(Output_file *)(pcVar23 + (pOVar17 < *(Output_file **)pbVar41))" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + (pOVar17 < *(Output_file **)pbVar41))" ( (binary_expression "pcVar23 + (pOVar17 < *(Output_file **)pbVar41)" identifier + (parenthesized_expression "(pOVar17 < *(Output_file **)pbVar41)" ( (binary_expression "pOVar17 < *(Output_file **)pbVar41" identifier < (pointer_expression "*(Output_file **)pbVar41" * (cast_expression "(Output_file **)pbVar41" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ))) )))) ;) (expression_statement "pcVar23 = (char *)(uint)((int)pOVar28 < (int)pOVar15);" (assignment_expression "pcVar23 = (char *)(uint)((int)pOVar28 < (int)pOVar15)" identifier = (cast_expression "(char *)(uint)((int)pOVar28 < (int)pOVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)pOVar28 < (int)pOVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pOVar28 < (int)pOVar15)" ( (binary_expression "(int)pOVar28 < (int)pOVar15" (cast_expression "(int)pOVar28" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pOVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (pcVar23 == (char *)0x0) {\n          if (pOVar28 == pOVar15) goto LAB_00283ad0;\nLAB_002838ac:\n          iVar27 = *(int *)(iStack_128 + 0x10);\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = *(uint *)&pOVar29->file_size_;\n            uVar14 = piVar3[0x2e];\n            iStack_128 = (int)pOVar29->file_size_;\n            if (uVar14 <= uVar33) {\n              pcVar23 = pOVar29->name_;\n              iVar16 = pOVar29->o_;\n              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }\n              iVar7 = *(int *)&pOVar29->map_is_anonymous_;\n              uVar33 = uVar33 - uVar14;\n              puVar31 = pOVar29->base_;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283a78;\n              iVar10 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar10 == 0) goto LAB_00283a60;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar24 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar24);\n              iVar12 = *piVar6;\n              *piVar6 = iVar12 + 1;\n              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);\n              *piVar6 = iStack_128;\n              piVar6[1] = iStack_178;\n              piVar6[2] = (int)(pcVar23 + iVar16);\n              piVar6[3] = uVar34;\n              piVar6[5] = iVar7;\n              piVar6[4] = (int)puVar31;\n              pcVar38 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            pOVar29 = pOVar29 + 1;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }" if (parenthesized_expression "(pcVar23 == (char *)0x0)" ( (binary_expression "pcVar23 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pOVar28 == pOVar15) goto LAB_00283ad0;\nLAB_002838ac:\n          iVar27 = *(int *)(iStack_128 + 0x10);\n          pOVar17 = (Output_file *)0x0;\n          if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }\n          do {\n            uVar33 = *(uint *)&pOVar29->file_size_;\n            uVar14 = piVar3[0x2e];\n            iStack_128 = (int)pOVar29->file_size_;\n            if (uVar14 <= uVar33) {\n              pcVar23 = pOVar29->name_;\n              iVar16 = pOVar29->o_;\n              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }\n              iVar7 = *(int *)&pOVar29->map_is_anonymous_;\n              uVar33 = uVar33 - uVar14;\n              puVar31 = pOVar29->base_;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283a78;\n              iVar10 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar10 == 0) goto LAB_00283a60;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar24 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar24);\n              iVar12 = *piVar6;\n              *piVar6 = iVar12 + 1;\n              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);\n              *piVar6 = iStack_128;\n              piVar6[1] = iStack_178;\n              piVar6[2] = (int)(pcVar23 + iVar16);\n              piVar6[3] = uVar34;\n              piVar6[5] = iVar7;\n              piVar6[4] = (int)puVar31;\n              pcVar38 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            pOVar29 = pOVar29 + 1;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );\n        }" { (if_statement "if (pOVar28 == pOVar15) goto LAB_00283ad0;" if (parenthesized_expression "(pOVar28 == pOVar15)" ( (binary_expression "pOVar28 == pOVar15" identifier == identifier) )) (goto_statement "goto LAB_00283ad0;" goto statement_identifier ;)) (labeled_statement "LAB_002838ac:\n          iVar27 = *(int *)(iStack_128 + 0x10);" statement_identifier : (expression_statement "iVar27 = *(int *)(iStack_128 + 0x10);" (assignment_expression "iVar27 = *(int *)(iStack_128 + 0x10)" identifier = (pointer_expression "*(int *)(iStack_128 + 0x10)" * (cast_expression "(int *)(iStack_128 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_128 + 0x10)" ( (binary_expression "iStack_128 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "pOVar17 = (Output_file *)0x0;" (assignment_expression "pOVar17 = (Output_file *)0x0" identifier = (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pOVar26 == (Output_file *)0x0) {\n            return;\n          }" if (parenthesized_expression "(pOVar26 == (Output_file *)0x0)" ( (binary_expression "pOVar26 == (Output_file *)0x0" identifier == (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (do_statement "do {\n            uVar33 = *(uint *)&pOVar29->file_size_;\n            uVar14 = piVar3[0x2e];\n            iStack_128 = (int)pOVar29->file_size_;\n            if (uVar14 <= uVar33) {\n              pcVar23 = pOVar29->name_;\n              iVar16 = pOVar29->o_;\n              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }\n              iVar7 = *(int *)&pOVar29->map_is_anonymous_;\n              uVar33 = uVar33 - uVar14;\n              puVar31 = pOVar29->base_;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283a78;\n              iVar10 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar10 == 0) goto LAB_00283a60;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar24 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar24);\n              iVar12 = *piVar6;\n              *piVar6 = iVar12 + 1;\n              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);\n              *piVar6 = iStack_128;\n              piVar6[1] = iStack_178;\n              piVar6[2] = (int)(pcVar23 + iVar16);\n              piVar6[3] = uVar34;\n              piVar6[5] = iVar7;\n              piVar6[4] = (int)puVar31;\n              pcVar38 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            pOVar29 = pOVar29 + 1;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          } while( true );" do (compound_statement "{\n            uVar33 = *(uint *)&pOVar29->file_size_;\n            uVar14 = piVar3[0x2e];\n            iStack_128 = (int)pOVar29->file_size_;\n            if (uVar14 <= uVar33) {\n              pcVar23 = pOVar29->name_;\n              iVar16 = pOVar29->o_;\n              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }\n              iVar7 = *(int *)&pOVar29->map_is_anonymous_;\n              uVar33 = uVar33 - uVar14;\n              puVar31 = pOVar29->base_;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283a78;\n              iVar10 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar10 == 0) goto LAB_00283a60;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar24 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar24);\n              iVar12 = *piVar6;\n              *piVar6 = iVar12 + 1;\n              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);\n              *piVar6 = iStack_128;\n              piVar6[1] = iStack_178;\n              piVar6[2] = (int)(pcVar23 + iVar16);\n              piVar6[3] = uVar34;\n              piVar6[5] = iVar7;\n              piVar6[4] = (int)puVar31;\n              pcVar38 = pcVar40;\n            }\n            pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);\n            pOVar29 = pOVar29 + 1;\n            if (pOVar26 == pOVar17) {\n              return;\n            }\n          }" { (expression_statement "uVar33 = *(uint *)&pOVar29->file_size_;" (assignment_expression "uVar33 = *(uint *)&pOVar29->file_size_" identifier = (pointer_expression "*(uint *)&pOVar29->file_size_" * (cast_expression "(uint *)&pOVar29->file_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar29->file_size_" & (field_expression "pOVar29->file_size_" identifier -> field_identifier))))) ;) (expression_statement "uVar14 = piVar3[0x2e];" (assignment_expression "uVar14 = piVar3[0x2e]" identifier = (subscript_expression "piVar3[0x2e]" identifier [ number_literal ])) ;) (expression_statement "iStack_128 = (int)pOVar29->file_size_;" (assignment_expression "iStack_128 = (int)pOVar29->file_size_" identifier = (cast_expression "(int)pOVar29->file_size_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar29->file_size_" identifier -> field_identifier))) ;) (if_statement "if (uVar14 <= uVar33) {\n              pcVar23 = pOVar29->name_;\n              iVar16 = pOVar29->o_;\n              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }\n              iVar7 = *(int *)&pOVar29->map_is_anonymous_;\n              uVar33 = uVar33 - uVar14;\n              puVar31 = pOVar29->base_;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283a78;\n              iVar10 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar10 == 0) goto LAB_00283a60;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar24 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar24);\n              iVar12 = *piVar6;\n              *piVar6 = iVar12 + 1;\n              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);\n              *piVar6 = iStack_128;\n              piVar6[1] = iStack_178;\n              piVar6[2] = (int)(pcVar23 + iVar16);\n              piVar6[3] = uVar34;\n              piVar6[5] = iVar7;\n              piVar6[4] = (int)puVar31;\n              pcVar38 = pcVar40;\n            }" if (parenthesized_expression "(uVar14 <= uVar33)" ( (binary_expression "uVar14 <= uVar33" identifier <= identifier) )) (compound_statement "{\n              pcVar23 = pOVar29->name_;\n              iVar16 = pOVar29->o_;\n              if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }\n              iVar7 = *(int *)&pOVar29->map_is_anonymous_;\n              uVar33 = uVar33 - uVar14;\n              puVar31 = pOVar29->base_;\n              piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);\n              if (piVar3[0x16] == 0) goto LAB_00283a78;\n              iVar10 = piVar3[0x17];\n              uVar20 = 0x604;\n              if (iVar10 == 0) goto LAB_00283a60;\n              if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }\n              iVar24 = uVar33 * 4;\n              piVar6 = (int *)(piVar3[0x16] + iVar24);\n              iVar12 = *piVar6;\n              *piVar6 = iVar12 + 1;\n              piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);\n              *piVar6 = iStack_128;\n              piVar6[1] = iStack_178;\n              piVar6[2] = (int)(pcVar23 + iVar16);\n              piVar6[3] = uVar34;\n              piVar6[5] = iVar7;\n              piVar6[4] = (int)puVar31;\n              pcVar38 = pcVar40;\n            }" { (expression_statement "pcVar23 = pOVar29->name_;" (assignment_expression "pcVar23 = pOVar29->name_" identifier = (field_expression "pOVar29->name_" identifier -> field_identifier)) ;) (expression_statement "iVar16 = pOVar29->o_;" (assignment_expression "iVar16 = pOVar29->o_" identifier = (field_expression "pOVar29->o_" identifier -> field_identifier)) ;) (if_statement "if ((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)) {\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }\n              else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }" if (parenthesized_expression "((sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff))" ( (binary_expression "(sStack_130 == 0xffffffff) && (uStack_12c == 0xffffffff)" (parenthesized_expression "(sStack_130 == 0xffffffff)" ( (binary_expression "sStack_130 == 0xffffffff" identifier == number_literal) )) && (parenthesized_expression "(uStack_12c == 0xffffffff)" ( (binary_expression "uStack_12c == 0xffffffff" identifier == number_literal) ))) )) (compound_statement "{\n                if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;\n                uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);\n                pcVar40 = pcVar38;\n                if (uVar4 == 0xffffffff) goto LAB_00283a80;\n                uVar14 = piVar3[0x2e];\n                uVar34 = uVar4 + iVar16;\n                iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);\n              }" { (if_statement "if (pcVar23 != (char *)(iVar16 >> 0x1f)) goto LAB_00283a9c;" if (parenthesized_expression "(pcVar23 != (char *)(iVar16 >> 0x1f))" ( (binary_expression "pcVar23 != (char *)(iVar16 >> 0x1f)" identifier != (cast_expression "(char *)(iVar16 >> 0x1f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 >> 0x1f)" ( (binary_expression "iVar16 >> 0x1f" identifier >> number_literal) )))) )) (goto_statement "goto LAB_00283a9c;" goto statement_identifier ;)) (expression_statement "uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16);" (assignment_expression "uVar4 = (**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16)" identifier = (call_expression "(**(code **)(pcVar40 + -0x767c))\n                                  (pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16)" (parenthesized_expression "(**(code **)(pcVar40 + -0x767c))" ( (pointer_expression "**(code **)(pcVar40 + -0x767c)" * (pointer_expression "*(code **)(pcVar40 + -0x767c)" * (cast_expression "(code **)(pcVar40 + -0x767c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x767c)" ( (binary_expression "pcVar40 + -0x767c" identifier + number_literal) ))))) )) (argument_list "(pcVar37,*(undefined4 *)(iVar2 + 8),*(undefined4 *)(iVar2 + 0x18),\n                                   iVar16)" ( identifier , (pointer_expression "*(undefined4 *)(iVar2 + 8)" * (cast_expression "(undefined4 *)(iVar2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar2 + 0x18)" * (cast_expression "(undefined4 *)(iVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "pcVar40 = pcVar38;" (assignment_expression "pcVar40 = pcVar38" identifier = identifier) ;) (if_statement "if (uVar4 == 0xffffffff) goto LAB_00283a80;" if (parenthesized_expression "(uVar4 == 0xffffffff)" ( (binary_expression "uVar4 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00283a80;" goto statement_identifier ;)) (expression_statement "uVar14 = piVar3[0x2e];" (assignment_expression "uVar14 = piVar3[0x2e]" identifier = (subscript_expression "piVar3[0x2e]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = uVar4 + iVar16;" (assignment_expression "uVar34 = uVar4 + iVar16" identifier = (binary_expression "uVar4 + iVar16" identifier + identifier)) ;) (expression_statement "iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f);" (assignment_expression "iVar16 = (uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f)" identifier = (binary_expression "(uint)(uVar34 < uVar4) + ((int)uVar4 >> 0x1f)" (call_expression "(uint)(uVar34 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar34 < uVar4)" ( (binary_expression "uVar34 < uVar4" identifier < identifier) ))) + (parenthesized_expression "((int)uVar4 >> 0x1f)" ( (binary_expression "(int)uVar4 >> 0x1f" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) }) (else_clause "else {\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }" else (compound_statement "{\n                uVar34 = uStack_12c + iVar16;\n                iVar16 = (uVar34 < uStack_12c) + sStack_130;\n                pcVar40 = pcVar38;\n              }" { (expression_statement "uVar34 = uStack_12c + iVar16;" (assignment_expression "uVar34 = uStack_12c + iVar16" identifier = (binary_expression "uStack_12c + iVar16" identifier + identifier)) ;) (expression_statement "iVar16 = (uVar34 < uStack_12c) + sStack_130;" (assignment_expression "iVar16 = (uVar34 < uStack_12c) + sStack_130" identifier = (binary_expression "(uVar34 < uStack_12c) + sStack_130" (parenthesized_expression "(uVar34 < uStack_12c)" ( (binary_expression "uVar34 < uStack_12c" identifier < identifier) )) + identifier)) ;) (expression_statement "pcVar40 = pcVar38;" (assignment_expression "pcVar40 = pcVar38" identifier = identifier) ;) }))) (expression_statement "iVar7 = *(int *)&pOVar29->map_is_anonymous_;" (assignment_expression "iVar7 = *(int *)&pOVar29->map_is_anonymous_" identifier = (pointer_expression "*(int *)&pOVar29->map_is_anonymous_" * (cast_expression "(int *)&pOVar29->map_is_anonymous_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar29->map_is_anonymous_" & (field_expression "pOVar29->map_is_anonymous_" identifier -> field_identifier))))) ;) (expression_statement "uVar33 = uVar33 - uVar14;" (assignment_expression "uVar33 = uVar33 - uVar14" identifier = (binary_expression "uVar33 - uVar14" identifier - identifier)) ;) (expression_statement "puVar31 = pOVar29->base_;" (assignment_expression "puVar31 = pOVar29->base_" identifier = (field_expression "pOVar29->base_" identifier -> field_identifier)) ;) (expression_statement "piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3);" (assignment_expression "piVar6 = (int *)(**(code **)(*piVar3 + 0x74))(piVar3)" identifier = (cast_expression "(int *)(**(code **)(*piVar3 + 0x74))(piVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar3 + 0x74))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0x74))" ( (pointer_expression "**(code **)(*piVar3 + 0x74)" * (pointer_expression "*(code **)(*piVar3 + 0x74)" * (cast_expression "(code **)(*piVar3 + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x74)" ( (binary_expression "*piVar3 + 0x74" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))))) ;) (if_statement "if (piVar3[0x16] == 0) goto LAB_00283a78;" if (parenthesized_expression "(piVar3[0x16] == 0)" ( (binary_expression "piVar3[0x16] == 0" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00283a78;" goto statement_identifier ;)) (expression_statement "iVar10 = piVar3[0x17];" (assignment_expression "iVar10 = piVar3[0x17]" identifier = (subscript_expression "piVar3[0x17]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = 0x604;" (assignment_expression "uVar20 = 0x604" identifier = number_literal) ;) (if_statement "if (iVar10 == 0) goto LAB_00283a60;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00283a60;" goto statement_identifier ;)) (if_statement "if ((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33) {\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }" if (parenthesized_expression "((uint)(piVar6[1] - *piVar6 >> 2) <= uVar33)" ( (binary_expression "(uint)(piVar6[1] - *piVar6 >> 2) <= uVar33" (call_expression "(uint)(piVar6[1] - *piVar6 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar6[1] - *piVar6 >> 2)" ( (binary_expression "piVar6[1] - *piVar6 >> 2" (binary_expression "piVar6[1] - *piVar6" (subscript_expression "piVar6[1]" identifier [ number_literal ]) - (pointer_expression "*piVar6" * identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                uVar20 = 0x605;\nLAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );\n              }" { (expression_statement "uVar20 = 0x605;" (assignment_expression "uVar20 = 0x605" identifier = number_literal) ;) (labeled_statement "LAB_00283a60:\n                do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );" statement_identifier : (do_statement "do {\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                } while( true );" do (compound_statement "{\n                  (**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);\nLAB_00283a78:\n                  uVar20 = 0x603;\n                }" { (expression_statement "(**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684);" (call_expression "(**(code **)(pcVar40 + -0x7810))\n                            (*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7fc4) + 0x4570,uVar20,\n                             *(int *)(pcVar40 + -0x7924) + -0x684)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x4570" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x684" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_00283a78:\n                  uVar20 = 0x603;" statement_identifier : (expression_statement "uVar20 = 0x603;" (assignment_expression "uVar20 = 0x603" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "iVar24 = uVar33 * 4;" (assignment_expression "iVar24 = uVar33 * 4" identifier = (binary_expression "uVar33 * 4" identifier * number_literal)) ;) (expression_statement "piVar6 = (int *)(piVar3[0x16] + iVar24);" (assignment_expression "piVar6 = (int *)(piVar3[0x16] + iVar24)" identifier = (cast_expression "(int *)(piVar3[0x16] + iVar24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0x16] + iVar24)" ( (binary_expression "piVar3[0x16] + iVar24" (subscript_expression "piVar3[0x16]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar12 = *piVar6;" (assignment_expression "iVar12 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "*piVar6 = iVar12 + 1;" (assignment_expression "*piVar6 = iVar12 + 1" (pointer_expression "*piVar6" * identifier) = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180);" (assignment_expression "piVar6 = (int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180)" identifier = (cast_expression "(int *)(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180)" ( (binary_expression "iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18 + iStack_180" (binary_expression "iVar27 + (iVar12 + *(int *)(iVar10 + iVar24)) * 0x18" identifier + (binary_expression "(iVar12 + *(int *)(iVar10 + iVar24)) * 0x18" (parenthesized_expression "(iVar12 + *(int *)(iVar10 + iVar24))" ( (binary_expression "iVar12 + *(int *)(iVar10 + iVar24)" identifier + (pointer_expression "*(int *)(iVar10 + iVar24)" * (cast_expression "(int *)(iVar10 + iVar24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + iVar24)" ( (binary_expression "iVar10 + iVar24" identifier + identifier) ))))) )) * number_literal)) + identifier) )))) ;) (expression_statement "*piVar6 = iStack_128;" (assignment_expression "*piVar6 = iStack_128" (pointer_expression "*piVar6" * identifier) = identifier) ;) (expression_statement "piVar6[1] = iStack_178;" (assignment_expression "piVar6[1] = iStack_178" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[2] = (int)(pcVar23 + iVar16);" (assignment_expression "piVar6[2] = (int)(pcVar23 + iVar16)" (subscript_expression "piVar6[2]" identifier [ number_literal ]) = (cast_expression "(int)(pcVar23 + iVar16)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar23 + iVar16)" ( (binary_expression "pcVar23 + iVar16" identifier + identifier) )))) ;) (expression_statement "piVar6[3] = uVar34;" (assignment_expression "piVar6[3] = uVar34" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[5] = iVar7;" (assignment_expression "piVar6[5] = iVar7" (subscript_expression "piVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[4] = (int)puVar31;" (assignment_expression "piVar6[4] = (int)puVar31" (subscript_expression "piVar6[4]" identifier [ number_literal ]) = (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar38 = pcVar40;" (assignment_expression "pcVar38 = pcVar40" identifier = identifier) ;) })) (expression_statement "pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1);" (assignment_expression "pOVar17 = (Output_file *)((int)&pOVar17->name_ + 1)" identifier = (cast_expression "(Output_file *)((int)&pOVar17->name_ + 1)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar17->name_ + 1)" ( (binary_expression "(int)&pOVar17->name_ + 1" (cast_expression "(int)&pOVar17->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar17->name_" & (field_expression "pOVar17->name_" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pOVar29 = pOVar29 + 1;" (assignment_expression "pOVar29 = pOVar29 + 1" identifier = (binary_expression "pOVar29 + 1" identifier + number_literal)) ;) (if_statement "if (pOVar26 == pOVar17) {\n              return;\n            }" if (parenthesized_expression "(pOVar26 == pOVar17)" ( (binary_expression "pOVar26 == pOVar17" identifier == identifier) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (labeled_statement "LAB_00283ae0:\n      Output_file::get_output_view\n                (pOVar28,CONCAT44(pcVar38,in_stack_fffffe74),(size_t)pcVar23,pOVar17);" statement_identifier : (labeled_statement "Output_file::get_output_view\n                (pOVar28,CONCAT44(pcVar38,in_stack_fffffe74),(size_t)pcVar23,pOVar17);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view\n                (pOVar28,CONCAT44(pcVar38,in_stack_fffffe74),(size_t)pcVar23,pOVar17);" (call_expression "get_output_view\n                (pOVar28,CONCAT44(pcVar38,in_stack_fffffe74),(size_t)pcVar23,pOVar17)" identifier (argument_list "(pOVar28,CONCAT44(pcVar38,in_stack_fffffe74),(size_t)pcVar23,pOVar17)" ( identifier , (call_expression "CONCAT44(pcVar38,in_stack_fffffe74)" identifier (argument_list "(pcVar38,in_stack_fffffe74)" ( identifier , identifier ))) , (cast_expression "(size_t)pcVar23" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;))) })) (expression_statement "(**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500);" (call_expression "(**(code **)(pcVar40 + -0x7810))\n              (*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7fc4) + 0x3574,0xcf,*(int *)(pcVar40 + -0x7924) + -0x500)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x500" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "pcVar37 = *(code **)(pcVar40 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcVar40 + -0x7810)" identifier = (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "puVar19 = (undefined4 *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);" (assignment_expression "puVar19 = (undefined4 *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar37)(puVar19,0xe3,*(int *)(pcVar40 + -0x7924) + -0x4f4);" (call_expression "(*pcVar37)(puVar19,0xe3,*(int *)(pcVar40 + -0x7924) + -0x4f4)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(puVar19,0xe3,*(int *)(pcVar40 + -0x7924) + -0x4f4)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x4f4" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "piVar3 = (int *)puVar19[2];" (assignment_expression "piVar3 = (int *)puVar19[2]" identifier = (cast_expression "(int *)puVar19[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar19[2]" identifier [ number_literal ]))) ;) (while_statement "while (piVar3 != (int *)0x0) {\n    piVar3 = (int *)*piVar3;\n    (**(code **)(pcVar37 + 0x23d7d4))();\n  }" while (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar3 = (int *)*piVar3;\n    (**(code **)(pcVar37 + 0x23d7d4))();\n  }" { (expression_statement "piVar3 = (int *)*piVar3;" (assignment_expression "piVar3 = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (expression_statement "(**(code **)(pcVar37 + 0x23d7d4))();" (call_expression "(**(code **)(pcVar37 + 0x23d7d4))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x23d7d4))" ( (pointer_expression "**(code **)(pcVar37 + 0x23d7d4)" * (pointer_expression "*(code **)(pcVar37 + 0x23d7d4)" * (cast_expression "(code **)(pcVar37 + 0x23d7d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x23d7d4)" ( (binary_expression "pcVar37 + 0x23d7d4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "(**(code **)(pcVar37 + 0x242140))(*puVar19,0,puVar19[1] << 2);" (call_expression "(**(code **)(pcVar37 + 0x242140))(*puVar19,0,puVar19[1] << 2)" (parenthesized_expression "(**(code **)(pcVar37 + 0x242140))" ( (pointer_expression "**(code **)(pcVar37 + 0x242140)" * (pointer_expression "*(code **)(pcVar37 + 0x242140)" * (cast_expression "(code **)(pcVar37 + 0x242140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x242140)" ( (binary_expression "pcVar37 + 0x242140" identifier + number_literal) ))))) )) (argument_list "(*puVar19,0,puVar19[1] << 2)" ( (pointer_expression "*puVar19" * identifier) , number_literal , (binary_expression "puVar19[1] << 2" (subscript_expression "puVar19[1]" identifier [ number_literal ]) << number_literal) ))) ;) (expression_statement "puVar19[3] = 0;" (assignment_expression "puVar19[3] = 0" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[2] = 0;" (assignment_expression "puVar19[2] = 0" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return;" return ;) (labeled_statement "LAB_00282cac:\n  uVar20 = 0x46d;" statement_identifier : (expression_statement "uVar20 = 0x46d;" (assignment_expression "uVar20 = 0x46d" identifier = number_literal) ;)) (expression_statement "pbVar39 = pbVar41;" (assignment_expression "pbVar39 = pbVar41" identifier = identifier) ;) (labeled_statement "LAB_00282cb0:\n  puVar25 = (undefined *)(*(int *)(pbVar39 + -0x7924) + -0x7a4);" statement_identifier : (expression_statement "puVar25 = (undefined *)(*(int *)(pbVar39 + -0x7924) + -0x7a4);" (assignment_expression "puVar25 = (undefined *)(*(int *)(pbVar39 + -0x7924) + -0x7a4)" identifier = (cast_expression "(undefined *)(*(int *)(pbVar39 + -0x7924) + -0x7a4)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar39 + -0x7924) + -0x7a4)" ( (binary_expression "*(int *)(pbVar39 + -0x7924) + -0x7a4" (pointer_expression "*(int *)(pbVar39 + -0x7924)" * (cast_expression "(int *)(pbVar39 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar39 + -0x7924)" ( (binary_expression "pbVar39 + -0x7924" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "pbVar41 = pbVar39;" (assignment_expression "pbVar41 = pbVar39" identifier = identifier) ;) (expression_statement "(**(code **)(pbVar39 + -0x7810))(*(int *)(pbVar39 + -0x7924) + -0xe14,uVar20);" (call_expression "(**(code **)(pbVar39 + -0x7810))(*(int *)(pbVar39 + -0x7924) + -0xe14,uVar20)" (parenthesized_expression "(**(code **)(pbVar39 + -0x7810))" ( (pointer_expression "**(code **)(pbVar39 + -0x7810)" * (pointer_expression "*(code **)(pbVar39 + -0x7810)" * (cast_expression "(code **)(pbVar39 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar39 + -0x7810)" ( (binary_expression "pbVar39 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pbVar39 + -0x7924) + -0xe14,uVar20)" ( (binary_expression "*(int *)(pbVar39 + -0x7924) + -0xe14" (pointer_expression "*(int *)(pbVar39 + -0x7924)" * (cast_expression "(int *)(pbVar39 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar39 + -0x7924)" ( (binary_expression "pbVar39 + -0x7924" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (labeled_statement "LAB_00282cc8:\n  sVar21 = 0x1043;" statement_identifier : (expression_statement "sVar21 = 0x1043;" (assignment_expression "sVar21 = 0x1043" identifier = number_literal) ;)) (expression_statement "pOVar26 = (Output_file *)(puVar25 + -0x664);" (assignment_expression "pOVar26 = (Output_file *)(puVar25 + -0x664)" identifier = (cast_expression "(Output_file *)(puVar25 + -0x664)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x664)" ( (binary_expression "puVar25 + -0x664" identifier + number_literal) )))) ;) (expression_statement "pOVar17 = (Output_file *)(*(int *)(pbVar39 + -0x7fc4) + 0x3574);" (assignment_expression "pOVar17 = (Output_file *)(*(int *)(pbVar39 + -0x7fc4) + 0x3574)" identifier = (cast_expression "(Output_file *)(*(int *)(pbVar39 + -0x7fc4) + 0x3574)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar39 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(pbVar39 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pbVar39 + -0x7fc4)" * (cast_expression "(int *)(pbVar39 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar39 + -0x7fc4)" ( (binary_expression "pbVar39 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pbVar39 + -0x7810))();" (call_expression "(**(code **)(pbVar39 + -0x7810))()" (parenthesized_expression "(**(code **)(pbVar39 + -0x7810))" ( (pointer_expression "**(code **)(pbVar39 + -0x7810)" * (pointer_expression "*(code **)(pbVar39 + -0x7810)" * (cast_expression "(code **)(pbVar39 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar39 + -0x7810)" ( (binary_expression "pbVar39 + -0x7810" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00282ce0:\n  sVar21 = (size_t)((uint)of->file_size_ < sVar21);" statement_identifier : (expression_statement "sVar21 = (size_t)((uint)of->file_size_ < sVar21);" (assignment_expression "sVar21 = (size_t)((uint)of->file_size_ < sVar21)" identifier = (cast_expression "(size_t)((uint)of->file_size_ < sVar21)" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "((uint)of->file_size_ < sVar21)" ( (binary_expression "(uint)of->file_size_ < sVar21" (cast_expression "(uint)of->file_size_" ( (type_descriptor "uint" type_identifier) ) (field_expression "of->file_size_" identifier -> field_identifier)) < identifier) )))) ;)) (if_statement "if (sVar21 != 0) goto LAB_00282cf0;" if (parenthesized_expression "(sVar21 != 0)" ( (binary_expression "sVar21 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00282cf0;" goto statement_identifier ;)) (goto_statement "goto LAB_00282b34;" goto statement_identifier ;) (labeled_statement "LAB_00283020:\n  uVar20 = 0x46d;" statement_identifier : (expression_statement "uVar20 = 0x46d;" (assignment_expression "uVar20 = 0x46d" identifier = number_literal) ;)) (labeled_statement "LAB_00283024:\n  pcVar37 = pcVar40;" statement_identifier : (expression_statement "pcVar37 = pcVar40;" (assignment_expression "pcVar37 = pcVar40" identifier = identifier) ;)) (expression_statement "(**(code **)(pcVar40 + -0x7810))\n            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x87c);" (call_expression "(**(code **)(pcVar40 + -0x7810))\n            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x87c)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x87c)" ( (binary_expression "*(int *)(pcVar40 + -0x7924) + -0xe14" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x87c" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0028303c:\n  iVar27 = *(int *)(pcVar40 + -0x7924) + -0x88c;" statement_identifier : (expression_statement "iVar27 = *(int *)(pcVar40 + -0x7924) + -0x88c;" (assignment_expression "iVar27 = *(int *)(pcVar40 + -0x7924) + -0x88c" identifier = (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x88c" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "(**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0);" (call_expression "(**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x4584" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (labeled_statement "LAB_00283058:\n  pcVar23 = (char *)0x1043;" statement_identifier : (expression_statement "pcVar23 = (char *)0x1043;" (assignment_expression "pcVar23 = (char *)0x1043" identifier = (cast_expression "(char *)0x1043" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pOVar28 = (Output_file *)(iVar27 - 0x664);" (assignment_expression "pOVar28 = (Output_file *)(iVar27 - 0x664)" identifier = (cast_expression "(Output_file *)(iVar27 - 0x664)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 - 0x664)" ( (binary_expression "iVar27 - 0x664" identifier - number_literal) )))) ;) (expression_statement "pOVar17 = (Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);" (assignment_expression "pOVar17 = (Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" identifier = (cast_expression "(Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar14 = (**(code **)(pcVar40 + -0x7810))();" (assignment_expression "uVar14 = (**(code **)(pcVar40 + -0x7810))()" identifier = (call_expression "(**(code **)(pcVar40 + -0x7810))()" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_00283070:\n  pOVar28 = (Output_file *)(uint)(*(Output_file **)((int)&local_30->file_size_ + 4) < pOVar28);" statement_identifier : (expression_statement "pOVar28 = (Output_file *)(uint)(*(Output_file **)((int)&local_30->file_size_ + 4) < pOVar28);" (assignment_expression "pOVar28 = (Output_file *)(uint)(*(Output_file **)((int)&local_30->file_size_ + 4) < pOVar28)" identifier = (cast_expression "(Output_file *)(uint)(*(Output_file **)((int)&local_30->file_size_ + 4) < pOVar28)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(Output_file **)((int)&local_30->file_size_ + 4) < pOVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(Output_file **)((int)&local_30->file_size_ + 4) < pOVar28)" ( (binary_expression "*(Output_file **)((int)&local_30->file_size_ + 4) < pOVar28" (pointer_expression "*(Output_file **)((int)&local_30->file_size_ + 4)" * (cast_expression "(Output_file **)((int)&local_30->file_size_ + 4)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_30->file_size_ + 4)" ( (binary_expression "(int)&local_30->file_size_ + 4" (cast_expression "(int)&local_30->file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_30->file_size_" & (field_expression "local_30->file_size_" identifier -> field_identifier))) + number_literal) )))) < identifier) ))))) ;)) (if_statement "if (pOVar28 != (Output_file *)0x0) goto LAB_00283080;" if (parenthesized_expression "(pOVar28 != (Output_file *)0x0)" ( (binary_expression "pOVar28 != (Output_file *)0x0" identifier != (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00283080;" goto statement_identifier ;)) (goto_statement "goto LAB_00282e20;" goto statement_identifier ;) (labeled_statement "LAB_002833c0:\n  uVar20 = 0x46d;" statement_identifier : (expression_statement "uVar20 = 0x46d;" (assignment_expression "uVar20 = 0x46d" identifier = number_literal) ;)) (labeled_statement "LAB_002833c4:\n  pcVar38 = pcVar40;" statement_identifier : (expression_statement "pcVar38 = pcVar40;" (assignment_expression "pcVar38 = pcVar40" identifier = identifier) ;)) (expression_statement "(**(code **)(pcVar40 + -0x7810))\n            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x8b0);" (call_expression "(**(code **)(pcVar40 + -0x7810))\n            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x8b0)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x8b0)" ( (binary_expression "*(int *)(pcVar40 + -0x7924) + -0xe14" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x8b0" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_002833dc:\n  iVar27 = *(int *)(pcVar40 + -0x7924) + -0x88c;" statement_identifier : (expression_statement "iVar27 = *(int *)(pcVar40 + -0x7924) + -0x88c;" (assignment_expression "iVar27 = *(int *)(pcVar40 + -0x7924) + -0x88c" identifier = (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x88c" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "(**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0);" (call_expression "(**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x4584" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (labeled_statement "LAB_002833f8:\n  pOVar17 = (Output_file *)0x1043;" statement_identifier : (expression_statement "pOVar17 = (Output_file *)0x1043;" (assignment_expression "pOVar17 = (Output_file *)0x1043" identifier = (cast_expression "(Output_file *)0x1043" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pOVar28 = (Output_file *)(iVar27 - 0x664);" (assignment_expression "pOVar28 = (Output_file *)(iVar27 - 0x664)" identifier = (cast_expression "(Output_file *)(iVar27 - 0x664)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 - 0x664)" ( (binary_expression "iVar27 - 0x664" identifier - number_literal) )))) ;) (expression_statement "uVar14 = (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x3574);" (assignment_expression "uVar14 = (**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" identifier = (call_expression "(**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_00283410:\n  pOVar15 = *(Output_file **)((int)&pOStack_80->file_size_ + 4);" statement_identifier : (expression_statement "pOVar15 = *(Output_file **)((int)&pOStack_80->file_size_ + 4);" (assignment_expression "pOVar15 = *(Output_file **)((int)&pOStack_80->file_size_ + 4)" identifier = (pointer_expression "*(Output_file **)((int)&pOStack_80->file_size_ + 4)" * (cast_expression "(Output_file **)((int)&pOStack_80->file_size_ + 4)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOStack_80->file_size_ + 4)" ( (binary_expression "(int)&pOStack_80->file_size_ + 4" (cast_expression "(int)&pOStack_80->file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOStack_80->file_size_" & (field_expression "pOStack_80->file_size_" identifier -> field_identifier))) + number_literal) ))))) ;)) (expression_statement "pOVar29 = (Output_file *)(uint)(pOVar15 < pOVar29);" (assignment_expression "pOVar29 = (Output_file *)(uint)(pOVar15 < pOVar29)" identifier = (cast_expression "(Output_file *)(uint)(pOVar15 < pOVar29)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pOVar15 < pOVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar15 < pOVar29)" ( (binary_expression "pOVar15 < pOVar29" identifier < identifier) ))))) ;) (if_statement "if (pOVar29 != (Output_file *)0x0) goto LAB_00283420;" if (parenthesized_expression "(pOVar29 != (Output_file *)0x0)" ( (binary_expression "pOVar29 != (Output_file *)0x0" identifier != (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00283420;" goto statement_identifier ;)) (goto_statement "goto LAB_002831b0;" goto statement_identifier ;) (labeled_statement "LAB_00283718:\n  uVar20 = 0x46d;" statement_identifier : (expression_statement "uVar20 = 0x46d;" (assignment_expression "uVar20 = 0x46d" identifier = number_literal) ;)) (labeled_statement "LAB_0028371c:\n  pcVar37 = pcVar40;" statement_identifier : (expression_statement "pcVar37 = pcVar40;" (assignment_expression "pcVar37 = pcVar40" identifier = identifier) ;)) (expression_statement "(**(code **)(pcVar40 + -0x7810))\n            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x988);" (call_expression "(**(code **)(pcVar40 + -0x7810))\n            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x988)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x988)" ( (binary_expression "*(int *)(pcVar40 + -0x7924) + -0xe14" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x988" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_00283734:\n  pOVar28 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x88c);" statement_identifier : (expression_statement "pOVar28 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x88c);" (assignment_expression "pOVar28 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x88c)" identifier = (cast_expression "(Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x88c)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + -0x7924) + -0x88c)" ( (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x88c" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "(**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0);" (call_expression "(**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x4584" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (labeled_statement "LAB_00283750:\n  sVar21 = 0x1043;" statement_identifier : (expression_statement "sVar21 = 0x1043;" (assignment_expression "sVar21 = 0x1043" identifier = number_literal) ;)) (expression_statement "pOVar28 = (Output_file *)&pOVar28[-0x45].map_is_anonymous_;" (assignment_expression "pOVar28 = (Output_file *)&pOVar28[-0x45].map_is_anonymous_" identifier = (cast_expression "(Output_file *)&pOVar28[-0x45].map_is_anonymous_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar28[-0x45].map_is_anonymous_" & (field_expression "pOVar28[-0x45].map_is_anonymous_" (subscript_expression "pOVar28[-0x45]" identifier [ number_literal ]) . field_identifier)))) ;) (expression_statement "pOVar15 = (Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);" (assignment_expression "pOVar15 = (Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" identifier = (cast_expression "(Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar40 + -0x7810))();" (call_expression "(**(code **)(pcVar40 + -0x7810))()" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00283768:\n  sVar21 = (size_t)(*(uint *)(iStack_d8 + 0xc) < sVar21);" statement_identifier : (expression_statement "sVar21 = (size_t)(*(uint *)(iStack_d8 + 0xc) < sVar21);" (assignment_expression "sVar21 = (size_t)(*(uint *)(iStack_d8 + 0xc) < sVar21)" identifier = (cast_expression "(size_t)(*(uint *)(iStack_d8 + 0xc) < sVar21)" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(*(uint *)(iStack_d8 + 0xc) < sVar21)" ( (binary_expression "*(uint *)(iStack_d8 + 0xc) < sVar21" (pointer_expression "*(uint *)(iStack_d8 + 0xc)" * (cast_expression "(uint *)(iStack_d8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_d8 + 0xc)" ( (binary_expression "iStack_d8 + 0xc" identifier + number_literal) )))) < identifier) )))) ;)) (if_statement "if (sVar21 != 0) goto LAB_00283778;" if (parenthesized_expression "(sVar21 != 0)" ( (binary_expression "sVar21 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00283778;" goto statement_identifier ;)) (goto_statement "goto LAB_00283554;" goto statement_identifier ;) (labeled_statement "LAB_00283a80:\n  uVar20 = 0x46d;" statement_identifier : (expression_statement "uVar20 = 0x46d;" (assignment_expression "uVar20 = 0x46d" identifier = number_literal) ;)) (labeled_statement "LAB_00283a84:\n  pcVar38 = pcVar40;" statement_identifier : (expression_statement "pcVar38 = pcVar40;" (assignment_expression "pcVar38 = pcVar40" identifier = identifier) ;)) (expression_statement "(**(code **)(pcVar40 + -0x7810))\n            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x9ac);" (call_expression "(**(code **)(pcVar40 + -0x7810))\n            (*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x9ac)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7924) + -0xe14,uVar20,*(int *)(pcVar40 + -0x7924) + -0x9ac)" ( (binary_expression "*(int *)(pcVar40 + -0x7924) + -0xe14" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x9ac" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_00283a9c:\n  pOVar17 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x88c);" statement_identifier : (expression_statement "pOVar17 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x88c);" (assignment_expression "pOVar17 = (Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x88c)" identifier = (cast_expression "(Output_file *)(*(int *)(pcVar40 + -0x7924) + -0x88c)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + -0x7924) + -0x88c)" ( (binary_expression "*(int *)(pcVar40 + -0x7924) + -0x88c" (pointer_expression "*(int *)(pcVar40 + -0x7924)" * (cast_expression "(int *)(pcVar40 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7924)" ( (binary_expression "pcVar40 + -0x7924" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "(**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0);" (call_expression "(**(code **)(pcVar40 + -0x7810))(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0)" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + -0x7fc4) + 0x4584,0xc0)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x4584" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (labeled_statement "LAB_00283ab8:\n  pcVar23 = (char *)0x1043;" statement_identifier : (expression_statement "pcVar23 = (char *)0x1043;" (assignment_expression "pcVar23 = (char *)0x1043" identifier = (cast_expression "(char *)0x1043" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pOVar17 = (Output_file *)&pOVar17[-0x45].map_is_anonymous_;" (assignment_expression "pOVar17 = (Output_file *)&pOVar17[-0x45].map_is_anonymous_" identifier = (cast_expression "(Output_file *)&pOVar17[-0x45].map_is_anonymous_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar17[-0x45].map_is_anonymous_" & (field_expression "pOVar17[-0x45].map_is_anonymous_" (subscript_expression "pOVar17[-0x45]" identifier [ number_literal ]) . field_identifier)))) ;) (expression_statement "pOVar28 = (Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574);" (assignment_expression "pOVar28 = (Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" identifier = (cast_expression "(Output_file *)(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar40 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(pcVar40 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcVar40 + -0x7fc4)" * (cast_expression "(int *)(pcVar40 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + -0x7fc4)" ( (binary_expression "pcVar40 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar40 + -0x7810))();" (call_expression "(**(code **)(pcVar40 + -0x7810))()" (parenthesized_expression "(**(code **)(pcVar40 + -0x7810))" ( (pointer_expression "**(code **)(pcVar40 + -0x7810)" * (pointer_expression "*(code **)(pcVar40 + -0x7810)" * (cast_expression "(code **)(pcVar40 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + -0x7810)" ( (binary_expression "pcVar40 + -0x7810" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00283ad0:\n  pOVar17 = (Output_file *)(uint)(*(Output_file **)(iStack_128 + 0xc) < pOVar17);" statement_identifier : (expression_statement "pOVar17 = (Output_file *)(uint)(*(Output_file **)(iStack_128 + 0xc) < pOVar17);" (assignment_expression "pOVar17 = (Output_file *)(uint)(*(Output_file **)(iStack_128 + 0xc) < pOVar17)" identifier = (cast_expression "(Output_file *)(uint)(*(Output_file **)(iStack_128 + 0xc) < pOVar17)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(Output_file **)(iStack_128 + 0xc) < pOVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(Output_file **)(iStack_128 + 0xc) < pOVar17)" ( (binary_expression "*(Output_file **)(iStack_128 + 0xc) < pOVar17" (pointer_expression "*(Output_file **)(iStack_128 + 0xc)" * (cast_expression "(Output_file **)(iStack_128 + 0xc)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iStack_128 + 0xc)" ( (binary_expression "iStack_128 + 0xc" identifier + number_literal) )))) < identifier) ))))) ;)) (if_statement "if (pOVar17 != (Output_file *)0x0) goto LAB_00283ae0;" if (parenthesized_expression "(pOVar17 != (Output_file *)0x0)" ( (binary_expression "pOVar17 != (Output_file *)0x0" identifier != (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00283ae0;" goto statement_identifier ;)) (goto_statement "goto LAB_002838ac;" goto statement_identifier ;) (ERROR "}" }))
(translation_unit "void __thiscall\ngold::Sized_relobj_file<32,true>::incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint local_30;\n  \n  if (*(code **)(*(int *)param_4 + 0x2c) == (code *)PTR_do_out_shndx_004c219c) {\n    local_30 = *(uint *)(param_4 + 100);\n    if (local_30 == 0xffffffff) {\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 + -0x664);\n      return;\n    }\n  }\n  else {\n    local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);\n  }\n  uVar8 = 0x44e;\n  if (*(int *)(*(int *)(param_1 + 4) + 0x1dc) == 0) {\nLAB_00282cb0:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);\n    return;\n  }\n  iVar6 = *(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c);\n  if (-1 < *(int *)(iVar6 + 0x20) << 2) {\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 + -0x4f4);\n    return;\n  }\n  iVar9 = *(int *)(iVar6 + 0x1c);\n  if (*(int *)(iVar6 + 0x20) << 1 < 0) {\n    if (-1 < *(int *)(iVar6 + 0x18)) {\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }\n    FUN_0027c51c();\n  }\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 + -0x500);\n  return;\n}\n\n" (declaration "void __thiscall\ngold::Sized_relobj_file<32,true>::incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)\n\n{\n  int *piVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "true>::incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)\n\n{\n  int" identifier > : : (function_declarator "incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)" identifier (ERROR "<4>" < number_literal >) (parameter_list "(Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)" ( (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relocate_info *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uchar *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "Output_section *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "Output_file *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) { primitive_type) (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (if_statement "if (*(code **)(*(int *)param_4 + 0x2c) == (code *)PTR_do_out_shndx_004c219c) {\n    local_30 = *(uint *)(param_4 + 100);\n    if (local_30 == 0xffffffff) {\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 + -0x664);\n      return;\n    }\n  }\n  else {\n    local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);\n  }" if (parenthesized_expression "(*(code **)(*(int *)param_4 + 0x2c) == (code *)PTR_do_out_shndx_004c219c)" ( (binary_expression "*(code **)(*(int *)param_4 + 0x2c) == (code *)PTR_do_out_shndx_004c219c" (pointer_expression "*(code **)(*(int *)param_4 + 0x2c)" * (cast_expression "(code **)(*(int *)param_4 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_4 + 0x2c)" ( (binary_expression "*(int *)param_4 + 0x2c" (pointer_expression "*(int *)param_4" * (cast_expression "(int *)param_4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (cast_expression "(code *)PTR_do_out_shndx_004c219c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    local_30 = *(uint *)(param_4 + 100);\n    if (local_30 == 0xffffffff) {\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 + -0x664);\n      return;\n    }\n  }" { (expression_statement "local_30 = *(uint *)(param_4 + 100);" (assignment_expression "local_30 = *(uint *)(param_4 + 100)" identifier = (pointer_expression "*(uint *)(param_4 + 100)" * (cast_expression "(uint *)(param_4 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 100)" ( (binary_expression "param_4 + 100" identifier + number_literal) ))))) ;) (if_statement "if (local_30 == 0xffffffff) {\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 + -0x664);\n      return;\n    }" if (parenthesized_expression "(local_30 == 0xffffffff)" ( (binary_expression "local_30 == 0xffffffff" 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 + -0x664);\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 + -0x664);" (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 + -0x664)" (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 + -0x664)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x664" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);\n  }" else (compound_statement "{\n    local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);\n  }" { (expression_statement "local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);" (assignment_expression "local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4)" identifier = (call_expression "(**(code **)(*(int *)param_4 + 0x2c))(param_4)" (parenthesized_expression "(**(code **)(*(int *)param_4 + 0x2c))" ( (pointer_expression "**(code **)(*(int *)param_4 + 0x2c)" * (pointer_expression "*(code **)(*(int *)param_4 + 0x2c)" * (cast_expression "(code **)(*(int *)param_4 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_4 + 0x2c)" ( (binary_expression "*(int *)param_4 + 0x2c" (pointer_expression "*(int *)param_4" * (cast_expression "(int *)param_4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(param_4)" ( identifier )))) ;) }))) (expression_statement "uVar8 = 0x44e;" (assignment_expression "uVar8 = 0x44e" identifier = number_literal) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 4) + 0x1dc) == 0) {\nLAB_00282cb0:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);\n    return;\n  }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 4) + 0x1dc) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 4) + 0x1dc) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 0x1dc)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + 0x1dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0x1dc)" ( (binary_expression "*(int *)(param_1 + 4) + 0x1dc" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00282cb0:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);\n    return;\n  }" { (labeled_statement "LAB_00282cb0:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4)" (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 + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0xe14" identifier + number_literal) , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x7a4" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c);" (assignment_expression "iVar6 = *(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c)" * (cast_expression "(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c)" ( (binary_expression "*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c" (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 0x1dc)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + 0x1dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0x1dc)" ( (binary_expression "*(int *)(param_1 + 4) + 0x1dc" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (-1 < *(int *)(iVar6 + 0x20) << 2) {\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 + -0x4f4);\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar6 + 0x20) << 2)" ( (binary_expression "-1 < *(int *)(iVar6 + 0x20) << 2" number_literal < (binary_expression "*(int *)(iVar6 + 0x20) << 2" (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\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 + -0x4f4);\n    return;\n  }" { (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 + -0x4f4);" (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 + -0x4f4)" (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 + -0x4f4)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x4f4" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar9 = *(int *)(iVar6 + 0x1c);" (assignment_expression "iVar9 = *(int *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar6 + 0x1c)" * (cast_expression "(int *)(iVar6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar6 + 0x20) << 1 < 0) {\n    if (-1 < *(int *)(iVar6 + 0x18)) {\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }\n    FUN_0027c51c();\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x20) << 1 < 0)" ( (binary_expression "*(int *)(iVar6 + 0x20) << 1 < 0" (binary_expression "*(int *)(iVar6 + 0x20) << 1" (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n    if (-1 < *(int *)(iVar6 + 0x18)) {\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }\n    FUN_0027c51c();\n  }" { (if_statement "if (-1 < *(int *)(iVar6 + 0x18)) {\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }" if (parenthesized_expression "(-1 < *(int *)(iVar6 + 0x18))" ( (binary_expression "-1 < *(int *)(iVar6 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }" { (expression_statement "uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;" (assignment_expression "uVar10 = *(uint *)(iVar6 + 0x14) + iVar9" identifier = (binary_expression "*(uint *)(iVar6 + 0x14) + iVar9" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) + identifier)) ;) (expression_statement "iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);" (assignment_expression "iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18)" identifier = (binary_expression "(uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18)" (call_expression "(uint)(uVar10 < *(uint *)(iVar6 + 0x14))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < *(uint *)(iVar6 + 0x14))" ( (binary_expression "uVar10 < *(uint *)(iVar6 + 0x14)" identifier < (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }" if (parenthesized_expression "((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc)))))" ( (binary_expression "(iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))" (parenthesized_expression "(iVar6 <= *(int *)(param_6 + 8))" ( (binary_expression "iVar6 <= *(int *)(param_6 + 8)" identifier <= (pointer_expression "*(int *)(param_6 + 8)" * (cast_expression "(int *)(param_6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 8)" ( (binary_expression "param_6 + 8" identifier + number_literal) ))))) )) && (parenthesized_expression "((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))" ( (parenthesized_expression "(*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc)))" ( (binary_expression "*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))" (binary_expression "*(int *)(param_6 + 8) != iVar6" (pointer_expression "*(int *)(param_6 + 8)" * (cast_expression "(int *)(param_6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 8)" ( (binary_expression "param_6 + 8" identifier + number_literal) )))) != identifier) || (parenthesized_expression "(uVar10 <= *(uint *)(param_6 + 0xc))" ( (binary_expression "uVar10 <= *(uint *)(param_6 + 0xc)" identifier <= (pointer_expression "*(uint *)(param_6 + 0xc)" * (cast_expression "(uint *)(param_6 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0xc)" ( (binary_expression "param_6 + 0xc" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }" { (expression_statement "iVar6 = *(int *)(param_6 + 0x10);" (assignment_expression "iVar6 = *(int *)(param_6 + 0x10)" identifier = (pointer_expression "*(int *)(param_6 + 0x10)" * (cast_expression "(int *)(param_6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x10)" ( (binary_expression "param_6 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }" { (do_statement "do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);" do (compound_statement "{\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          }" { (expression_statement "uVar14 = *(uint *)((int)param_2 + 4);" (assignment_expression "uVar14 = *(uint *)((int)param_2 + 4)" identifier = (pointer_expression "*(uint *)((int)param_2 + 4)" * (cast_expression "(uint *)((int)param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 4)" ( (binary_expression "(int)param_2 + 4" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(this + 0xb8);" (assignment_expression "uVar7 = *(uint *)(this + 0xb8)" identifier = (pointer_expression "*(uint *)(this + 0xb8)" * (cast_expression "(uint *)(this + 0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xb8)" ( (binary_expression "this + 0xb8" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = uVar14 >> 8;" (assignment_expression "uVar13 = uVar14 >> 8" identifier = (binary_expression "uVar14 >> 8" identifier >> number_literal)) ;) (if_statement "if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }" if (parenthesized_expression "(uVar7 <= uVar13)" ( (binary_expression "uVar7 <= uVar13" identifier <= identifier) )) (compound_statement "{\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }" { (expression_statement "iVar12 = *(int *)param_2;" (assignment_expression "iVar12 = *(int *)param_2" identifier = (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = param_5;" (assignment_expression "uVar5 = param_5" identifier = identifier) ;) (if_statement "if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }" if (parenthesized_expression "(param_5 == 0xffffffff)" ( (binary_expression "param_5 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }" { (expression_statement "uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);" (assignment_expression "uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12)" identifier = (call_expression "(*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12)" (parenthesized_expression "(*(code *)PTR_output_offset_004c1bc4)" ( (pointer_expression "*(code *)PTR_output_offset_004c1bc4" * (cast_expression "(code *)PTR_output_offset_004c1bc4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12)" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }" if (parenthesized_expression "(uVar5 == 0xffffffff)" ( (binary_expression "uVar5 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }" { (expression_statement "uVar8 = 0x46d;" (assignment_expression "uVar8 = 0x46d" identifier = number_literal) ;) (goto_statement "goto LAB_00282cb0;" goto statement_identifier ;) })) (expression_statement "uVar7 = *(uint *)(this + 0xb8);" (assignment_expression "uVar7 = *(uint *)(this + 0xb8)" identifier = (pointer_expression "*(uint *)(this + 0xb8)" * (cast_expression "(uint *)(this + 0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xb8)" ( (binary_expression "this + 0xb8" identifier + number_literal) ))))) ;) })) (expression_statement "uVar13 = uVar13 - uVar7;" (assignment_expression "uVar13 = uVar13 - uVar7" identifier = (binary_expression "uVar13 - uVar7" identifier - identifier)) ;) (expression_statement "uVar7 = *(uint *)((int)param_2 + 8);" (assignment_expression "uVar7 = *(uint *)((int)param_2 + 8)" identifier = (pointer_expression "*(uint *)((int)param_2 + 8)" * (cast_expression "(uint *)((int)param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 8)" ( (binary_expression "(int)param_2 + 8" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);" (assignment_expression "piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this)" identifier = (cast_expression "(int *)(**(code **)(*(int *)this + 0x74))(this)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)this + 0x74))(this)" (parenthesized_expression "(**(code **)(*(int *)this + 0x74))" ( (pointer_expression "**(code **)(*(int *)this + 0x74)" * (pointer_expression "*(code **)(*(int *)this + 0x74)" * (cast_expression "(code **)(*(int *)this + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)this + 0x74)" ( (binary_expression "*(int *)this + 0x74" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(this)" ( identifier ))))) ;) (if_statement "if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }" if (parenthesized_expression "(*(int *)(this + 0x58) == 0)" ( (binary_expression "*(int *)(this + 0x58) == 0" (pointer_expression "*(int *)(this + 0x58)" * (cast_expression "(int *)(this + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x58)" ( (binary_expression "this + 0x58" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }" { (expression_statement "uVar8 = 0x603;" (assignment_expression "uVar8 = 0x603" identifier = number_literal) ;) (labeled_statement "LAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684)" (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,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x684" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (expression_statement "iVar11 = *(int *)(this + 0x5c);" (assignment_expression "iVar11 = *(int *)(this + 0x5c)" identifier = (pointer_expression "*(int *)(this + 0x5c)" * (cast_expression "(int *)(this + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x5c)" ( (binary_expression "this + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }" { (expression_statement "uVar8 = 0x604;" (assignment_expression "uVar8 = 0x604" identifier = number_literal) ;) (goto_statement "goto LAB_00282c84;" goto statement_identifier ;) })) (expression_statement "iVar2 = uVar13 * 4;" (assignment_expression "iVar2 = uVar13 * 4" identifier = (binary_expression "uVar13 * 4" identifier * number_literal)) ;) (if_statement "if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }" if (parenthesized_expression "((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13)" ( (binary_expression "(uint)(piVar1[1] - *piVar1 >> 2) <= uVar13" (call_expression "(uint)(piVar1[1] - *piVar1 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar1[1] - *piVar1 >> 2)" ( (binary_expression "piVar1[1] - *piVar1 >> 2" (binary_expression "piVar1[1] - *piVar1" (subscript_expression "piVar1[1]" identifier [ number_literal ]) - (pointer_expression "*piVar1" * identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }" { (expression_statement "uVar8 = 0x605;" (assignment_expression "uVar8 = 0x605" identifier = number_literal) ;) (goto_statement "goto LAB_00282c84;" goto statement_identifier ;) })) (expression_statement "piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);" (assignment_expression "piVar1 = (int *)(*(int *)(this + 0x58) + iVar2)" identifier = (cast_expression "(int *)(*(int *)(this + 0x58) + iVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 0x58) + iVar2)" ( (binary_expression "*(int *)(this + 0x58) + iVar2" (pointer_expression "*(int *)(this + 0x58)" * (cast_expression "(int *)(this + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x58)" ( (binary_expression "this + 0x58" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "iVar3 = *piVar1;" (assignment_expression "iVar3 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "*piVar1 = iVar3 + 1;" (assignment_expression "*piVar1 = iVar3 + 1" (pointer_expression "*piVar1" * identifier) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);" (assignment_expression "puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9)" identifier = (cast_expression "(uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9)" ( (binary_expression "iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9" (binary_expression "iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10" identifier + (binary_expression "(iVar3 + *(int *)(iVar11 + iVar2)) * 0x10" (parenthesized_expression "(iVar3 + *(int *)(iVar11 + iVar2))" ( (binary_expression "iVar3 + *(int *)(iVar11 + iVar2)" identifier + (pointer_expression "*(int *)(iVar11 + iVar2)" * (cast_expression "(int *)(iVar11 + iVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + iVar2)" ( (binary_expression "iVar11 + iVar2" identifier + identifier) ))))) )) * number_literal)) + identifier) )))) ;) (expression_statement "*puVar4 = uVar14 & 0xff;" (assignment_expression "*puVar4 = uVar14 & 0xff" (pointer_expression "*puVar4" * identifier) = (binary_expression "uVar14 & 0xff" identifier & number_literal)) ;) (expression_statement "puVar4[1] = local_30;" (assignment_expression "puVar4[1] = local_30" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar5 + iVar12;" (assignment_expression "puVar4[2] = uVar5 + iVar12" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (binary_expression "uVar5 + iVar12" identifier + identifier)) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "param_2 = (uchar *)((int)param_2 + 0xc);" (assignment_expression "param_2 = (uchar *)((int)param_2 + 0xc)" identifier = (cast_expression "(uchar *)((int)param_2 + 0xc)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0xc)" ( (binary_expression "(int)param_2 + 0xc" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(param_3 != uVar10)" ( (binary_expression "param_3 != uVar10" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })) })) (expression_statement "FUN_0027c51c();" (call_expression "FUN_0027c51c()" identifier (argument_list "()" ( ))) ;) })) (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 + -0x500);" (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 + -0x500)" (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 + -0x500)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x500" identifier + number_literal) ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ms_call_modifier __thiscall) (ERROR IDENT : :) IDENT (ERROR < LIT) , (ERROR IDENT > : : (function_declarator IDENT (ERROR < LIT >) (parameter_list ( (parameter_declaration TYPE) (ERROR < LIT) , (parameter_declaration TYPE (ERROR >) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) { TYPE) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (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 (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 < (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (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) )))))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (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) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * IDENT)) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) )) * LIT)) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (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 ;) (ERROR }))
(declaration "void __thiscall\ngold::Sized_relobj_file<32,true>::incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)\n\n{\n  int *piVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::" (identifier "gold") (: ":") (: ":")) (identifier "Sized_relobj_file") (ERROR "<32" (< "<") (number_literal "32")) (, ",") (ERROR "true>::incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)\n\n{\n  int" (identifier "true") (> ">") (: ":") (: ":") (function_declarator "incremental_relocs_write_reltype<4>\n          (Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)" (identifier "incremental_relocs_write_reltype") (ERROR "<4>" (< "<") (number_literal "4") (> ">")) (parameter_list "(Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,\n          Output_section *param_4,uint param_5,Output_file *param_6)" (( "(") (parameter_declaration "Sized_relobj_file" (type_identifier "Sized_relobj_file")) (ERROR "<32" (< "<") (number_literal "32")) (, ",") (parameter_declaration "true> *this" (type_identifier "true") (ERROR ">" (> ">")) (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "Relocate_info *param_1" (type_identifier "Relocate_info") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uchar *param_2" (type_identifier "uchar") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "Output_section *param_4" (type_identifier "Output_section") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "Output_file *param_6" (type_identifier "Output_file") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) ({ "{") (primitive_type "int")) (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint *puVar4;" (type_identifier "uint") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (if_statement "if (*(code **)(*(int *)param_4 + 0x2c) == (code *)PTR_do_out_shndx_004c219c) {\n    local_30 = *(uint *)(param_4 + 100);\n    if (local_30 == 0xffffffff) {\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 + -0x664);\n      return;\n    }\n  }\n  else {\n    local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);\n  }" (if "if") (parenthesized_expression "(*(code **)(*(int *)param_4 + 0x2c) == (code *)PTR_do_out_shndx_004c219c)" (( "(") (binary_expression "*(code **)(*(int *)param_4 + 0x2c) == (code *)PTR_do_out_shndx_004c219c" (pointer_expression "*(code **)(*(int *)param_4 + 0x2c)" (* "*") (cast_expression "(code **)(*(int *)param_4 + 0x2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)param_4 + 0x2c)" (( "(") (binary_expression "*(int *)param_4 + 0x2c" (pointer_expression "*(int *)param_4" (* "*") (cast_expression "(int *)param_4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4"))) (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (cast_expression "(code *)PTR_do_out_shndx_004c219c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_out_shndx_004c219c"))) () ")")) (compound_statement "{\n    local_30 = *(uint *)(param_4 + 100);\n    if (local_30 == 0xffffffff) {\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 + -0x664);\n      return;\n    }\n  }" ({ "{") (expression_statement "local_30 = *(uint *)(param_4 + 100);" (assignment_expression "local_30 = *(uint *)(param_4 + 100)" (identifier "local_30") (= "=") (pointer_expression "*(uint *)(param_4 + 100)" (* "*") (cast_expression "(uint *)(param_4 + 100)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 100)" (( "(") (binary_expression "param_4 + 100" (identifier "param_4") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (if_statement "if (local_30 == 0xffffffff) {\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 + -0x664);\n      return;\n    }" (if "if") (parenthesized_expression "(local_30 == 0xffffffff)" (( "(") (binary_expression "local_30 == 0xffffffff" (identifier "local_30") (== "==") (number_literal "0xffffffff")) () ")")) (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 + -0x664);\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 + -0x664);" (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 + -0x664)" (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 + -0x664)" (( "(") (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 + -0x664" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x664")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);\n  }" (else "else") (compound_statement "{\n    local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);\n  }" ({ "{") (expression_statement "local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);" (assignment_expression "local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4)" (identifier "local_30") (= "=") (call_expression "(**(code **)(*(int *)param_4 + 0x2c))(param_4)" (parenthesized_expression "(**(code **)(*(int *)param_4 + 0x2c))" (( "(") (pointer_expression "**(code **)(*(int *)param_4 + 0x2c)" (* "*") (pointer_expression "*(code **)(*(int *)param_4 + 0x2c)" (* "*") (cast_expression "(code **)(*(int *)param_4 + 0x2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)param_4 + 0x2c)" (( "(") (binary_expression "*(int *)param_4 + 0x2c" (pointer_expression "*(int *)param_4" (* "*") (cast_expression "(int *)param_4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4"))) (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (argument_list "(param_4)" (( "(") (identifier "param_4") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar8 = 0x44e;" (assignment_expression "uVar8 = 0x44e" (identifier "uVar8") (= "=") (number_literal "0x44e")) (; ";")) (if_statement "if (*(int *)(*(int *)(param_1 + 4) + 0x1dc) == 0) {\nLAB_00282cb0:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 4) + 0x1dc) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 4) + 0x1dc) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 0x1dc)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 4) + 0x1dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + 0x1dc)" (( "(") (binary_expression "*(int *)(param_1 + 4) + 0x1dc" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x1dc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00282cb0:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);\n    return;\n  }" ({ "{") (labeled_statement "LAB_00282cb0:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);" (statement_identifier "LAB_00282cb0") (: ":") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4)" (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 + -0xe14,uVar8,\n               PTR_s_in_a_linker_script_004c191c + -0x7a4)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0xe14" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0xe14")) (, ",") (identifier "uVar8") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x7a4" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x7a4")) () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar6 = *(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c);" (assignment_expression "iVar6 = *(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c" (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 0x1dc)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 4) + 0x1dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + 0x1dc)" (( "(") (binary_expression "*(int *)(param_1 + 4) + 0x1dc" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x1dc")) () ")")))) (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (if_statement "if (-1 < *(int *)(iVar6 + 0x20) << 2) {\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 + -0x4f4);\n    return;\n  }" (if "if") (parenthesized_expression "(-1 < *(int *)(iVar6 + 0x20) << 2)" (( "(") (binary_expression "-1 < *(int *)(iVar6 + 0x20) << 2" (number_literal "-1") (< "<") (binary_expression "*(int *)(iVar6 + 0x20) << 2" (pointer_expression "*(int *)(iVar6 + 0x20)" (* "*") (cast_expression "(int *)(iVar6 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "2"))) () ")")) (compound_statement "{\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 + -0x4f4);\n    return;\n  }" ({ "{") (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 + -0x4f4);" (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 + -0x4f4)" (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 + -0x4f4)" (( "(") (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 + -0x4f4" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x4f4")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar9 = *(int *)(iVar6 + 0x1c);" (assignment_expression "iVar9 = *(int *)(iVar6 + 0x1c)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar6 + 0x1c)" (* "*") (cast_expression "(int *)(iVar6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1c)" (( "(") (binary_expression "iVar6 + 0x1c" (identifier "iVar6") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar6 + 0x20) << 1 < 0) {\n    if (-1 < *(int *)(iVar6 + 0x18)) {\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }\n    FUN_0027c51c();\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 0x20) << 1 < 0)" (( "(") (binary_expression "*(int *)(iVar6 + 0x20) << 1 < 0" (binary_expression "*(int *)(iVar6 + 0x20) << 1" (pointer_expression "*(int *)(iVar6 + 0x20)" (* "*") (cast_expression "(int *)(iVar6 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "1")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    if (-1 < *(int *)(iVar6 + 0x18)) {\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }\n    FUN_0027c51c();\n  }" ({ "{") (if_statement "if (-1 < *(int *)(iVar6 + 0x18)) {\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }" (if "if") (parenthesized_expression "(-1 < *(int *)(iVar6 + 0x18))" (( "(") (binary_expression "-1 < *(int *)(iVar6 + 0x18)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(iVar6 + 0x18)" (* "*") (cast_expression "(int *)(iVar6 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;\n      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);\n      if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }\n    }" ({ "{") (expression_statement "uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;" (assignment_expression "uVar10 = *(uint *)(iVar6 + 0x14) + iVar9" (identifier "uVar10") (= "=") (binary_expression "*(uint *)(iVar6 + 0x14) + iVar9" (pointer_expression "*(uint *)(iVar6 + 0x14)" (* "*") (cast_expression "(uint *)(iVar6 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);" (assignment_expression "iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18)" (identifier "iVar6") (= "=") (binary_expression "(uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18)" (call_expression "(uint)(uVar10 < *(uint *)(iVar6 + 0x14))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar10 < *(uint *)(iVar6 + 0x14))" (( "(") (binary_expression "uVar10 < *(uint *)(iVar6 + 0x14)" (identifier "uVar10") (< "<") (pointer_expression "*(uint *)(iVar6 + 0x14)" (* "*") (cast_expression "(uint *)(iVar6 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) (+ "+") (pointer_expression "*(int *)(iVar6 + 0x18)" (* "*") (cast_expression "(int *)(iVar6 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (if_statement "if ((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }" (if "if") (parenthesized_expression "((iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc)))))" (( "(") (binary_expression "(iVar6 <= *(int *)(param_6 + 8)) &&\n         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))" (parenthesized_expression "(iVar6 <= *(int *)(param_6 + 8))" (( "(") (binary_expression "iVar6 <= *(int *)(param_6 + 8)" (identifier "iVar6") (<= "<=") (pointer_expression "*(int *)(param_6 + 8)" (* "*") (cast_expression "(int *)(param_6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 8)" (( "(") (binary_expression "param_6 + 8" (identifier "param_6") (+ "+") (number_literal "8")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))" (( "(") (parenthesized_expression "(*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc)))" (( "(") (binary_expression "*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))" (binary_expression "*(int *)(param_6 + 8) != iVar6" (pointer_expression "*(int *)(param_6 + 8)" (* "*") (cast_expression "(int *)(param_6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 8)" (( "(") (binary_expression "param_6 + 8" (identifier "param_6") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (identifier "iVar6")) (|| "||") (parenthesized_expression "(uVar10 <= *(uint *)(param_6 + 0xc))" (( "(") (binary_expression "uVar10 <= *(uint *)(param_6 + 0xc)" (identifier "uVar10") (<= "<=") (pointer_expression "*(uint *)(param_6 + 0xc)" (* "*") (cast_expression "(uint *)(param_6 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0xc)" (( "(") (binary_expression "param_6 + 0xc" (identifier "param_6") (+ "+") (number_literal "0xc")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        iVar6 = *(int *)(param_6 + 0x10);\n        uVar10 = 0;\n        if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }\n        return;\n      }" ({ "{") (expression_statement "iVar6 = *(int *)(param_6 + 0x10);" (assignment_expression "iVar6 = *(int *)(param_6 + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_6 + 0x10)" (* "*") (cast_expression "(int *)(param_6 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x10)" (( "(") (binary_expression "param_6 + 0x10" (identifier "param_6") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_3 != 0) {\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);\n        }" ({ "{") (do_statement "do {\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          } while (param_3 != uVar10);" (do "do") (compound_statement "{\n            uVar14 = *(uint *)((int)param_2 + 4);\n            uVar7 = *(uint *)(this + 0xb8);\n            uVar13 = uVar14 >> 8;\n            if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }\n            uVar10 = uVar10 + 1;\n            param_2 = (uchar *)((int)param_2 + 0xc);\n          }" ({ "{") (expression_statement "uVar14 = *(uint *)((int)param_2 + 4);" (assignment_expression "uVar14 = *(uint *)((int)param_2 + 4)" (identifier "uVar14") (= "=") (pointer_expression "*(uint *)((int)param_2 + 4)" (* "*") (cast_expression "(uint *)((int)param_2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 4)" (( "(") (binary_expression "(int)param_2 + 4" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(uint *)(this + 0xb8);" (assignment_expression "uVar7 = *(uint *)(this + 0xb8)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(this + 0xb8)" (* "*") (cast_expression "(uint *)(this + 0xb8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xb8)" (( "(") (binary_expression "this + 0xb8" (identifier "this") (+ "+") (number_literal "0xb8")) () ")"))))) (; ";")) (expression_statement "uVar13 = uVar14 >> 8;" (assignment_expression "uVar13 = uVar14 >> 8" (identifier "uVar13") (= "=") (binary_expression "uVar14 >> 8" (identifier "uVar14") (>> ">>") (number_literal "8"))) (; ";")) (if_statement "if (uVar7 <= uVar13) {\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }" (if "if") (parenthesized_expression "(uVar7 <= uVar13)" (( "(") (binary_expression "uVar7 <= uVar13" (identifier "uVar7") (<= "<=") (identifier "uVar13")) () ")")) (compound_statement "{\n              iVar12 = *(int *)param_2;\n              uVar5 = param_5;\n              if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }\n              uVar13 = uVar13 - uVar7;\n              uVar7 = *(uint *)((int)param_2 + 8);\n              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);\n              if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }\n              iVar11 = *(int *)(this + 0x5c);\n              if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }\n              iVar2 = uVar13 * 4;\n              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }\n              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);\n              iVar3 = *piVar1;\n              *piVar1 = iVar3 + 1;\n              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);\n              *puVar4 = uVar14 & 0xff;\n              puVar4[1] = local_30;\n              puVar4[2] = uVar5 + iVar12;\n              puVar4[3] = uVar7;\n            }" ({ "{") (expression_statement "iVar12 = *(int *)param_2;" (assignment_expression "iVar12 = *(int *)param_2" (identifier "iVar12") (= "=") (pointer_expression "*(int *)param_2" (* "*") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")))) (; ";")) (expression_statement "uVar5 = param_5;" (assignment_expression "uVar5 = param_5" (identifier "uVar5") (= "=") (identifier "param_5")) (; ";")) (if_statement "if (param_5 == 0xffffffff) {\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }" (if "if") (parenthesized_expression "(param_5 == 0xffffffff)" (( "(") (binary_expression "param_5 == 0xffffffff" (identifier "param_5") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n                uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);\n                if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }\n                uVar7 = *(uint *)(this + 0xb8);\n              }" ({ "{") (expression_statement "uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12);" (assignment_expression "uVar5 = (*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12)" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_output_offset_004c1bc4)\n                                  (param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12)" (parenthesized_expression "(*(code *)PTR_output_offset_004c1bc4)" (( "(") (pointer_expression "*(code *)PTR_output_offset_004c1bc4" (* "*") (cast_expression "(code *)PTR_output_offset_004c1bc4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_output_offset_004c1bc4"))) () ")")) (argument_list "(param_4,*(undefined4 *)(param_1 + 8),\n                                   *(undefined4 *)(param_1 + 0x18),iVar12)" (( "(") (identifier "param_4") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "iVar12") () ")")))) (; ";")) (if_statement "if (uVar5 == 0xffffffff) {\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }" (if "if") (parenthesized_expression "(uVar5 == 0xffffffff)" (( "(") (binary_expression "uVar5 == 0xffffffff" (identifier "uVar5") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n                  uVar8 = 0x46d;\n                  goto LAB_00282cb0;\n                }" ({ "{") (expression_statement "uVar8 = 0x46d;" (assignment_expression "uVar8 = 0x46d" (identifier "uVar8") (= "=") (number_literal "0x46d")) (; ";")) (goto_statement "goto LAB_00282cb0;" (goto "goto") (statement_identifier "LAB_00282cb0") (; ";")) (} "}"))) (expression_statement "uVar7 = *(uint *)(this + 0xb8);" (assignment_expression "uVar7 = *(uint *)(this + 0xb8)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(this + 0xb8)" (* "*") (cast_expression "(uint *)(this + 0xb8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xb8)" (( "(") (binary_expression "this + 0xb8" (identifier "this") (+ "+") (number_literal "0xb8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar13 = uVar13 - uVar7;" (assignment_expression "uVar13 = uVar13 - uVar7" (identifier "uVar13") (= "=") (binary_expression "uVar13 - uVar7" (identifier "uVar13") (- "-") (identifier "uVar7"))) (; ";")) (expression_statement "uVar7 = *(uint *)((int)param_2 + 8);" (assignment_expression "uVar7 = *(uint *)((int)param_2 + 8)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)((int)param_2 + 8)" (* "*") (cast_expression "(uint *)((int)param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 8)" (( "(") (binary_expression "(int)param_2 + 8" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);" (assignment_expression "piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this)" (identifier "piVar1") (= "=") (cast_expression "(int *)(**(code **)(*(int *)this + 0x74))(this)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)this + 0x74))(this)" (parenthesized_expression "(**(code **)(*(int *)this + 0x74))" (( "(") (pointer_expression "**(code **)(*(int *)this + 0x74)" (* "*") (pointer_expression "*(code **)(*(int *)this + 0x74)" (* "*") (cast_expression "(code **)(*(int *)this + 0x74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)this + 0x74)" (( "(") (binary_expression "*(int *)this + 0x74" (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (+ "+") (number_literal "0x74")) () ")"))))) () ")")) (argument_list "(this)" (( "(") (identifier "this") () ")"))))) (; ";")) (if_statement "if (*(int *)(this + 0x58) == 0) {\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }" (if "if") (parenthesized_expression "(*(int *)(this + 0x58) == 0)" (( "(") (binary_expression "*(int *)(this + 0x58) == 0" (pointer_expression "*(int *)(this + 0x58)" (* "*") (cast_expression "(int *)(this + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x58)" (( "(") (binary_expression "this + 0x58" (identifier "this") (+ "+") (number_literal "0x58")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar8 = 0x603;\nLAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);\n                return;\n              }" ({ "{") (expression_statement "uVar8 = 0x603;" (assignment_expression "uVar8 = 0x603" (identifier "uVar8") (= "=") (number_literal "0x603")) (; ";")) (labeled_statement "LAB_00282c84:\n                (*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);" (statement_identifier "LAB_00282c84") (: ":") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684)" (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,uVar8,\n                           PTR_s_in_a_linker_script_004c191c + -0x684)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x4570")) (, ",") (identifier "uVar8") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x684" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x684")) () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)(this + 0x5c);" (assignment_expression "iVar11 = *(int *)(this + 0x5c)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(this + 0x5c)" (* "*") (cast_expression "(int *)(this + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x5c)" (( "(") (binary_expression "this + 0x5c" (identifier "this") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) {\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar8 = 0x604;\n                goto LAB_00282c84;\n              }" ({ "{") (expression_statement "uVar8 = 0x604;" (assignment_expression "uVar8 = 0x604" (identifier "uVar8") (= "=") (number_literal "0x604")) (; ";")) (goto_statement "goto LAB_00282c84;" (goto "goto") (statement_identifier "LAB_00282c84") (; ";")) (} "}"))) (expression_statement "iVar2 = uVar13 * 4;" (assignment_expression "iVar2 = uVar13 * 4" (identifier "iVar2") (= "=") (binary_expression "uVar13 * 4" (identifier "uVar13") (* "*") (number_literal "4"))) (; ";")) (if_statement "if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }" (if "if") (parenthesized_expression "((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13)" (( "(") (binary_expression "(uint)(piVar1[1] - *piVar1 >> 2) <= uVar13" (call_expression "(uint)(piVar1[1] - *piVar1 >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar1[1] - *piVar1 >> 2)" (( "(") (binary_expression "piVar1[1] - *piVar1 >> 2" (binary_expression "piVar1[1] - *piVar1" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (- "-") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar13")) () ")")) (compound_statement "{\n                uVar8 = 0x605;\n                goto LAB_00282c84;\n              }" ({ "{") (expression_statement "uVar8 = 0x605;" (assignment_expression "uVar8 = 0x605" (identifier "uVar8") (= "=") (number_literal "0x605")) (; ";")) (goto_statement "goto LAB_00282c84;" (goto "goto") (statement_identifier "LAB_00282c84") (; ";")) (} "}"))) (expression_statement "piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);" (assignment_expression "piVar1 = (int *)(*(int *)(this + 0x58) + iVar2)" (identifier "piVar1") (= "=") (cast_expression "(int *)(*(int *)(this + 0x58) + iVar2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(this + 0x58) + iVar2)" (( "(") (binary_expression "*(int *)(this + 0x58) + iVar2" (pointer_expression "*(int *)(this + 0x58)" (* "*") (cast_expression "(int *)(this + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x58)" (( "(") (binary_expression "this + 0x58" (identifier "this") (+ "+") (number_literal "0x58")) () ")")))) (+ "+") (identifier "iVar2")) () ")")))) (; ";")) (expression_statement "iVar3 = *piVar1;" (assignment_expression "iVar3 = *piVar1" (identifier "iVar3") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (expression_statement "*piVar1 = iVar3 + 1;" (assignment_expression "*piVar1 = iVar3 + 1" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);" (assignment_expression "puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9)" (identifier "puVar4") (= "=") (cast_expression "(uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9)" (( "(") (binary_expression "iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9" (binary_expression "iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10" (identifier "iVar6") (+ "+") (binary_expression "(iVar3 + *(int *)(iVar11 + iVar2)) * 0x10" (parenthesized_expression "(iVar3 + *(int *)(iVar11 + iVar2))" (( "(") (binary_expression "iVar3 + *(int *)(iVar11 + iVar2)" (identifier "iVar3") (+ "+") (pointer_expression "*(int *)(iVar11 + iVar2)" (* "*") (cast_expression "(int *)(iVar11 + iVar2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + iVar2)" (( "(") (binary_expression "iVar11 + iVar2" (identifier "iVar11") (+ "+") (identifier "iVar2")) () ")"))))) () ")")) (* "*") (number_literal "0x10"))) (+ "+") (identifier "iVar9")) () ")")))) (; ";")) (expression_statement "*puVar4 = uVar14 & 0xff;" (assignment_expression "*puVar4 = uVar14 & 0xff" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (binary_expression "uVar14 & 0xff" (identifier "uVar14") (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "puVar4[1] = local_30;" (assignment_expression "puVar4[1] = local_30" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "puVar4[2] = uVar5 + iVar12;" (assignment_expression "puVar4[2] = uVar5 + iVar12" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar5 + iVar12" (identifier "uVar5") (+ "+") (identifier "iVar12"))) (; ";")) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (} "}"))) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_2 = (uchar *)((int)param_2 + 0xc);" (assignment_expression "param_2 = (uchar *)((int)param_2 + 0xc)" (identifier "param_2") (= "=") (cast_expression "(uchar *)((int)param_2 + 0xc)" (( "(") (type_descriptor "uchar *" (type_identifier "uchar") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0xc)" (( "(") (binary_expression "(int)param_2 + 0xc" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_3 != uVar10)" (( "(") (binary_expression "param_3 != uVar10" (identifier "param_3") (!= "!=") (identifier "uVar10")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_0027c51c();" (call_expression "FUN_0027c51c()" (identifier "FUN_0027c51c") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (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 + -0x500);" (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 + -0x500)" (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 + -0x500)" (( "(") (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 + -0x500" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x500")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* 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 incremental_relocs_write_reltype<4>(Sized_relobj_file<32,_true> *
   this, Relocate_info<32,_true> * relinfo, uchar * prelocs, size_t reloc_count, Output_section *
   output_section, Address output_offset, Output_file * of) */

void __thiscall
gold::Sized_relobj_file<32,_true>::incremental_relocs_write_reltype<4>
          (Sized_relobj_file<32,_true> *this,Relocate_info<32,_true> *relinfo,type_3 *var_10,
          size_t var_9,Output_section *output_section,type_2 var_13,type_4 *of)

{
  type_10 *var_3;
  int var_4;
  int *var_54;
  type_1 var_18;
  type_2 var_15;
  int *piVar6;
  int var_34;
  type_3 *var_31;
  type_3 *var_41;
  int var_48;
  type_4 *var_46;
  int var_53;
  type_5 *pOVar13;
  type_1 var_5;
  type_4 *var_27;
  int var_33;
  type_4 *var_8;
  type_1 *var_16;
  type_6 *puVar19;
  type_6 uVar20;
  size_t var_7;
  type_1 *var_17;
  char *var_25;
  int var_52;
  type_7 *var_55;
  type_4 *var_39;
  int var_24;
  type_4 *var_26;
  type_4 *var_28;
  type_1 var_29;
  type_3 *var_32;
  type_1 var_40;
  type_1 var_12;
  type_1 var_11;
  type_4 *var_47;
  type_8 *var_1;
  type_9 *var_22;
  type_9 *var_37;
  bool *var_14;
  type_9 *var_30;
  type_6 in_stack_fffffe74;
  int var_51;
  int var_50;
  type_6 in_stack_fffffecc;
  size_t var_43;
  type_1 var_49;
  int var_42;
  type_6 in_stack_ffffff1c;
  type_1 var_44;
  type_4 *var_45;
  int var_38;
  type_6 in_stack_ffffff74;
  type_4 *var_36;
  type_3 *var_35;
  type_4 *pOStack_80;
  bool *var_23;
  type_6 in_stack_ffffffc4;
  size_t var_6;
  type_3 *var_19;
  type_4 *var_2;
  
  var_14 = &Position_dependent_options::default_options_.relax_.user_set_via_option;
  var_23 = &Position_dependent_options::default_options_.relax_.user_set_via_option;
  var_1 = (output_section->super_Output_data)._vptr_Output_data[0xb];
  var_28 = (type_4 *)var_9;
  if (var_1 == (type_8 *)PTR_do_out_shndx_004c219c) {
    var_2 = (type_4 *)output_section->out_shndx_;
    var_39 = (type_4 *)PTR_s_in_a_linker_script_004c191c;
    var_55 = PTR_s_in_a_linker_script_004c191c;
    if (var_2 == (type_4 *)0xffffffff) goto LAB_00282cc8;
  }
  else {
    var_39 = (type_4 *)var_10;
    var_2 = (type_4 *)(*var_1)(output_section);
  }
  var_14 = var_23;
  var_3 = relinfo->layout->incremental_inputs_;
  uVar20 = 0x44e;
  if (var_3 == (type_10 *)0x0) goto LAB_00282cb0;
  pOVar13 = var_3->relocs_section_;
  var_4 = *(int *)&(pOVar13->super_Output_section_data_build).super_Output_section_data.
                   super_Output_data.field_0x20;
  var_23 = var_14;
  if (var_4 << 2 < 0) {
    var_6 = (size_t)(pOVar13->super_Output_section_data_build).super_Output_section_data.
                       super_Output_data.offset_;
    var_8 = *(type_4 **)
               &(pOVar13->super_Output_section_data_build).super_Output_section_data.
                super_Output_data.offset_;
    if (var_4 << 1 < 0) {
      var_5 = (type_1)(pOVar13->super_Output_section_data_build).super_Output_section_data.
                     super_Output_data.data_size_;
      var_7 = var_6;
      if (-1 < (int)var_8) {
        var_7 = var_5 + var_6;
        var_4 = (int)&var_8->name_ + (type_1)(var_7 < var_5);
        var_8 = (type_4 *)(type_1)(*(int *)&of->file_size_ < var_4);
        if (var_8 == (type_4 *)0x0) {
          if (*(int *)&of->file_size_ == var_4) goto LAB_00282ce0;
LAB_00282b34:
          var_19 = of->base_;
          var_7 = 0;
          if (var_9 == 0) {
            return;
          }
          do {
            var_11 = *(type_1 *)(var_10 + 4);
            var_5 = this->local_symbol_count_;
            var_12 = var_11 >> 8;
            if (var_5 <= var_12) {
              of = *(type_4 **)var_10;
              var_15 = var_13;
              if (var_13 == 0xffffffff) {
                var_28 = of;
                var_15 = (**(type_9 **)(var_14 + -0x767c))
                                  (output_section,relinfo->object,relinfo->data_shndx);
                if (var_15 == 0xffffffff) goto LAB_00282cac;
                var_5 = this->local_symbol_count_;
              }
              var_14 = var_23;
              var_12 = var_12 - var_5;
              var_5 = *(type_1 *)(var_10 + 8);
              var_54 = (int *)(*(this->super_Sized_relobj<32,_true>).super_Relobj.super_Object.
                                _vptr_Object[0x1d])(this);
              var_16 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_counts_;
              if (var_16 == (type_1 *)0x0) {
                uVar20 = 0x603;
LAB_00282c84:
                do {
                  (**(type_9 **)(var_14 + -0x7810))
                            (*(int *)(var_14 + -0x7fc4) + 0x4570,uVar20,
                             *(int *)(var_14 + -0x7924) + -0x684);
LAB_00282c9c:
                  uVar20 = 0x604;
                } while( true );
              }
              var_17 = (this->super_Sized_relobj<32,_true>).super_Relobj.reloc_bases_;
              if (var_17 == (type_1 *)0x0) goto LAB_00282c9c;
              if ((type_1)(var_54[1] - *var_54 >> 2) <= var_12) {
                uVar20 = 0x605;
                goto LAB_00282c84;
              }
              var_16 = var_16 + var_12;
              var_18 = *var_16;
              *var_16 = var_18 + 1;
              var_16 = (type_1 *)(var_19 + (var_18 + var_17[var_12]) * 0x10 + var_6);
              *var_16 = var_11 & 0xff;
              var_16[1] = (type_1)var_2;
              var_16[2] = (int)&of->name_ + var_15;
              var_16[3] = var_5;
              var_23 = var_14;
            }
            var_7 = var_7 + 1;
            var_10 = var_10 + 0xc;
            if (var_9 == var_7) {
              return;
            }
          } while( true );
        }
      }
LAB_00282cf0:
      Output_file::var_20(var_8,var_21(var_23,in_stack_ffffffc4),var_7,var_39);
    }
    (**(type_9 **)(var_14 + -0x7810))
              (*(int *)(var_14 + -0x7fc4) + 0x3574,0xcf,*(int *)(var_14 + -0x7924) + -0x500);
  }
  var_4 = 0xe3;
  var_22 = *(type_9 **)(var_14 + -0x7810);
  var_16 = (type_1 *)(*(int *)(var_14 + -0x7924) + -0x4f4);
  var_54 = (int *)(*(int *)(var_14 + -0x7fc4) + 0x3574);
  (*var_22)();
  var_30 = var_22 + 0x246508;
  var_39 = var_28;
  if (*(type_9 **)(*(int *)var_23 + 0x2c) == *(type_9 **)(var_22 + 0x23f464)) {
    var_5 = *(type_1 *)(var_23 + 100);
    var_24 = *(int *)(var_22 + 0x23ebe4);
    var_22 = var_30;
    if (var_5 == 0xffffffff) goto LAB_00283058;
  }
  else {
    var_5 = (**(type_9 **)(*(int *)var_23 + 0x2c))(var_23);
  }
  var_24 = *(int *)(*(int *)(var_4 + 4) + 0x1dc);
  uVar20 = 0x44e;
  if (var_24 == 0) goto LAB_00283024;
  var_8 = *(type_4 **)(var_24 + 0x3c);
  var_22 = var_30;
  if (*(int *)&var_8[1].file_size_ << 2 < 0) {
    var_36 = (type_4 *)var_8[1].o_;
    var_25 = var_8[1].name_;
    if (*(int *)&var_8[1].file_size_ << 1 < 0) {
      var_14 = &var_8->map_is_anonymous_;
      var_26 = var_36;
      if (-1 < (int)var_25) {
        var_26 = (type_4 *)((int)&var_36->name_ + (int)&(*(type_4 **)var_14)->name_)
        ;
        var_8 = *(type_4 **)&var_2->file_size_;
        var_27 = (type_4 *)(var_25 + (var_26 < *(type_4 **)var_14));
        var_25 = (char *)(type_1)((int)var_8 < (int)var_27);
        if (var_25 == (char *)0x0) {
          if (var_8 == var_27) goto LAB_00283070;
LAB_00282e20:
          var_35 = var_2->base_;
          var_8 = (type_4 *)0x0;
          if (var_28 == (type_4 *)0x0) {
            return;
          }
          pOStack_80 = (type_4 *)
                       ((((var_5 >> 0x10) << 0x18 | (var_5 >> 0x18) << 0x10) >> 0x10) +
                       ((var_5 & 0xff) << 8 | var_5 >> 8 & 0xff) * 0x10000);
          do {
            var_11 = var_16[3];
            var_12 = var_16[2];
            var_5 = var_54[0x2e];
            var_11 = (((var_11 >> 0x10) << 0x18 | (var_11 >> 0x18) << 0x10) >> 0x10) +
                     ((var_11 & 0xff) << 8 | var_11 >> 8 & 0xff) * 0x10000;
            var_12 = (((var_12 >> 0x10) << 0x18 | (var_12 >> 0x18) << 0x10) >> 0x10) +
                     ((var_12 & 0xff) << 8 | var_12 >> 8 & 0xff) * 0x10000;
            if (var_5 <= var_11) {
              var_29 = *var_16;
              var_18 = var_16[1];
              var_2 = (type_4 *)
                         ((((var_29 >> 0x10) << 0x18 | (var_29 >> 0x18) << 0x10) >> 0x10) +
                         ((var_29 & 0xff) << 8 | var_29 >> 8 & 0xff) * 0x10000);
              var_24 = (((var_18 >> 0x10) << 0x18 | (var_18 >> 0x18) << 0x10) >> 0x10) +
                       ((var_18 & 0xff) << 8 | var_18 >> 8 & 0xff) * 0x10000;
              if ((var_6 == 0xffffffff) && (var_19 == (type_3 *)0xffffffff)) {
                if (var_24 != (int)var_2 >> 0x1f) goto LAB_0028303c;
                var_39 = var_2;
                var_31 = (type_3 *)(**(type_9 **)(var_30 + -0x767c))
                                            (var_23,*(type_6 *)(var_4 + 8),
                                             *(type_6 *)(var_4 + 0x18));
                var_30 = var_22;
                if (var_31 == (type_3 *)0xffffffff) goto LAB_00283020;
                var_5 = var_54[0x2e];
                var_32 = var_31 + (int)var_2;
                var_18 = (type_1)(var_32 < var_31) + ((int)var_31 >> 0x1f) + var_24;
              }
              else {
                var_32 = var_19 + (int)var_2;
                var_18 = (type_1)(var_32 < var_19) + var_6 + var_24;
                var_30 = var_22;
              }
              var_11 = var_11 - var_5;
              piVar6 = (int *)(**(type_9 **)(*var_54 + 0x74))(var_54);
              if (var_54[0x16] == 0) goto LAB_00283018;
              var_24 = var_54[0x17];
              uVar20 = 0x604;
              if (var_24 == 0) goto LAB_00283000;
              var_33 = var_11 * 4;
              if ((type_1)(piVar6[1] - *piVar6 >> 2) <= var_11) {
                uVar20 = 0x605;
LAB_00283000:
                do {
                  (**(type_9 **)(var_30 + -0x7810))
                            (*(int *)(var_30 + -0x7fc4) + 0x4570,uVar20,
                             *(int *)(var_30 + -0x7924) + -0x684);
LAB_00283018:
                  uVar20 = 0x603;
                } while( true );
              }
              piVar6 = (int *)(var_54[0x16] + var_33);
              var_34 = *piVar6;
              *piVar6 = var_34 + 1;
              var_39 = (type_4 *)0x0;
              piVar6 = (int *)(var_35 + (int)(var_36 + var_34 + *(int *)(var_24 + var_33)));
              piVar6[5] = 0;
              piVar6[4] = 0;
              *piVar6 = (((var_12 >> 0x10) << 0x18 | (var_12 >> 0x18) << 0x10) >> 0x10) +
                        ((var_12 & 0xff) << 8 | var_12 >> 8 & 0xff) * 0x10000;
              piVar6[1] = (int)pOStack_80;
              piVar6[2] = ((((type_1)var_32 >> 0x10) << 0x18 | ((type_1)var_32 >> 0x18) << 0x10) >>
                          0x10) + (((type_1)var_32 & 0xff) << 8 | (type_1)var_32 >> 8 & 0xff) *
                                  0x10000;
              piVar6[3] = (((var_18 >> 0x10) << 0x18 | (var_18 >> 0x18) << 0x10) >> 0x10) +
                          ((var_18 & 0xff) << 8 | var_18 >> 8 & 0xff) * 0x10000;
              var_22 = var_30;
            }
            var_8 = (type_4 *)((int)&var_8->name_ + 1);
            var_16 = var_16 + 4;
            if (var_28 == var_8) {
              return;
            }
          } while( true );
        }
      }
LAB_00283080:
      Output_file::var_20
                (var_8,var_21(var_22,in_stack_ffffff74),(size_t)var_25,var_26);
    }
    (**(type_9 **)(var_30 + -0x7810))
              (*(int *)(var_30 + -0x7fc4) + 0x3574,0xcf,*(int *)(var_30 + -0x7924) + -0x500);
  }
  var_4 = 0xe3;
  var_37 = *(type_9 **)(var_30 + -0x7810);
  var_16 = (type_1 *)(*(int *)(var_30 + -0x7924) + -0x4f4);
  var_54 = (int *)(*(int *)(var_30 + -0x7fc4) + 0x3574);
  (*var_37)();
  var_30 = var_37 + 0x246178;
  var_28 = var_39;
  if (*(type_9 **)(*(int *)var_22 + 0x2c) == *(type_9 **)(var_37 + 0x23f0d4)) {
    var_5 = *(type_1 *)(var_22 + 100);
    var_24 = *(int *)(var_37 + 0x23e854);
    var_37 = var_30;
    if (var_5 == 0xffffffff) goto LAB_002833f8;
  }
  else {
    var_5 = (**(type_9 **)(*(int *)var_22 + 0x2c))(var_22);
  }
  var_24 = *(int *)(*(int *)(var_4 + 4) + 0x1dc);
  uVar20 = 0x44e;
  if (var_24 == 0) goto LAB_002833c4;
  var_8 = *(type_4 **)(var_24 + 0x3c);
  var_24 = *(int *)(var_30 + -0x7924);
  var_37 = var_30;
  if (*(int *)&var_8[1].file_size_ << 2 < 0) {
    var_38 = var_8[1].o_;
    var_26 = (type_4 *)var_8[1].name_;
    if (*(int *)&var_8[1].file_size_ << 1 < 0) {
      var_27 = *(type_4 **)&var_8->map_is_anonymous_;
      if (-1 < (int)var_26) {
        var_8 = *(type_4 **)&pOStack_80->file_size_;
        var_28 = (type_4 *)((int)&var_27->name_ + var_38);
        var_27 = (type_4 *)((int)&var_26->name_ + (type_1)(var_28 < var_27));
        var_26 = (type_4 *)(type_1)((int)var_8 < (int)var_27);
        if (var_26 == (type_4 *)0x0) {
          if (var_8 == var_27) goto LAB_00283410;
LAB_002831b0:
          var_32 = pOStack_80->base_;
          var_8 = (type_4 *)0x0;
          if (var_39 == (type_4 *)0x0) {
            return;
          }
          do {
            var_12 = var_16[3];
            var_11 = var_16[2];
            var_18 = var_54[0x2e];
            var_12 = (((var_12 >> 0x10) << 0x18 | (var_12 >> 0x18) << 0x10) >> 0x10) +
                     ((var_12 & 0xff) << 8 | var_12 >> 8 & 0xff) * 0x10000;
            var_11 = (((var_11 >> 0x10) << 0x18 | (var_11 >> 0x18) << 0x10) >> 0x10) +
                     ((var_11 & 0xff) << 8 | var_11 >> 8 & 0xff) * 0x10000;
            if (var_18 <= var_12) {
              var_40 = *var_16;
              var_29 = var_16[1];
              pOStack_80 = (type_4 *)
                           ((((var_40 >> 0x10) << 0x18 | (var_40 >> 0x18) << 0x10) >> 0x10) +
                           ((var_40 & 0xff) << 8 | var_40 >> 8 & 0xff) * 0x10000);
              var_24 = (((var_29 >> 0x10) << 0x18 | (var_29 >> 0x18) << 0x10) >> 0x10) +
                       ((var_29 & 0xff) << 8 | var_29 >> 8 & 0xff) * 0x10000;
              if ((var_36 == (type_4 *)0xffffffff) && (var_35 == (type_3 *)0xffffffff))
              {
                if (var_24 != (int)pOStack_80 >> 0x1f) goto LAB_002833dc;
                var_28 = pOStack_80;
                var_41 = (type_3 *)(**(type_9 **)(var_30 + -0x767c))
                                            (var_22,*(type_6 *)(var_4 + 8),
                                             *(type_6 *)(var_4 + 0x18));
                var_30 = var_37;
                if (var_41 == (type_3 *)0xffffffff) goto LAB_002833c0;
                var_18 = var_54[0x2e];
                var_31 = var_41 + (int)pOStack_80;
                var_29 = (type_1)(var_31 < var_41) + ((int)var_41 >> 0x1f) + var_24;
              }
              else {
                var_31 = var_35 + (int)pOStack_80;
                var_29 = (int)var_36 + (type_1)(var_31 < var_35) + var_24;
                var_30 = var_37;
              }
              var_28 = (type_4 *)var_16[5];
              var_12 = var_12 - var_18;
              var_44 = var_16[4];
              piVar6 = (int *)(**(type_9 **)(*var_54 + 0x74))(var_54);
              if (var_54[0x16] == 0) goto LAB_002833b8;
              var_24 = var_54[0x17];
              uVar20 = 0x604;
              if (var_24 == 0) goto LAB_002833a0;
              if ((type_1)(piVar6[1] - *piVar6 >> 2) <= var_12) {
                uVar20 = 0x605;
LAB_002833a0:
                do {
                  (**(type_9 **)(var_30 + -0x7810))
                            (*(int *)(var_30 + -0x7fc4) + 0x4570,uVar20,
                             *(int *)(var_30 + -0x7924) + -0x684);
LAB_002833b8:
                  uVar20 = 0x603;
                } while( true );
              }
              var_34 = var_12 * 4;
              piVar6 = (int *)(var_54[0x16] + var_34);
              var_33 = *piVar6;
              *piVar6 = var_33 + 1;
              piVar6 = (int *)(var_32 + (var_33 + *(int *)(var_24 + var_34)) * 0x18 + var_38);
              *piVar6 = (((var_11 >> 0x10) << 0x18 | (var_11 >> 0x18) << 0x10) >> 0x10) +
                        ((var_11 & 0xff) << 8 | var_11 >> 8 & 0xff) * 0x10000;
              piVar6[1] = (((var_5 >> 0x10) << 0x18 | (var_5 >> 0x18) << 0x10) >> 0x10) +
                          ((var_5 & 0xff) << 8 | var_5 >> 8 & 0xff) * 0x10000;
              piVar6[2] = ((((type_1)var_31 >> 0x10) << 0x18 | ((type_1)var_31 >> 0x18) << 0x10) >> 0x10
                          ) + (((type_1)var_31 & 0xff) << 8 | (type_1)var_31 >> 8 & 0xff) * 0x10000;
              piVar6[3] = (((var_29 >> 0x10) << 0x18 | (var_29 >> 0x18) << 0x10) >> 0x10) +
                          ((var_29 & 0xff) << 8 | var_29 >> 8 & 0xff) * 0x10000;
              piVar6[5] = (int)var_28;
              piVar6[4] = var_44;
              var_37 = var_30;
              var_45 = var_28;
            }
            var_8 = (type_4 *)((int)&var_8->name_ + 1);
            var_16 = var_16 + 6;
            if (var_39 == var_8) {
              return;
            }
          } while( true );
        }
      }
LAB_00283420:
      Output_file::var_20
                (var_27,var_21(var_37,in_stack_ffffff1c),(size_t)var_8,var_26);
    }
    var_24 = *(int *)(var_30 + -0x7924) + -0x500;
    (**(type_9 **)(var_30 + -0x7810))(*(int *)(var_30 + -0x7fc4) + 0x3574,0xcf);
  }
  var_4 = 0xe3;
  var_22 = *(type_9 **)(var_30 + -0x7810);
  var_8 = (type_4 *)(var_24 + -0x4f4);
  var_54 = (int *)(*(int *)(var_30 + -0x7fc4) + 0x3574);
  (*var_22)();
  var_30 = var_22 + 0x245ddc;
  var_39 = var_28;
  if (*(type_9 **)(*(int *)var_37 + 0x2c) == *(type_9 **)(var_22 + 0x23ed38)) {
    var_42 = *(int *)(var_37 + 100);
    var_26 = *(type_4 **)(var_22 + 0x23e4b8);
    var_22 = var_30;
    if (var_42 == -1) goto LAB_00283750;
  }
  else {
    var_26 = var_8;
    var_42 = (**(type_9 **)(*(int *)var_37 + 0x2c))(var_37);
  }
  var_24 = *(int *)(*(int *)(var_4 + 4) + 0x1dc);
  uVar20 = 0x44e;
  if (var_24 == 0) goto LAB_0028371c;
  var_24 = *(int *)(var_24 + 0x3c);
  var_22 = var_30;
  if (*(int *)(var_24 + 0x20) << 2 < 0) {
    var_43 = *(size_t *)(var_24 + 0x1c);
    var_27 = *(type_4 **)(var_24 + 0x18);
    if (*(int *)(var_24 + 0x20) << 1 < 0) {
      var_7 = var_43;
      if (-1 < (int)var_27) {
        var_7 = *(type_1 *)(var_24 + 0x14) + var_43;
        var_24 = (int)&var_27->name_ + (type_1)(var_7 < *(type_1 *)(var_24 + 0x14));
        var_27 = (type_4 *)(type_1)(*(int *)(var_38 + 8) < var_24);
        if (var_27 == (type_4 *)0x0) {
          if (*(int *)(var_38 + 8) == var_24) goto LAB_00283768;
LAB_00283554:
          var_49 = *(type_1 *)(var_38 + 0x10);
          var_26 = (type_4 *)0x0;
          if (var_28 == (type_4 *)0x0) {
            return;
          }
          do {
            var_27 = *(type_4 **)&var_8->file_size_;
            var_39 = (type_4 *)var_54[0x2e];
            var_38 = (int)var_8->file_size_;
            if (var_39 <= var_27) {
              var_25 = var_8->name_;
              var_47 = (type_4 *)var_8->o_;
              if ((var_44 == 0xffffffff) && (var_45 == (type_4 *)0xffffffff)) {
                if (var_25 != (char *)((int)var_47 >> 0x1f)) goto LAB_00283734;
                var_39 = var_47;
                var_46 = (type_4 *)
                          (**(type_9 **)(var_30 + -0x767c))
                                    (var_37,*(type_6 *)(var_4 + 8),
                                     *(type_6 *)(var_4 + 0x18));
                var_30 = var_22;
                if (var_46 == (type_4 *)0xffffffff) goto LAB_00283718;
                var_39 = (type_4 *)var_54[0x2e];
                var_47 = (type_4 *)((int)&var_47->name_ + (int)&var_46->name_);
                var_24 = (type_1)(var_47 < var_46) + ((int)var_46 >> 0x1f);
              }
              else {
                var_47 = (type_4 *)((int)&var_47->name_ + (int)&var_45->name_);
                var_24 = (var_47 < var_45) + var_44;
                var_30 = var_22;
              }
              var_5 = (int)var_27 - (int)var_39;
              piVar6 = (int *)(**(type_9 **)(*var_54 + 0x74))(var_54);
              if (var_54[0x16] == 0) goto LAB_00283710;
              var_33 = var_54[0x17];
              uVar20 = 0x604;
              if (var_33 == 0) goto LAB_002836f8;
              var_34 = var_5 * 4;
              if ((type_1)(piVar6[1] - *piVar6 >> 2) <= var_5) {
                uVar20 = 0x605;
LAB_002836f8:
                do {
                  (**(type_9 **)(var_30 + -0x7810))
                            (*(int *)(var_30 + -0x7fc4) + 0x4570,uVar20,
                             *(int *)(var_30 + -0x7924) + -0x684);
LAB_00283710:
                  uVar20 = 0x603;
                } while( true );
              }
              piVar6 = (int *)(var_54[0x16] + var_34);
              var_48 = *piVar6;
              *piVar6 = var_48 + 1;
              piVar6 = (int *)(var_49 + (var_48 + *(int *)(var_33 + var_34)) * 0x18 + var_43)
              ;
              piVar6[5] = 0;
              piVar6[4] = 0;
              *piVar6 = var_38;
              piVar6[1] = var_42;
              piVar6[2] = (int)(var_25 + var_24);
              piVar6[3] = (int)var_47;
              var_22 = var_30;
            }
            var_26 = (type_4 *)((int)&var_26->name_ + 1);
            var_8 = (type_4 *)&var_8->base_;
            if (var_28 == var_26) {
              return;
            }
          } while( true );
        }
      }
LAB_00283778:
      Output_file::var_20(var_27,var_21(var_22,in_stack_fffffecc),var_7,var_26);
    }
    (**(type_9 **)(var_30 + -0x7810))
              (*(int *)(var_30 + -0x7fc4) + 0x3574,0xcf,*(int *)(var_30 + -0x7924) + -0x500);
  }
  var_4 = 0xe3;
  var_37 = *(type_9 **)(var_30 + -0x7810);
  var_28 = (type_4 *)(*(int *)(var_30 + -0x7924) + -0x4f4);
  var_54 = (int *)(*(int *)(var_30 + -0x7fc4) + 0x3574);
  (*var_37)();
  var_30 = var_37 + 0x245a80;
  if (*(type_9 **)(*(int *)var_22 + 0x2c) == *(type_9 **)(var_37 + 0x23e9dc)) {
    var_50 = *(int *)(var_22 + 100);
    var_8 = *(type_4 **)(var_37 + 0x23e15c);
    var_37 = var_30;
    if (var_50 == -1) goto LAB_00283ab8;
  }
  else {
    var_8 = var_28;
    var_50 = (**(type_9 **)(*(int *)var_22 + 0x2c))(var_22);
  }
  var_24 = *(int *)(*(int *)(var_4 + 4) + 0x1dc);
  uVar20 = 0x44e;
  if (var_24 == 0) goto LAB_00283a84;
  var_26 = *(type_4 **)(var_24 + 0x3c);
  if (*(int *)&var_26[1].file_size_ << 2 < 0) {
    var_51 = var_26[1].o_;
    var_25 = var_26[1].name_;
    if (*(int *)&var_26[1].file_size_ << 1 < 0) {
      var_23 = &var_26->map_is_anonymous_;
      var_37 = var_30;
      if (-1 < (int)var_25) {
        var_26 = *(type_4 **)(var_42 + 8);
        var_8 = (type_4 *)((int)&(*(type_4 **)var_23)->name_ + var_51);
        var_27 = (type_4 *)(var_25 + (var_8 < *(type_4 **)var_23));
        var_25 = (char *)(type_1)((int)var_26 < (int)var_27);
        if (var_25 == (char *)0x0) {
          if (var_26 == var_27) goto LAB_00283ad0;
LAB_002838ac:
          var_24 = *(int *)(var_42 + 0x10);
          var_8 = (type_4 *)0x0;
          if (var_39 == (type_4 *)0x0) {
            return;
          }
          do {
            var_12 = *(type_1 *)&var_28->file_size_;
            var_5 = var_54[0x2e];
            var_42 = (int)var_28->file_size_;
            if (var_5 <= var_12) {
              var_25 = var_28->name_;
              var_33 = var_28->o_;
              if ((var_43 == 0xffffffff) && (var_49 == 0xffffffff)) {
                if (var_25 != (char *)(var_33 >> 0x1f)) goto LAB_00283a9c;
                var_18 = (**(type_9 **)(var_30 + -0x767c))
                                  (var_22,*(type_6 *)(var_4 + 8),*(type_6 *)(var_4 + 0x18),
                                   var_33);
                var_30 = var_37;
                if (var_18 == 0xffffffff) goto LAB_00283a80;
                var_5 = var_54[0x2e];
                var_11 = var_18 + var_33;
                var_33 = (type_1)(var_11 < var_18) + ((int)var_18 >> 0x1f);
              }
              else {
                var_11 = var_49 + var_33;
                var_33 = (var_11 < var_49) + var_43;
                var_30 = var_37;
              }
              var_34 = *(int *)&var_28->map_is_anonymous_;
              var_12 = var_12 - var_5;
              var_32 = var_28->base_;
              piVar6 = (int *)(**(type_9 **)(*var_54 + 0x74))(var_54);
              if (var_54[0x16] == 0) goto LAB_00283a78;
              var_48 = var_54[0x17];
              uVar20 = 0x604;
              if (var_48 == 0) goto LAB_00283a60;
              if ((type_1)(piVar6[1] - *piVar6 >> 2) <= var_12) {
                uVar20 = 0x605;
LAB_00283a60:
                do {
                  (**(type_9 **)(var_30 + -0x7810))
                            (*(int *)(var_30 + -0x7fc4) + 0x4570,uVar20,
                             *(int *)(var_30 + -0x7924) + -0x684);
LAB_00283a78:
                  uVar20 = 0x603;
                } while( true );
              }
              var_52 = var_12 * 4;
              piVar6 = (int *)(var_54[0x16] + var_52);
              var_53 = *piVar6;
              *piVar6 = var_53 + 1;
              piVar6 = (int *)(var_24 + (var_53 + *(int *)(var_48 + var_52)) * 0x18 + var_51);
              *piVar6 = var_42;
              piVar6[1] = var_50;
              piVar6[2] = (int)(var_25 + var_33);
              piVar6[3] = var_11;
              piVar6[5] = var_34;
              piVar6[4] = (int)var_32;
              var_37 = var_30;
            }
            var_8 = (type_4 *)((int)&var_8->name_ + 1);
            var_28 = var_28 + 1;
            if (var_39 == var_8) {
              return;
            }
          } while( true );
        }
      }
LAB_00283ae0:
      Output_file::var_20
                (var_26,var_21(var_37,in_stack_fffffe74),(size_t)var_25,var_8);
    }
    (**(type_9 **)(var_30 + -0x7810))
              (*(int *)(var_30 + -0x7fc4) + 0x3574,0xcf,*(int *)(var_30 + -0x7924) + -0x500);
  }
  var_22 = *(type_9 **)(var_30 + -0x7810);
  puVar19 = (type_6 *)(*(int *)(var_30 + -0x7fc4) + 0x3574);
  (*var_22)(puVar19,0xe3,*(int *)(var_30 + -0x7924) + -0x4f4);
  var_54 = (int *)puVar19[2];
  while (var_54 != (int *)0x0) {
    var_54 = (int *)*var_54;
    (**(type_9 **)(var_22 + 0x23d7d4))();
  }
  (**(type_9 **)(var_22 + 0x242140))(*puVar19,0,puVar19[1] << 2);
  puVar19[3] = 0;
  puVar19[2] = 0;
  return;
LAB_00282cac:
  uVar20 = 0x46d;
  var_14 = var_23;
LAB_00282cb0:
  var_55 = (type_7 *)(*(int *)(var_14 + -0x7924) + -0x7a4);
  var_23 = var_14;
  (**(type_9 **)(var_14 + -0x7810))(*(int *)(var_14 + -0x7924) + -0xe14,uVar20);
LAB_00282cc8:
  var_7 = 0x1043;
  var_39 = (type_4 *)(var_55 + -0x664);
  var_8 = (type_4 *)(*(int *)(var_14 + -0x7fc4) + 0x3574);
  (**(type_9 **)(var_14 + -0x7810))();
LAB_00282ce0:
  var_7 = (size_t)((type_1)of->file_size_ < var_7);
  if (var_7 != 0) goto LAB_00282cf0;
  goto LAB_00282b34;
LAB_00283020:
  uVar20 = 0x46d;
LAB_00283024:
  var_22 = var_30;
  (**(type_9 **)(var_30 + -0x7810))
            (*(int *)(var_30 + -0x7924) + -0xe14,uVar20,*(int *)(var_30 + -0x7924) + -0x87c);
LAB_0028303c:
  var_24 = *(int *)(var_30 + -0x7924) + -0x88c;
  (**(type_9 **)(var_30 + -0x7810))(*(int *)(var_30 + -0x7fc4) + 0x4584,0xc0);
LAB_00283058:
  var_25 = (char *)0x1043;
  var_26 = (type_4 *)(var_24 - 0x664);
  var_8 = (type_4 *)(*(int *)(var_30 + -0x7fc4) + 0x3574);
  var_5 = (**(type_9 **)(var_30 + -0x7810))();
LAB_00283070:
  var_26 = (type_4 *)(type_1)(*(type_4 **)((int)&var_2->file_size_ + 4) < var_26);
  if (var_26 != (type_4 *)0x0) goto LAB_00283080;
  goto LAB_00282e20;
LAB_002833c0:
  uVar20 = 0x46d;
LAB_002833c4:
  var_37 = var_30;
  (**(type_9 **)(var_30 + -0x7810))
            (*(int *)(var_30 + -0x7924) + -0xe14,uVar20,*(int *)(var_30 + -0x7924) + -0x8b0);
LAB_002833dc:
  var_24 = *(int *)(var_30 + -0x7924) + -0x88c;
  (**(type_9 **)(var_30 + -0x7810))(*(int *)(var_30 + -0x7fc4) + 0x4584,0xc0);
LAB_002833f8:
  var_8 = (type_4 *)0x1043;
  var_26 = (type_4 *)(var_24 - 0x664);
  var_5 = (**(type_9 **)(var_30 + -0x7810))(*(int *)(var_30 + -0x7fc4) + 0x3574);
LAB_00283410:
  var_27 = *(type_4 **)((int)&pOStack_80->file_size_ + 4);
  var_28 = (type_4 *)(type_1)(var_27 < var_28);
  if (var_28 != (type_4 *)0x0) goto LAB_00283420;
  goto LAB_002831b0;
LAB_00283718:
  uVar20 = 0x46d;
LAB_0028371c:
  var_22 = var_30;
  (**(type_9 **)(var_30 + -0x7810))
            (*(int *)(var_30 + -0x7924) + -0xe14,uVar20,*(int *)(var_30 + -0x7924) + -0x988);
LAB_00283734:
  var_26 = (type_4 *)(*(int *)(var_30 + -0x7924) + -0x88c);
  (**(type_9 **)(var_30 + -0x7810))(*(int *)(var_30 + -0x7fc4) + 0x4584,0xc0);
LAB_00283750:
  var_7 = 0x1043;
  var_26 = (type_4 *)&var_26[-0x45].map_is_anonymous_;
  var_27 = (type_4 *)(*(int *)(var_30 + -0x7fc4) + 0x3574);
  (**(type_9 **)(var_30 + -0x7810))();
LAB_00283768:
  var_7 = (size_t)(*(type_1 *)(var_38 + 0xc) < var_7);
  if (var_7 != 0) goto LAB_00283778;
  goto LAB_00283554;
LAB_00283a80:
  uVar20 = 0x46d;
LAB_00283a84:
  var_37 = var_30;
  (**(type_9 **)(var_30 + -0x7810))
            (*(int *)(var_30 + -0x7924) + -0xe14,uVar20,*(int *)(var_30 + -0x7924) + -0x9ac);
LAB_00283a9c:
  var_8 = (type_4 *)(*(int *)(var_30 + -0x7924) + -0x88c);
  (**(type_9 **)(var_30 + -0x7810))(*(int *)(var_30 + -0x7fc4) + 0x4584,0xc0);
LAB_00283ab8:
  var_25 = (char *)0x1043;
  var_8 = (type_4 *)&var_8[-0x45].map_is_anonymous_;
  var_26 = (type_4 *)(*(int *)(var_30 + -0x7fc4) + 0x3574);
  (**(type_9 **)(var_30 + -0x7810))();
LAB_00283ad0:
  var_8 = (type_4 *)(type_1)(*(type_4 **)(var_42 + 0xc) < var_8);
  if (var_8 != (type_4 *)0x0) goto LAB_00283ae0;
  goto LAB_002838ac;
}


(translation_unit (declaration type: (primitive_type) declarator: (ms_call_modifier) (ERROR (identifier)) declarator: (identifier) (ERROR (number_literal)) (ERROR (identifier) (function_declarator declarator: (identifier) (ERROR (number_literal)) parameters: (parameter_list (parameter_declaration type: (type_identifier)) (ERROR (number_literal)) (parameter_declaration type: (type_identifier) (ERROR) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) (primitive_type)) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_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: (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 (labeled_statement label: (statement_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 (binary_expression left: (identifier) right: (number_literal)) (identifier) (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)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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))))))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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)))))))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (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) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_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 (binary_expression left: (identifier) right: (number_literal)) (identifier) (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier))) right: (number_literal)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) 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: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (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: (identifier))))))) right: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (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) (ERROR))

/* void gold::Sized_relobj_file<32,
   true>::MASKED(gold::Relocate_info<32, true> const*, unsigned char
   const*, unsigned int, gold::Output_section*, unsigned int, gold::Output_file*) */

void __thiscall
gold::Sized_relobj_file<32,true>::MASKED
          (Sized_relobj_file<32,true> *this,Relocate_info *param_1,uchar *param_2,uint param_3,
          Output_section *param_4,uint param_5,Output_file *param_6)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  uint *puVar4;
  uint uVar5;
  int iVar6;
  uint uVar7;
  undefined4 uVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  int iVar12;
  uint uVar13;
  uint uVar14;
  uint local_30;
  
  if (*(code **)(*(int *)param_4 + 0x2c) == (code *)PTR_do_out_shndx_004c219c) {
    local_30 = *(uint *)(param_4 + 100);
    if (local_30 == 0xffffffff) {
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x1043,
                 PTR_s_in_a_linker_script_004c191c + -0x664);
      return;
    }
  }
  else {
    local_30 = (**(code **)(*(int *)param_4 + 0x2c))(param_4);
  }
  uVar8 = 0x44e;
  if (*(int *)(*(int *)(param_1 + 4) + 0x1dc) == 0) {
LAB_00282cb0:
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_in_a_linker_script_004c191c + -0xe14,uVar8,
               PTR_s_in_a_linker_script_004c191c + -0x7a4);
    return;
  }
  iVar6 = *(int *)(*(int *)(*(int *)(param_1 + 4) + 0x1dc) + 0x3c);
  if (-1 < *(int *)(iVar6 + 0x20) << 2) {
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,
               PTR_s_in_a_linker_script_004c191c + -0x4f4);
    return;
  }
  iVar9 = *(int *)(iVar6 + 0x1c);
  if (*(int *)(iVar6 + 0x20) << 1 < 0) {
    if (-1 < *(int *)(iVar6 + 0x18)) {
      uVar10 = *(uint *)(iVar6 + 0x14) + iVar9;
      iVar6 = (uint)(uVar10 < *(uint *)(iVar6 + 0x14)) + *(int *)(iVar6 + 0x18);
      if ((iVar6 <= *(int *)(param_6 + 8)) &&
         ((*(int *)(param_6 + 8) != iVar6 || (uVar10 <= *(uint *)(param_6 + 0xc))))) {
        iVar6 = *(int *)(param_6 + 0x10);
        uVar10 = 0;
        if (param_3 != 0) {
          do {
            uVar14 = *(uint *)((int)param_2 + 4);
            uVar7 = *(uint *)(this + 0xb8);
            uVar13 = uVar14 >> 8;
            if (uVar7 <= uVar13) {
              iVar12 = *(int *)param_2;
              uVar5 = param_5;
              if (param_5 == 0xffffffff) {
                uVar5 = (*(code *)PTR_output_offset_004c1bc4)
                                  (param_4,*(undefined4 *)(param_1 + 8),
                                   *(undefined4 *)(param_1 + 0x18),iVar12);
                if (uVar5 == 0xffffffff) {
                  uVar8 = 0x46d;
                  goto LAB_00282cb0;
                }
                uVar7 = *(uint *)(this + 0xb8);
              }
              uVar13 = uVar13 - uVar7;
              uVar7 = *(uint *)((int)param_2 + 8);
              piVar1 = (int *)(**(code **)(*(int *)this + 0x74))(this);
              if (*(int *)(this + 0x58) == 0) {
                uVar8 = 0x603;
LAB_00282c84:
                (*(code *)PTR_do_gold_unreachable_004c1a30)
                          (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,uVar8,
                           PTR_s_in_a_linker_script_004c191c + -0x684);
                return;
              }
              iVar11 = *(int *)(this + 0x5c);
              if (iVar11 == 0) {
                uVar8 = 0x604;
                goto LAB_00282c84;
              }
              iVar2 = uVar13 * 4;
              if ((uint)(piVar1[1] - *piVar1 >> 2) <= uVar13) {
                uVar8 = 0x605;
                goto LAB_00282c84;
              }
              piVar1 = (int *)(*(int *)(this + 0x58) + iVar2);
              iVar3 = *piVar1;
              *piVar1 = iVar3 + 1;
              puVar4 = (uint *)(iVar6 + (iVar3 + *(int *)(iVar11 + iVar2)) * 0x10 + iVar9);
              *puVar4 = uVar14 & 0xff;
              puVar4[1] = local_30;
              puVar4[2] = uVar5 + iVar12;
              puVar4[3] = uVar7;
            }
            uVar10 = uVar10 + 1;
            param_2 = (uchar *)((int)param_2 + 0xc);
          } while (param_3 != uVar10);
        }
        return;
      }
    }
    FUN_0027c51c();
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,
             PTR_s_in_a_linker_script_004c191c + -0x500);
  return;
}

