
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* DWARF original prototype: void add_relative(Output_data_reloc<4,_true,_64,_true> * this, uint
   type, Output_data * od, Sized_relobj<64,_true> * relobj, uint shndx, Address address, Addend
   addend) */

void __thiscall
gold::Output_data_reloc<4,_true,_64,_true>::add_relative
          (Output_data_reloc<4,_true,_64,_true> *this,uint type,Output_data *od,
          Sized_relobj<64,_true> *relobj,uint shndx,Address address,Addend addend)

{
  undefined4 *puVar1;
  pointer pOVar2;
  pointer pOVar3;
  undefined4 *puVar4;
  int *piVar5;
  anon_union_4_4_c82d8563_for_u1_ aVar6;
  undefined4 uVar7;
  int *piVar8;
  anon_union_4_4_c82d8563_for_u1_ *paVar9;
  anon_union_4_4_c82d8563_for_u1_ *paVar10;
  undefined *puVar11;
  undefined4 *puVar12;
  undefined **ppuVar13;
  undefined **ppuVar14;
  code **ppcVar15;
  code **ppcVar16;
  undefined4 *puVar17;
  int *piVar18;
  int *piVar19;
  pointer pOVar20;
  int iVar21;
  undefined4 *puVar22;
  int iVar23;
  int iVar24;
  int iVar25;
  uint uVar26;
  anon_union_4_4_c82d8563_for_u1_ aVar27;
  undefined4 uVar28;
  undefined *puVar29;
  code *pcVar30;
  code *pcVar31;
  uint uVar32;
  Sized_relobj<64,_true> *pSVar33;
  undefined *puVar34;
  undefined4 uVar35;
  int *piVar36;
  code *pcVar37;
  code *pcVar38;
  uint uVar39;
  undefined4 uStack_728;
  int iStack_724;
  int iStack_714;
  int iStack_710;
  undefined4 uStack_708;
  undefined4 uStack_704;
  undefined4 *puStack_700;
  int iStack_6fc;
  int iStack_6f8;
  code *pcStack_6f4;
  int iStack_6e0;
  undefined4 uStack_6d8;
  undefined4 uStack_6d4;
  undefined4 uStack_6d0;
  undefined4 uStack_6cc;
  undefined4 uStack_6c8;
  undefined4 uStack_6c4;
  code *pcStack_6c0;
  undefined4 uStack_6b8;
  int iStack_6b4;
  int iStack_6a4;
  int iStack_6a0;
  undefined4 uStack_698;
  undefined4 uStack_694;
  undefined4 *puStack_690;
  int iStack_68c;
  int iStack_688;
  code *pcStack_684;
  int iStack_670;
  undefined4 uStack_668;
  undefined4 uStack_664;
  undefined4 uStack_660;
  undefined4 uStack_65c;
  undefined4 uStack_658;
  undefined4 uStack_654;
  code *pcStack_650;
  undefined4 uStack_648;
  int iStack_644;
  int iStack_634;
  int iStack_630;
  undefined4 uStack_628;
  undefined4 uStack_624;
  undefined4 *puStack_620;
  int iStack_61c;
  int iStack_618;
  code *pcStack_614;
  int iStack_600;
  undefined4 uStack_5f8;
  undefined4 uStack_5f4;
  undefined4 uStack_5f0;
  undefined4 uStack_5ec;
  undefined4 uStack_5e8;
  undefined4 uStack_5e4;
  code *pcStack_5e0;
  undefined4 uStack_5d8;
  int iStack_5d4;
  int iStack_5c4;
  int iStack_5c0;
  undefined4 uStack_5b8;
  undefined4 uStack_5b4;
  undefined4 *puStack_5b0;
  int iStack_5ac;
  int iStack_5a8;
  code *pcStack_5a4;
  int iStack_590;
  int iStack_58c;
  undefined4 uStack_588;
  undefined4 uStack_584;
  undefined4 uStack_580;
  undefined4 uStack_57c;
  uint uStack_578;
  code *pcStack_570;
  undefined4 uStack_568;
  int iStack_564;
  int iStack_554;
  int iStack_550;
  undefined4 uStack_548;
  undefined4 uStack_544;
  undefined4 *puStack_540;
  int iStack_53c;
  int iStack_538;
  code *pcStack_534;
  undefined4 uStack_520;
  int iStack_51c;
  undefined4 uStack_518;
  undefined4 uStack_514;
  undefined4 uStack_510;
  undefined4 uStack_50c;
  uint uStack_508;
  code *pcStack_500;
  undefined4 uStack_4f8;
  int iStack_4f4;
  int iStack_4e4;
  int iStack_4e0;
  undefined4 uStack_4d8;
  int iStack_4d4;
  undefined4 *puStack_4d0;
  int iStack_4cc;
  int iStack_4c8;
  code *pcStack_4c4;
  undefined4 uStack_4b0;
  undefined4 uStack_4ac;
  undefined4 uStack_4a8;
  undefined4 uStack_4a4;
  undefined4 uStack_4a0;
  int iStack_49c;
  undefined4 uStack_498;
  code *pcStack_490;
  undefined4 uStack_488;
  int iStack_484;
  int iStack_474;
  int iStack_470;
  undefined4 uStack_468;
  int iStack_464;
  undefined4 *puStack_460;
  int iStack_45c;
  int iStack_458;
  code *pcStack_454;
  undefined4 uStack_440;
  undefined4 uStack_43c;
  undefined4 uStack_438;
  undefined4 uStack_434;
  undefined4 uStack_430;
  int iStack_42c;
  code *pcStack_428;
  undefined4 uStack_420;
  int iStack_41c;
  int iStack_40c;
  int iStack_408;
  undefined4 uStack_400;
  int iStack_3fc;
  undefined4 *puStack_3f8;
  int iStack_3f4;
  int iStack_3f0;
  code *pcStack_3ec;
  undefined4 uStack_3d8;
  undefined4 uStack_3d4;
  undefined4 uStack_3d0;
  int iStack_3cc;
  uint uStack_3c8;
  code *pcStack_3c0;
  undefined4 uStack_3b8;
  int iStack_3b4;
  int iStack_3a4;
  int iStack_3a0;
  undefined4 uStack_398;
  int iStack_394;
  undefined4 *puStack_390;
  int iStack_38c;
  int iStack_388;
  code *pcStack_384;
  undefined4 uStack_370;
  undefined4 uStack_36c;
  undefined4 uStack_368;
  int iStack_364;
  uint uStack_360;
  code *pcStack_358;
  undefined4 uStack_350;
  int iStack_34c;
  int iStack_33c;
  int iStack_338;
  undefined4 uStack_330;
  int iStack_32c;
  undefined4 *puStack_328;
  int iStack_324;
  int iStack_320;
  code *pcStack_31c;
  undefined4 uStack_308;
  undefined4 uStack_304;
  undefined4 uStack_300;
  int iStack_2fc;
  undefined4 uStack_2f8;
  code *pcStack_2f0;
  undefined4 uStack_2e8;
  int iStack_2e4;
  int iStack_2d4;
  int iStack_2d0;
  undefined4 uStack_2c8;
  int iStack_2c4;
  undefined4 *puStack_2c0;
  int iStack_2bc;
  code *pcStack_2b8;
  code *pcStack_2b4;
  undefined4 uStack_2a0;
  undefined4 uStack_29c;
  undefined4 uStack_298;
  int iStack_294;
  undefined4 uStack_290;
  int iStack_28c;
  code *pcStack_288;
  undefined4 uStack_280;
  int iStack_27c;
  int iStack_26c;
  int iStack_268;
  undefined4 uStack_260;
  int iStack_25c;
  code **ppcStack_258;
  int iStack_254;
  code *pcStack_250;
  code *pcStack_24c;
  undefined4 uStack_238;
  undefined4 uStack_234;
  undefined4 uStack_230;
  int iStack_22c;
  undefined4 uStack_228;
  int iStack_224;
  code *pcStack_220;
  code *pcStack_218;
  int iStack_214;
  int iStack_204;
  int iStack_200;
  code *pcStack_1f8;
  code *pcStack_1f4;
  code **ppcStack_1f0;
  int iStack_1ec;
  int iStack_1e8;
  code *pcStack_1e4;
  undefined4 uStack_1d0;
  undefined4 uStack_1cc;
  undefined4 uStack_1c8;
  int iStack_1c4;
  code *pcStack_1c0;
  code *pcStack_1bc;
  code *pcStack_1b8;
  int iStack_1b4;
  int iStack_1a4;
  int iStack_1a0;
  code *pcStack_198;
  code *pcStack_194;
  undefined4 *puStack_190;
  int iStack_18c;
  undefined *puStack_188;
  code *pcStack_184;
  undefined4 uStack_170;
  undefined4 uStack_16c;
  undefined4 uStack_168;
  undefined4 uStack_164;
  code *pcStack_160;
  code *pcStack_15c;
  undefined4 uStack_158;
  int iStack_154;
  int iStack_144;
  int iStack_140;
  undefined4 uStack_138;
  undefined4 uStack_134;
  undefined **ppuStack_130;
  int iStack_12c;
  int iStack_128;
  code *pcStack_124;
  undefined4 uStack_110;
  undefined4 uStack_10c;
  undefined4 uStack_108;
  undefined4 uStack_104;
  code *pcStack_100;
  undefined *puStack_f8;
  int iStack_f4;
  int iStack_e4;
  int iStack_e0;
  undefined *puStack_d8;
  undefined *puStack_d4;
  undefined4 *puStack_d0;
  undefined *puStack_cc;
  Sized_relobj<64,_true> *pSStack_c8;
  code *pcStack_c4;
  undefined8 uStack_b0;
  undefined4 uStack_a8;
  undefined4 uStack_a4;
  undefined *puStack_a0;
  undefined *puStack_9c;
  undefined4 uStack_98;
  int iStack_94;
  int iStack_84;
  int iStack_80;
  undefined4 uStack_78;
  int iStack_74;
  anon_union_4_4_c82d8563_for_u1_ *paStack_70;
  Output_data_reloc<4,_true,_64,_true> *pOStack_6c;
  Output_data *pOStack_68;
  code *pcStack_64;
  Address local_50;
  undefined4 local_48;
  int iStack_44;
  anon_union_4_4_c82d8563_for_u1_ local_38;
  int local_34;
  int local_24;
  int local_20;
  Addend local_18;
  
  local_48 = 1;
  local_50 = address;
  (*(code *)PTR_Output_reloc_004c417c)(&local_38,type,relobj,shndx);
  pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.
            super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>
            ._M_impl._M_finish;
  local_18 = addend;
  if (pOVar20 ==
      (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.
      super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>
      ._M_impl._M_end_of_storage) {
    (*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_true>&>_004c3590)
              (&(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_,pOVar20,&local_38);
    pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.
              super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>
              ._M_impl._M_finish;
    pSVar33 = addend._4_4_;
    addend = local_18;
  }
  else {
    pOVar3 = pOVar20;
    paVar10 = &local_38;
    do {
      paVar9 = paVar10;
      pOVar2 = pOVar3;
      paVar10 = paVar9 + 4;
      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;
      pSVar33 = paVar9[1].relobj;
      aVar27 = paVar9[2];
      aVar6 = paVar9[3];
      (pOVar2->rel_).u1_ = *paVar9;
      (pOVar2->rel_).u2_.relobj = pSVar33;
      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar27;
      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar6;
    } while (paVar10 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18);
    pOVar20 = pOVar20 + 1;
    aVar6 = paVar9[5];
    *(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar10;
    *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar6;
    (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.
    super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>
    ._M_impl._M_finish = pOVar20;
  }
  iVar21 = (int)pOVar20 -
           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.
                super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>
                ._M_impl._M_start >> 3;
  if (-1 < *(int *)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).
                    super_Output_data_reloc_generic.super_Output_section_data_build.
                    super_Output_section_data.super_Output_data.field_0x20 << 1) {
    *(int *)((int)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).
                   super_Output_data_reloc_generic.super_Output_section_data_build.
                   super_Output_section_data.super_Output_data.data_size_ + 4) = iVar21 * 0x33333338
    ;
    *(undefined4 *)
     &(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.
      super_Output_section_data_build.super_Output_section_data.super_Output_data.data_size_ = 0;
    od->field_0x20 = od->field_0x20 & 0xf7 | 8;
    if (local_24 << 0x1c < 0) {
      (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.
      relative_reloc_count_ =
           (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.
           relative_reloc_count_ + 1;
    }
    if ((local_20 != -4) && (local_34 != 0)) {
      if (*(int *)(local_34 + 100) == 0) {
        *(int *)(local_34 + 0x60) = iVar21 * -0x33333333 + -1;
      }
      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;
    }
    return;
  }
  pcVar37 = add_output_section;
  puVar11 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;
  puVar34 = PTR_do_gold_unreachable_004c1a30;
  local_18 = addend;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (puVar11,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);
  puStack_a0 = puVar34 + 0x273e14;
  uStack_a8 = 0;
  paStack_70 = &local_38;
  pOStack_6c = this;
  pOStack_68 = od;
  pcStack_64 = pcVar37;
  uStack_b0 = local_50;
  (**(code **)(puVar34 + 0x26cb6c))(&uStack_98);
  puVar22 = *(undefined4 **)(puVar11 + 0x3c);
  iStack_74 = iStack_44;
  uStack_78 = local_48;
  if (puVar22 == *(undefined4 **)(puVar11 + 0x40)) {
    (**(code **)(puStack_a0 + -0x5cb0))(puVar11 + 0x38,puVar22,&uStack_98);
    puVar22 = *(undefined4 **)(puVar11 + 0x3c);
    iVar21 = iStack_44;
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_98;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      iVar21 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = iVar21;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_78);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(puVar11 + 0x3c) = puVar22;
  }
  iVar23 = (int)puVar22 - *(int *)(puVar11 + 0x38) >> 3;
  if (-1 < *(int *)(puVar11 + 0x20) << 1) {
    *(int *)(puVar11 + 0x14) = iVar23 * 0x33333338;
    *(undefined4 *)(puVar11 + 0x10) = 0;
    *(byte *)&(pSVar33->super_Relobj).super_Object.offset_ =
         *(byte *)&(pSVar33->super_Relobj).super_Object.offset_ & 0xf7 | 8;
    if (iStack_84 << 0x1c < 0) {
      *(int *)(puVar11 + 0x30) = *(int *)(puVar11 + 0x30) + 1;
    }
    if ((iStack_80 != -4) && (iStack_94 != 0)) {
      if (*(int *)(iStack_94 + 100) == 0) {
        *(int *)(iStack_94 + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(puStack_a0 + -0x7810);
  pcVar38 = add_target_specific;
  iVar23 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar23,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);
  pcStack_100 = pcVar37 + 0x273c68;
  uStack_108 = uStack_a8;
  uStack_104 = uStack_a4;
  uStack_110 = uStack_b0._4_4_;
  puStack_d0 = &uStack_98;
  puStack_cc = puVar11;
  pSStack_c8 = pSVar33;
  pcStack_c4 = pcVar38;
  (**(code **)(pcVar37 + 0x26ebac))(&puStack_f8);
  puVar22 = *(undefined4 **)(iVar23 + 0x3c);
  puStack_d4 = puStack_9c;
  puStack_d8 = puStack_a0;
  if (puVar22 == *(undefined4 **)(iVar23 + 0x40)) {
    (**(code **)(pcStack_100 + -0x5cb0))(iVar23 + 0x38,puVar22,&puStack_f8);
    puVar22 = *(undefined4 **)(iVar23 + 0x3c);
    puVar34 = puStack_9c;
  }
  else {
    puVar1 = puVar22;
    ppuVar14 = &puStack_f8;
    do {
      ppuVar13 = ppuVar14;
      puVar12 = puVar1;
      ppuVar14 = ppuVar13 + 4;
      puVar34 = ppuVar13[1];
      puVar29 = ppuVar13[2];
      puVar11 = ppuVar13[3];
      *puVar12 = *ppuVar13;
      puVar12[1] = puVar34;
      puVar12[2] = puVar29;
      puVar12[3] = puVar11;
      puVar1 = puVar12 + 4;
    } while (ppuVar14 != &puStack_d8);
    puVar22 = puVar22 + 10;
    puVar11 = ppuVar13[5];
    puVar12[4] = *ppuVar14;
    puVar12[5] = puVar11;
    *(undefined4 **)(iVar23 + 0x3c) = puVar22;
  }
  iVar24 = (int)puVar22 - *(int *)(iVar23 + 0x38) >> 3;
  if (-1 < *(int *)(iVar23 + 0x20) << 1) {
    *(int *)(iVar23 + 0x14) = iVar24 * 0x33333338;
    *(undefined4 *)(iVar23 + 0x10) = 0;
    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;
    if (iStack_e4 << 0x1c < 0) {
      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;
    }
    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {
      if (*(int *)(iStack_f4 + 100) == 0) {
        *(int *)(iStack_f4 + 0x60) = iVar24 * -0x33333333 + -1;
      }
      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(pcStack_100 + -0x7810);
  pcVar38 = add_output_section_generic;
  iVar24 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);
  pcStack_160 = pcVar37 + 0x273ab4;
  uStack_170 = uStack_110;
  uStack_168 = 0;
  uStack_16c = uStack_10c;
  ppuStack_130 = &puStack_f8;
  iStack_12c = iVar23;
  iStack_128 = iVar21;
  pcStack_124 = pcVar38;
  (**(code **)(pcVar37 + 0x26c80c))(&uStack_158);
  puVar22 = *(undefined4 **)(iVar24 + 0x3c);
  uStack_134 = uStack_104;
  uStack_138 = uStack_108;
  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {
    (**(code **)(pcStack_160 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_158);
    puVar22 = *(undefined4 **)(iVar24 + 0x3c);
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_158;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      uVar35 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = uVar35;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_138);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(iVar24 + 0x3c) = puVar22;
  }
  iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;
  if (-1 < *(int *)(iVar24 + 0x20) << 1) {
    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;
    *(undefined4 *)(iVar24 + 0x10) = 0;
    puVar34[0x20] = puVar34[0x20] & 0xf7 | 8;
    if (iStack_144 << 0x1c < 0) {
      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;
    }
    if ((iStack_140 != -4) && (iStack_154 != 0)) {
      if (*(int *)(iStack_154 + 100) == 0) {
        *(int *)(iStack_154 + 0x60) = iVar21 * -0x33333333 + -1;
      }
      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(pcStack_160 + -0x7810);
  iVar23 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;
  pcVar38 = add_absolute;
  iVar21 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar21,0x231);
  pcStack_1c0 = pcVar37 + 0x273908;
  uStack_1c8 = 0;
  uStack_1cc = uStack_164;
  uStack_1d0 = uStack_168;
  puStack_190 = &uStack_158;
  iStack_18c = iVar24;
  puStack_188 = puVar34;
  pcStack_184 = pcVar38;
  (**(code **)(pcVar37 + 0x26e844))(&pcStack_1b8);
  puVar22 = *(undefined4 **)(iVar21 + 0x3c);
  pcStack_194 = pcStack_15c;
  pcStack_198 = pcStack_160;
  if (puVar22 == *(undefined4 **)(iVar21 + 0x40)) {
    (**(code **)(pcStack_1c0 + -0x5cb0))(iVar21 + 0x38,puVar22,&pcStack_1b8);
    puVar22 = *(undefined4 **)(iVar21 + 0x3c);
    pcVar37 = pcStack_15c;
  }
  else {
    puVar1 = puVar22;
    ppcVar15 = &pcStack_1b8;
    do {
      ppcVar16 = ppcVar15;
      puVar12 = puVar1;
      ppcVar15 = ppcVar16 + 4;
      pcVar37 = ppcVar16[1];
      pcVar30 = ppcVar16[2];
      pcVar38 = ppcVar16[3];
      *puVar12 = *ppcVar16;
      puVar12[1] = pcVar37;
      puVar12[2] = pcVar30;
      puVar12[3] = pcVar38;
      puVar1 = puVar12 + 4;
    } while (ppcVar15 != &pcStack_198);
    puVar22 = puVar22 + 10;
    pcVar38 = ppcVar16[5];
    puVar12[4] = *ppcVar15;
    puVar12[5] = pcVar38;
    *(undefined4 **)(iVar21 + 0x3c) = puVar22;
  }
  iVar24 = (int)puVar22 - *(int *)(iVar21 + 0x38) >> 3;
  if (-1 < *(int *)(iVar21 + 0x20) << 1) {
    *(int *)(iVar21 + 0x14) = iVar24 * 0x33333338;
    *(undefined4 *)(iVar21 + 0x10) = 0;
    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;
    if (iStack_1a4 << 0x1c < 0) {
      *(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;
    }
    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {
      if (*(int *)(iStack_1b4 + 100) == 0) {
        *(int *)(iStack_1b4 + 0x60) = iVar24 * -0x33333333 + -1;
      }
      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;
    }
    return;
  }
  pcVar38 = *(code **)(pcStack_1c0 + -0x7810);
  pcVar30 = add_output_section_relative;
  iVar24 = *(int *)(pcStack_1c0 + -0x7fc4) + 0x3574;
  (*pcVar38)(iVar24,0x231,*(int *)(pcStack_1c0 + -0x7924) + -0x2b1c);
  pcStack_220 = pcVar38 + 0x273750;
  uStack_228 = 1;
  uStack_230 = uStack_1c8;
  iStack_22c = iStack_1c4;
  uStack_238 = uStack_1cc;
  ppcStack_1f0 = &pcStack_1b8;
  iStack_1ec = iVar21;
  iStack_1e8 = iVar23;
  pcStack_1e4 = pcVar30;
  (**(code **)(pcVar38 + 0x26c4ac))(&pcStack_218);
  puVar22 = *(undefined4 **)(iVar24 + 0x3c);
  pcStack_1f4 = pcStack_1bc;
  pcStack_1f8 = pcStack_1c0;
  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {
    (**(code **)(pcStack_220 + -0x5cb0))(iVar24 + 0x38,puVar22,&pcStack_218);
    puVar22 = *(undefined4 **)(iVar24 + 0x3c);
    pcVar38 = pcStack_1bc;
  }
  else {
    puVar1 = puVar22;
    ppcVar15 = &pcStack_218;
    do {
      ppcVar16 = ppcVar15;
      puVar12 = puVar1;
      ppcVar15 = ppcVar16 + 4;
      pcVar38 = ppcVar16[1];
      pcVar31 = ppcVar16[2];
      pcVar30 = ppcVar16[3];
      *puVar12 = *ppcVar16;
      puVar12[1] = pcVar38;
      puVar12[2] = pcVar31;
      puVar12[3] = pcVar30;
      puVar1 = puVar12 + 4;
    } while (ppcVar15 != &pcStack_1f8);
    puVar22 = puVar22 + 10;
    pcVar30 = ppcVar16[5];
    puVar12[4] = *ppcVar15;
    puVar12[5] = pcVar30;
    *(undefined4 **)(iVar24 + 0x3c) = puVar22;
  }
  iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;
  if (-1 < *(int *)(iVar24 + 0x20) << 1) {
    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;
    *(undefined4 *)(iVar24 + 0x10) = 0;
    pcVar37[0x20] = (code)((byte)pcVar37[0x20] & 0xf7 | 8);
    if (iStack_204 << 0x1c < 0) {
      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;
    }
    if ((iStack_200 != -4) && (iStack_214 != 0)) {
      if (*(int *)(iStack_214 + 100) == 0) {
        *(int *)(iStack_214 + 0x60) = iVar21 * -0x33333333 + -1;
      }
      *(int *)(iStack_214 + 100) = *(int *)(iStack_214 + 100) + 1;
    }
    return;
  }
  pcVar30 = *(code **)(pcStack_220 + -0x7810);
  pcVar31 = add_output_section_generic;
  iVar21 = *(int *)(pcStack_220 + -0x7fc4) + 0x3574;
  (*pcVar30)(iVar21,0x231,*(int *)(pcStack_220 + -0x7924) + -0x2b1c);
  pcStack_288 = pcVar30 + 0x273594;
  uStack_298 = uStack_230;
  uStack_290 = 0;
  iStack_294 = iStack_22c;
  uStack_2a0 = uStack_234;
  ppcStack_258 = &pcStack_218;
  iStack_254 = iVar24;
  pcStack_250 = pcVar37;
  pcStack_24c = pcVar31;
  (**(code **)(pcVar30 + 0x26c2f0))(&uStack_280);
  puVar22 = *(undefined4 **)(iVar21 + 0x3c);
  iStack_25c = iStack_224;
  uStack_260 = uStack_228;
  if (puVar22 == *(undefined4 **)(iVar21 + 0x40)) {
    (**(code **)(pcStack_288 + -0x5cb0))(iVar21 + 0x38,puVar22,&uStack_280);
    puVar22 = *(undefined4 **)(iVar21 + 0x3c);
    iVar23 = iStack_224;
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_280;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      iVar23 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = iVar23;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_260);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(iVar21 + 0x3c) = puVar22;
  }
  iVar24 = (int)puVar22 - *(int *)(iVar21 + 0x38) >> 3;
  if (-1 < *(int *)(iVar21 + 0x20) << 1) {
    *(int *)(iVar21 + 0x14) = iVar24 * 0x33333338;
    *(undefined4 *)(iVar21 + 0x10) = 0;
    pcVar38[0x20] = (code)((byte)pcVar38[0x20] & 0xf7 | 8);
    if (iStack_26c << 0x1c < 0) {
      *(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;
    }
    if ((iStack_268 != -4) && (iStack_27c != 0)) {
      if (*(int *)(iStack_27c + 100) == 0) {
        *(int *)(iStack_27c + 0x60) = iVar24 * -0x33333333 + -1;
      }
      *(int *)(iStack_27c + 100) = *(int *)(iStack_27c + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(pcStack_288 + -0x7810);
  pcVar30 = add_output_section;
  iVar24 = *(int *)(pcStack_288 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_288 + -0x7924) + -0x2b1c);
  pcStack_2f0 = pcVar37 + 0x2733dc;
  uStack_300 = uStack_298;
  uStack_2f8 = 0;
  iStack_2fc = iStack_294;
  uStack_308 = uStack_29c;
  puStack_2c0 = &uStack_280;
  iStack_2bc = iVar21;
  pcStack_2b8 = pcVar38;
  pcStack_2b4 = pcVar30;
  (**(code **)(pcVar37 + 0x26c138))(&uStack_2e8);
  puVar22 = *(undefined4 **)(iVar24 + 0x3c);
  iStack_2c4 = iStack_28c;
  uStack_2c8 = uStack_290;
  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {
    (**(code **)(pcStack_2f0 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_2e8);
    puVar22 = *(undefined4 **)(iVar24 + 0x3c);
    iVar21 = iStack_28c;
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_2e8;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      iVar21 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = iVar21;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_2c8);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(iVar24 + 0x3c) = puVar22;
  }
  iVar25 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;
  if (-1 < *(int *)(iVar24 + 0x20) << 1) {
    *(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;
    *(undefined4 *)(iVar24 + 0x10) = 0;
    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;
    if (iStack_2d4 << 0x1c < 0) {
      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;
    }
    if ((iStack_2d0 != -4) && (iStack_2e4 != 0)) {
      if (*(int *)(iStack_2e4 + 100) == 0) {
        *(int *)(iStack_2e4 + 0x60) = iVar25 * -0x33333333 + -1;
      }
      *(int *)(iStack_2e4 + 100) = *(int *)(iStack_2e4 + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(pcStack_2f0 + -0x7810);
  pcVar38 = add_global;
  iVar25 = *(int *)(pcStack_2f0 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar25,0x231,*(int *)(pcStack_2f0 + -0x7924) + -0x2b1c);
  pcStack_358 = pcVar37 + 0x273224;
  uStack_370 = uStack_308;
  uStack_360 = 0;
  iStack_364 = 0;
  uStack_368 = 0;
  uStack_36c = uStack_304;
  puStack_328 = &uStack_2e8;
  iStack_324 = iVar24;
  iStack_320 = iVar23;
  pcStack_31c = pcVar38;
  (**(code **)(pcVar37 + 0x26bc34))(&uStack_350);
  puVar22 = *(undefined4 **)(iVar25 + 0x3c);
  iStack_32c = iStack_2fc;
  uStack_330 = uStack_300;
  if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {
    iVar23 = iStack_2fc;
    (**(code **)(pcStack_358 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_350);
    puVar22 = *(undefined4 **)(iVar25 + 0x3c);
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_350;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      iVar23 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = iVar23;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_330);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(iVar25 + 0x3c) = puVar22;
  }
  iVar24 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;
  if (-1 < *(int *)(iVar25 + 0x20) << 1) {
    *(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;
    *(undefined4 *)(iVar25 + 0x10) = 0;
    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;
    if (iStack_33c << 0x1c < 0) {
      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;
    }
    if ((iStack_338 != -4) && (iStack_34c != 0)) {
      if (*(int *)(iStack_34c + 100) == 0) {
        *(int *)(iStack_34c + 0x60) = iVar24 * -0x33333333 + -1;
      }
      *(int *)(iStack_34c + 100) = *(int *)(iStack_34c + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(pcStack_358 + -0x7810);
  pcVar38 = add_global_relative;
  iVar24 = *(int *)(pcStack_358 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_358 + -0x7924) + -0x2b1c);
  pcStack_3c0 = pcVar37 + 0x273070;
  uStack_3c8 = uStack_360 & 0xff;
  iStack_3cc = 1;
  uStack_3d0 = 1;
  uStack_3d8 = uStack_370;
  uStack_3d4 = uStack_36c;
  puStack_390 = &uStack_350;
  iStack_38c = iVar25;
  iStack_388 = iVar21;
  pcStack_384 = pcVar38;
  (**(code **)(pcVar37 + 0x26ba80))(&uStack_3b8);
  puVar22 = *(undefined4 **)(iVar24 + 0x3c);
  iStack_394 = iStack_364;
  uStack_398 = uStack_368;
  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {
    iVar21 = iStack_364;
    (**(code **)(pcStack_3c0 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_3b8);
    puVar22 = *(undefined4 **)(iVar24 + 0x3c);
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_3b8;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      iVar21 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = iVar21;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_398);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(iVar24 + 0x3c) = puVar22;
  }
  iVar25 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;
  if (-1 < *(int *)(iVar24 + 0x20) << 1) {
    *(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;
    *(undefined4 *)(iVar24 + 0x10) = 0;
    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;
    if (iStack_3a4 << 0x1c < 0) {
      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;
    }
    if ((iStack_3a0 != -4) && (iStack_3b4 != 0)) {
      if (*(int *)(iStack_3b4 + 100) == 0) {
        *(int *)(iStack_3b4 + 0x60) = iVar25 * -0x33333333 + -1;
      }
      *(int *)(iStack_3b4 + 100) = *(int *)(iStack_3b4 + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(pcStack_3c0 + -0x7810);
  pcVar38 = add_symbolless_global_addend;
  iVar25 = *(int *)(pcStack_3c0 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar25,0x231,*(int *)(pcStack_3c0 + -0x7924) + -0x2b1c);
  pcStack_428 = pcVar37 + 0x272eb4;
  uStack_434 = 1;
  uStack_430 = 0;
  uStack_438 = 0;
  uStack_43c = uStack_3d4;
  uStack_440 = uStack_3d8;
  puStack_3f8 = &uStack_3b8;
  iStack_3f4 = iVar24;
  iStack_3f0 = iVar23;
  pcStack_3ec = pcVar38;
  (**(code **)(pcVar37 + 0x26b8c4))(&uStack_420);
  puVar22 = *(undefined4 **)(iVar25 + 0x3c);
  iStack_3fc = iStack_3cc;
  uStack_400 = uStack_3d0;
  if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {
    iVar23 = iStack_3cc;
    (**(code **)(pcStack_428 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_420);
    puVar22 = *(undefined4 **)(iVar25 + 0x3c);
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_420;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      iVar23 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = iVar23;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_400);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(iVar25 + 0x3c) = puVar22;
  }
  iVar24 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;
  if (-1 < *(int *)(iVar25 + 0x20) << 1) {
    *(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;
    *(undefined4 *)(iVar25 + 0x10) = 0;
    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;
    if (iStack_40c << 0x1c < 0) {
      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;
    }
    if ((iStack_408 != -4) && (iStack_41c != 0)) {
      if (*(int *)(iStack_41c + 100) == 0) {
        *(int *)(iStack_41c + 0x60) = iVar24 * -0x33333333 + -1;
      }
      *(int *)(iStack_41c + 100) = *(int *)(iStack_41c + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(pcStack_428 + -0x7810);
  pcVar38 = add_global;
  iVar24 = *(int *)(pcStack_428 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_428 + -0x7924) + -0x2b1c);
  pcStack_490 = pcVar37 + 0x272cfc;
  uStack_4a8 = uStack_438;
  uStack_498 = 0;
  iStack_49c = 0;
  uStack_4a0 = 0;
  uStack_4a4 = uStack_434;
  uStack_4b0 = uStack_43c;
  puStack_460 = &uStack_420;
  iStack_45c = iVar25;
  iStack_458 = iVar21;
  pcStack_454 = pcVar38;
  (**(code **)(pcVar37 + 0x26b910))(&uStack_488);
  puVar22 = *(undefined4 **)(iVar24 + 0x3c);
  iStack_464 = iStack_42c;
  uStack_468 = uStack_430;
  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {
    (**(code **)(pcStack_490 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_488);
    puVar22 = *(undefined4 **)(iVar24 + 0x3c);
    iVar21 = iStack_42c;
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_488;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      iVar21 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = iVar21;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_468);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(iVar24 + 0x3c) = puVar22;
  }
  iVar25 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;
  if (-1 < *(int *)(iVar24 + 0x20) << 1) {
    *(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;
    *(undefined4 *)(iVar24 + 0x10) = 0;
    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;
    if (iStack_474 << 0x1c < 0) {
      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;
    }
    if ((iStack_470 != -4) && (iStack_484 != 0)) {
      if (*(int *)(iStack_484 + 100) == 0) {
        *(int *)(iStack_484 + 0x60) = iVar25 * -0x33333333 + -1;
      }
      *(int *)(iStack_484 + 100) = *(int *)(iStack_484 + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(pcStack_490 + -0x7810);
  pcVar38 = add_symbolless_global_addend;
  iVar25 = *(int *)(pcStack_490 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar25,0x231,*(int *)(pcStack_490 + -0x7924) + -0x2b1c);
  pcStack_500 = pcVar37 + 0x272b3c;
  uStack_50c = 1;
  uStack_518 = uStack_4a8;
  uStack_508 = 0;
  uStack_510 = 0;
  uStack_514 = uStack_4a4;
  uStack_520 = uStack_4ac;
  puStack_4d0 = &uStack_488;
  iStack_4cc = iVar24;
  iStack_4c8 = iVar23;
  pcStack_4c4 = pcVar38;
  (**(code **)(pcVar37 + 0x26b750))(&uStack_4f8);
  puVar22 = *(undefined4 **)(iVar25 + 0x3c);
  iStack_4d4 = iStack_49c;
  uStack_4d8 = uStack_4a0;
  if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {
    iVar23 = iStack_49c;
    (**(code **)(pcStack_500 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_4f8);
    puVar22 = *(undefined4 **)(iVar25 + 0x3c);
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_4f8;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      iVar23 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = iVar23;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_4d8);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(iVar25 + 0x3c) = puVar22;
  }
  iVar24 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;
  if (-1 < *(int *)(iVar25 + 0x20) << 1) {
    *(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;
    *(undefined4 *)(iVar25 + 0x10) = 0;
    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;
    if (iStack_4e4 << 0x1c < 0) {
      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;
    }
    if ((iStack_4e0 != -4) && (iStack_4f4 != 0)) {
      if (*(int *)(iStack_4f4 + 100) == 0) {
        *(int *)(iStack_4f4 + 0x60) = iVar24 * -0x33333333 + -1;
      }
      *(int *)(iStack_4f4 + 100) = *(int *)(iStack_4f4 + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(pcStack_500 + -0x7810);
  pcVar38 = add_global_relative;
  iVar24 = *(int *)(pcStack_500 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_500 + -0x7924) + -0x2b1c);
  pcStack_570 = pcVar37 + 0x272978;
  uStack_578 = uStack_508 & 0xff;
  uStack_57c = 1;
  uStack_580 = 1;
  uStack_588 = uStack_518;
  uStack_584 = uStack_514;
  iStack_590 = iStack_51c;
  puStack_540 = &uStack_4f8;
  iStack_53c = iVar25;
  iStack_538 = iVar21;
  pcStack_534 = pcVar38;
  (**(code **)(pcVar37 + 0x26b58c))(&uStack_568);
  puVar22 = *(undefined4 **)(iVar24 + 0x3c);
  uStack_544 = uStack_50c;
  uStack_548 = uStack_510;
  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {
    (**(code **)(pcStack_570 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_568);
    puVar22 = *(undefined4 **)(iVar24 + 0x3c);
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_568;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      uVar35 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = uVar35;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_548);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(iVar24 + 0x3c) = puVar22;
  }
  iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;
  if (-1 < *(int *)(iVar24 + 0x20) << 1) {
    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;
    *(undefined4 *)(iVar24 + 0x10) = 0;
    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;
    if (iStack_554 << 0x1c < 0) {
      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;
    }
    if ((iStack_550 != -4) && (iStack_564 != 0)) {
      if (*(int *)(iStack_564 + 100) == 0) {
        *(int *)(iStack_564 + 0x60) = iVar21 * -0x33333333 + -1;
      }
      *(int *)(iStack_564 + 100) = *(int *)(iStack_564 + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(pcStack_570 + -0x7810);
  pcVar38 = add_local_section;
  iVar25 = *(int *)(pcStack_570 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar25,0x231,*(int *)(pcStack_570 + -0x7924) + -0x2b1c);
  iVar21 = iStack_590;
  pcStack_5e0 = pcVar37 + 0x2727b0;
  uStack_5e8 = 1;
  uStack_5f8 = uStack_588;
  uStack_5e4 = 0;
  uStack_5ec = 0;
  uStack_5f0 = 0;
  uStack_5f4 = uStack_584;
  iStack_600 = iStack_58c;
  puStack_5b0 = &uStack_568;
  iStack_5ac = iVar24;
  iStack_5a8 = iVar23;
  pcStack_5a4 = pcVar38;
  (**(code **)(pcVar37 + 0x26b1f8))(&uStack_5d8);
  puVar22 = *(undefined4 **)(iVar25 + 0x3c);
  uStack_5b4 = uStack_57c;
  uStack_5b8 = uStack_580;
  if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {
    (**(code **)(pcStack_5e0 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_5d8);
    puVar22 = *(undefined4 **)(iVar25 + 0x3c);
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_5d8;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      uVar35 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = uVar35;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_5b8);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(iVar25 + 0x3c) = puVar22;
  }
  iVar23 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;
  if (-1 < *(int *)(iVar25 + 0x20) << 1) {
    *(int *)(iVar25 + 0x14) = iVar23 * 0x33333338;
    *(undefined4 *)(iVar25 + 0x10) = 0;
    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;
    if (iStack_5c4 << 0x1c < 0) {
      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;
    }
    if ((iStack_5c0 != -4) && (iStack_5d4 != 0)) {
      if (*(int *)(iStack_5d4 + 100) == 0) {
        *(int *)(iStack_5d4 + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_5d4 + 100) = *(int *)(iStack_5d4 + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(pcStack_5e0 + -0x7810);
  pcVar38 = add_local_section;
  iVar24 = *(int *)(pcStack_5e0 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_5e0 + -0x7924) + -0x2b1c);
  iVar23 = iStack_600;
  pcStack_650 = pcVar37 + 0x2725ec;
  iStack_618 = iVar21;
  uStack_658 = 1;
  uStack_654 = 0;
  uStack_65c = 0;
  uStack_660 = 0;
  uStack_664 = uStack_5f4;
  uStack_668 = uStack_5f8;
  iStack_670 = iStack_600;
  puStack_620 = &uStack_5d8;
  iStack_61c = iVar25;
  pcStack_614 = pcVar38;
  (**(code **)(pcVar37 + 0x26b198))(&uStack_648);
  puVar22 = *(undefined4 **)(iVar24 + 0x3c);
  uStack_624 = uStack_5ec;
  uStack_628 = uStack_5f0;
  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {
    (**(code **)(pcStack_650 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_648);
    puVar22 = *(undefined4 **)(iVar24 + 0x3c);
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_648;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      uVar35 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = uVar35;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_628);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(iVar24 + 0x3c) = puVar22;
  }
  iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;
  if (-1 < *(int *)(iVar24 + 0x20) << 1) {
    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;
    *(undefined4 *)(iVar24 + 0x10) = 0;
    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;
    if (iStack_634 << 0x1c < 0) {
      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;
    }
    if ((iStack_630 != -4) && (iStack_644 != 0)) {
      if (*(int *)(iStack_644 + 100) == 0) {
        *(int *)(iStack_644 + 0x60) = iVar21 * -0x33333333 + -1;
      }
      *(int *)(iStack_644 + 100) = *(int *)(iStack_644 + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(pcStack_650 + -0x7810);
  pcVar38 = add_local;
  iVar25 = *(int *)(pcStack_650 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar25,0x231,*(int *)(pcStack_650 + -0x7924) + -0x2b1c);
  iVar21 = iStack_670;
  pcStack_6c0 = pcVar37 + 0x27242c;
  iStack_688 = iVar23;
  uStack_6d8 = uStack_668;
  uStack_6c4 = 0;
  uStack_6c8 = 0;
  uStack_6cc = 0;
  uStack_6d0 = 0;
  uStack_6d4 = uStack_664;
  iStack_6e0 = iStack_670;
  puStack_690 = &uStack_648;
  iStack_68c = iVar24;
  pcStack_684 = pcVar38;
  (**(code **)(pcVar37 + 0x26afd8))(&uStack_6b8);
  puVar22 = *(undefined4 **)(iVar25 + 0x3c);
  uStack_694 = uStack_65c;
  uStack_698 = uStack_660;
  if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {
    (**(code **)(pcStack_6c0 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_6b8);
    puVar22 = *(undefined4 **)(iVar25 + 0x3c);
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_6b8;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      uVar35 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = uVar35;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_698);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(iVar25 + 0x3c) = puVar22;
  }
  iVar23 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;
  if (-1 < *(int *)(iVar25 + 0x20) << 1) {
    *(int *)(iVar25 + 0x14) = iVar23 * 0x33333338;
    *(undefined4 *)(iVar25 + 0x10) = 0;
    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;
    if (iStack_6a4 << 0x1c < 0) {
      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;
    }
    if ((iStack_6a0 != -4) && (iStack_6b4 != 0)) {
      if (*(int *)(iStack_6b4 + 100) == 0) {
        *(int *)(iStack_6b4 + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_6b4 + 100) = *(int *)(iStack_6b4 + 100) + 1;
    }
    return;
  }
  pcVar37 = *(code **)(pcStack_6c0 + -0x7810);
  pcVar38 = add_local_relative;
  iVar24 = *(int *)(pcStack_6c0 + -0x7fc4) + 0x3574;
  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_6c0 + -0x7924) + -0x2b1c);
  iVar23 = iStack_6e0;
  iStack_6f8 = iVar21;
  iVar21 = iStack_6e0;
  puStack_700 = &uStack_6b8;
  iStack_6fc = iVar25;
  pcStack_6f4 = pcVar38;
  (**(code **)(pcVar37 + 0x26ae1c))(&uStack_728);
  puVar22 = *(undefined4 **)(iVar24 + 0x3c);
  uStack_704 = uStack_6cc;
  uStack_708 = uStack_6d0;
  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {
    (**(code **)(pcVar37 + 0x26c5c0))(iVar24 + 0x38,puVar22,&uStack_728,uStack_6cc,iVar21);
    puVar22 = *(undefined4 **)(iVar24 + 0x3c);
  }
  else {
    puVar1 = puVar22;
    puVar12 = &uStack_728;
    do {
      puVar17 = puVar12;
      puVar4 = puVar1;
      puVar12 = puVar17 + 4;
      uVar35 = puVar17[1];
      uVar28 = puVar17[2];
      uVar7 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = uVar35;
      puVar4[2] = uVar28;
      puVar4[3] = uVar7;
      puVar1 = puVar4 + 4;
    } while (puVar12 != &uStack_708);
    puVar22 = puVar22 + 10;
    uVar7 = puVar17[5];
    puVar4[4] = *puVar12;
    puVar4[5] = uVar7;
    *(undefined4 **)(iVar24 + 0x3c) = puVar22;
  }
  iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;
  if (-1 < *(int *)(iVar24 + 0x20) << 1) {
    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;
    *(undefined4 *)(iVar24 + 0x10) = 0;
    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;
    if (iStack_714 << 0x1c < 0) {
      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;
    }
    if ((iStack_710 != -4) && (iStack_724 != 0)) {
      if (*(int *)(iStack_724 + 100) == 0) {
        *(int *)(iStack_724 + 0x60) = iVar21 * -0x33333333 + -1;
      }
      *(int *)(iStack_724 + 100) = *(int *)(iStack_724 + 100) + 1;
    }
    return;
  }
  uVar26 = 0x231;
  pcVar38 = *(code **)(pcVar37 + 0x26aa60);
  piVar18 = (int *)(*(int *)(pcVar37 + 0x26a2ac) + 0x3574);
  (*pcVar38)(piVar18,0x231,*(int *)(pcVar37 + 0x26a94c) + -0x2b1c);
  if (uVar26 == 1) {
    piVar5 = piVar18 + 6;
    piVar18[6] = 0;
  }
  else {
    piVar5 = (int *)(*(code *)(*(int *)(pcVar38 + 0x26cd70) + 0x341c))(uVar26);
  }
  piVar8 = (int *)piVar18[2];
  piVar18[2] = 0;
  if (piVar8 != (int *)0x0) {
    uVar32 = 0;
    do {
      while( true ) {
        if (uVar26 == 0) {
          trap(7);
        }
        uVar39 = (uint)piVar8[10] % uVar26;
        piVar19 = piVar5 + uVar39;
        piVar36 = (int *)*piVar8;
        if ((int *)*piVar19 == (int *)0x0) break;
        *piVar8 = *(int *)*piVar19;
        *(int **)*piVar19 = piVar8;
        uVar39 = uVar32;
LAB_00257210:
        piVar8 = piVar36;
        uVar32 = uVar39;
        if (piVar36 == (int *)0x0) goto LAB_0025726c;
      }
      *piVar8 = piVar18[2];
      piVar18[2] = (int)piVar8;
      *piVar19 = (int)(piVar18 + 2);
      if (*piVar8 == 0) goto LAB_00257210;
      piVar5[uVar32] = (int)piVar8;
      piVar8 = piVar36;
      uVar32 = uVar39;
    } while (piVar36 != (int *)0x0);
  }
LAB_0025726c:
  if (piVar18 + 6 != (int *)*piVar18) {
    (**(code **)(pcVar38 + 0x26a168))();
  }
  piVar18[1] = uVar26;
  *piVar18 = (int)piVar5;
  return;
}



void FUN_00255270(int param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5,
                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,
                 int param_10)

{
  undefined4 *puVar1;
  undefined4 *puVar2;
  undefined4 uVar3;
  undefined4 *puVar4;
  undefined *puVar5;
  undefined **ppuVar6;
  undefined **ppuVar7;
  undefined4 *puVar8;
  code **ppcVar9;
  code **ppcVar10;
  undefined4 *puVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  undefined4 uVar15;
  undefined *puVar16;
  code *pcVar17;
  undefined *puVar18;
  undefined4 uVar19;
  code *pcVar20;
  code *pcVar21;
  code *pcVar22;
  code *pcStack_1b8;
  int iStack_1b4;
  int iStack_1a4;
  int iStack_1a0;
  code *pcStack_198;
  undefined4 uStack_194;
  undefined4 *puStack_190;
  int iStack_18c;
  undefined *puStack_188;
  code *pcStack_184;
  undefined4 uStack_170;
  undefined4 uStack_16c;
  undefined4 uStack_168;
  undefined4 uStack_164;
  code *pcStack_160;
  undefined4 uStack_15c;
  undefined4 uStack_158;
  int iStack_154;
  int iStack_144;
  int iStack_140;
  undefined4 uStack_138;
  undefined4 uStack_134;
  undefined **ppuStack_130;
  int iStack_12c;
  int iStack_128;
  code *pcStack_124;
  undefined4 uStack_110;
  undefined4 uStack_10c;
  undefined4 uStack_108;
  undefined4 uStack_104;
  code *pcStack_100;
  undefined *puStack_f8;
  int iStack_f4;
  int iStack_e4;
  int iStack_e0;
  undefined *puStack_d8;
  undefined *puStack_d4;
  undefined4 *puStack_d0;
  undefined *puStack_cc;
  int iStack_c8;
  code *pcStack_c4;
  undefined4 uStack_b0;
  undefined4 uStack_ac;
  undefined4 uStack_a8;
  undefined4 uStack_a4;
  undefined *puStack_a0;
  undefined *puStack_9c;
  undefined4 uStack_98;
  int iStack_94;
  int iStack_84;
  int iStack_80;
  undefined4 uStack_78;
  int iStack_74;
  undefined4 *puStack_70;
  int iStack_6c;
  int iStack_68;
  code *pcStack_64;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  int iStack_44;
  undefined4 local_38;
  int local_34;
  int local_24;
  int local_20;
  undefined4 local_18;
  int local_14;
  
  local_48 = 1;
  local_4c = param_8;
  local_50 = param_7;
  (*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5);
  puVar11 = *(undefined4 **)(param_1 + 0x3c);
  local_14 = param_10;
  local_18 = param_9;
  if (puVar11 == *(undefined4 **)(param_1 + 0x40)) {
    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)
              (param_1 + 0x38,puVar11,&local_38);
    puVar11 = *(undefined4 **)(param_1 + 0x3c);
  }
  else {
    puVar1 = puVar11;
    puVar4 = &local_38;
    do {
      puVar8 = puVar4;
      puVar2 = puVar1;
      puVar4 = puVar8 + 4;
      param_10 = puVar8[1];
      uVar15 = puVar8[2];
      uVar3 = puVar8[3];
      *puVar2 = *puVar8;
      puVar2[1] = param_10;
      puVar2[2] = uVar15;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar4 != &local_18);
    puVar11 = puVar11 + 10;
    uVar3 = puVar8[5];
    puVar2[4] = *puVar4;
    puVar2[5] = uVar3;
    *(undefined4 **)(param_1 + 0x3c) = puVar11;
  }
  iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3;
  if (-1 < *(int *)(param_1 + 0x20) << 1) {
    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;
    *(undefined4 *)(param_1 + 0x10) = 0;
    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;
    if (local_24 << 0x1c < 0) {
      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;
    }
    if ((local_20 != -4) && (local_34 != 0)) {
      if (*(int *)(local_34 + 100) == 0) {
        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;
      }
      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;
    }
    return;
  }
  pcVar21 = FUN_0025542c;
  puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;
  puVar18 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);
  puStack_a0 = puVar18 + 0x273e14;
  uStack_b0 = local_50;
  uStack_a8 = 0;
  uStack_ac = local_4c;
  puStack_70 = &local_38;
  iStack_6c = param_1;
  iStack_68 = param_3;
  pcStack_64 = pcVar21;
  (**(code **)(puVar18 + 0x26cb6c))(&uStack_98);
  puVar11 = *(undefined4 **)(puVar5 + 0x3c);
  iStack_74 = iStack_44;
  uStack_78 = local_48;
  if (puVar11 == *(undefined4 **)(puVar5 + 0x40)) {
    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);
    puVar11 = *(undefined4 **)(puVar5 + 0x3c);
    iVar12 = iStack_44;
  }
  else {
    puVar1 = puVar11;
    puVar4 = &uStack_98;
    do {
      puVar8 = puVar4;
      puVar2 = puVar1;
      puVar4 = puVar8 + 4;
      iVar12 = puVar8[1];
      uVar15 = puVar8[2];
      uVar3 = puVar8[3];
      *puVar2 = *puVar8;
      puVar2[1] = iVar12;
      puVar2[2] = uVar15;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar4 != &uStack_78);
    puVar11 = puVar11 + 10;
    uVar3 = puVar8[5];
    puVar2[4] = *puVar4;
    puVar2[5] = uVar3;
    *(undefined4 **)(puVar5 + 0x3c) = puVar11;
  }
  iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3;
  if (-1 < *(int *)(puVar5 + 0x20) << 1) {
    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;
    *(undefined4 *)(puVar5 + 0x10) = 0;
    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;
    if (iStack_84 << 0x1c < 0) {
      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;
    }
    if ((iStack_80 != -4) && (iStack_94 != 0)) {
      if (*(int *)(iStack_94 + 100) == 0) {
        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;
      }
      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;
    }
    return;
  }
  pcVar21 = *(code **)(puStack_a0 + -0x7810);
  pcVar22 = FUN_002555d8;
  iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;
  (*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);
  pcStack_100 = pcVar21 + 0x273c68;
  uStack_108 = uStack_a8;
  uStack_104 = uStack_a4;
  uStack_110 = uStack_ac;
  puStack_d0 = &uStack_98;
  puStack_cc = puVar5;
  iStack_c8 = param_10;
  pcStack_c4 = pcVar22;
  (**(code **)(pcVar21 + 0x26ebac))(&puStack_f8);
  puVar11 = *(undefined4 **)(iVar13 + 0x3c);
  puStack_d4 = puStack_9c;
  puStack_d8 = puStack_a0;
  if (puVar11 == *(undefined4 **)(iVar13 + 0x40)) {
    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);
    puVar11 = *(undefined4 **)(iVar13 + 0x3c);
    puVar18 = puStack_9c;
  }
  else {
    puVar1 = puVar11;
    ppuVar7 = &puStack_f8;
    do {
      ppuVar6 = ppuVar7;
      puVar4 = puVar1;
      ppuVar7 = ppuVar6 + 4;
      puVar18 = ppuVar6[1];
      puVar16 = ppuVar6[2];
      puVar5 = ppuVar6[3];
      *puVar4 = *ppuVar6;
      puVar4[1] = puVar18;
      puVar4[2] = puVar16;
      puVar4[3] = puVar5;
      puVar1 = puVar4 + 4;
    } while (ppuVar7 != &puStack_d8);
    puVar11 = puVar11 + 10;
    puVar5 = ppuVar6[5];
    puVar4[4] = *ppuVar7;
    puVar4[5] = puVar5;
    *(undefined4 **)(iVar13 + 0x3c) = puVar11;
  }
  iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3;
  if (-1 < *(int *)(iVar13 + 0x20) << 1) {
    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;
    *(undefined4 *)(iVar13 + 0x10) = 0;
    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;
    if (iStack_e4 << 0x1c < 0) {
      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;
    }
    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {
      if (*(int *)(iStack_f4 + 100) == 0) {
        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;
      }
      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;
    }
    return;
  }
  pcVar21 = *(code **)(pcStack_100 + -0x7810);
  pcVar22 = FUN_0025578c;
  iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;
  (*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);
  pcStack_160 = pcVar21 + 0x273ab4;
  uStack_170 = uStack_110;
  uStack_168 = 0;
  uStack_16c = uStack_10c;
  ppuStack_130 = &puStack_f8;
  iStack_12c = iVar13;
  iStack_128 = iVar12;
  pcStack_124 = pcVar22;
  (**(code **)(pcVar21 + 0x26c80c))(&uStack_158);
  puVar11 = *(undefined4 **)(iVar14 + 0x3c);
  uStack_134 = uStack_104;
  uStack_138 = uStack_108;
  if (puVar11 == *(undefined4 **)(iVar14 + 0x40)) {
    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);
    puVar11 = *(undefined4 **)(iVar14 + 0x3c);
  }
  else {
    puVar1 = puVar11;
    puVar4 = &uStack_158;
    do {
      puVar8 = puVar4;
      puVar2 = puVar1;
      puVar4 = puVar8 + 4;
      uVar19 = puVar8[1];
      uVar15 = puVar8[2];
      uVar3 = puVar8[3];
      *puVar2 = *puVar8;
      puVar2[1] = uVar19;
      puVar2[2] = uVar15;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar4 != &uStack_138);
    puVar11 = puVar11 + 10;
    uVar3 = puVar8[5];
    puVar2[4] = *puVar4;
    puVar2[5] = uVar3;
    *(undefined4 **)(iVar14 + 0x3c) = puVar11;
  }
  iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3;
  if (-1 < *(int *)(iVar14 + 0x20) << 1) {
    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;
    *(undefined4 *)(iVar14 + 0x10) = 0;
    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;
    if (iStack_144 << 0x1c < 0) {
      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;
    }
    if ((iStack_140 != -4) && (iStack_154 != 0)) {
      if (*(int *)(iStack_154 + 100) == 0) {
        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;
      }
      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;
    }
    return;
  }
  pcVar21 = *(code **)(pcStack_160 + -0x7810);
  iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;
  pcVar22 = FUN_00255938;
  iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;
  (*pcVar21)(iVar12,0x231);
  uVar15 = 0;
  uVar3 = uStack_168;
  puStack_190 = &uStack_158;
  iStack_18c = iVar14;
  puStack_188 = puVar18;
  pcStack_184 = pcVar22;
  (**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8);
  puVar11 = *(undefined4 **)(iVar12 + 0x3c);
  uStack_194 = uStack_15c;
  pcStack_198 = pcStack_160;
  if (puVar11 == *(undefined4 **)(iVar12 + 0x40)) {
    (**(code **)(pcVar21 + 0x26dc58))
              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);
    puVar11 = *(undefined4 **)(iVar12 + 0x3c);
  }
  else {
    puVar1 = puVar11;
    ppcVar10 = &pcStack_1b8;
    do {
      ppcVar9 = ppcVar10;
      puVar4 = puVar1;
      ppcVar10 = ppcVar9 + 4;
      pcVar20 = ppcVar9[1];
      pcVar17 = ppcVar9[2];
      pcVar22 = ppcVar9[3];
      *puVar4 = *ppcVar9;
      puVar4[1] = pcVar20;
      puVar4[2] = pcVar17;
      puVar4[3] = pcVar22;
      puVar1 = puVar4 + 4;
    } while (ppcVar10 != &pcStack_198);
    puVar11 = puVar11 + 10;
    pcVar22 = ppcVar9[5];
    puVar4[4] = *ppcVar10;
    puVar4[5] = pcVar22;
    *(undefined4 **)(iVar12 + 0x3c) = puVar11;
  }
  iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3;
  if (-1 < *(int *)(iVar12 + 0x20) << 1) {
    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;
    *(undefined4 *)(iVar12 + 0x10) = 0;
    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;
    if (iStack_1a4 << 0x1c < 0) {
      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;
    }
    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {
      if (*(int *)(iStack_1b4 + 100) == 0) {
        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;
      }
      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;
    }
    return;
  }
  (**(code **)(pcVar21 + 0x26c0f8))
            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c);
  return;
}


lui gp,0x27
addiu gp,gp,0x3fd0
addu gp,gp,t9
addiu sp,sp,-0x60
lw t9,-0x50c4(gp)
or v0,a3,zero
li v1,0x1
lw t1,0x7c(sp)
lw t0,0x78(sp)
lw a3,0x70(sp)
sw s0,0x50(sp)
addiu s0,sp,0x28
sw s1,0x54(sp)
or s1,a0,zero
sw gp,0x20(sp)
or a0,s0,zero
sw s2,0x58(sp)
or s2,a2,zero
or a2,v0,zero
sw ra,0x5c(sp)
sw v1,0x18(sp)
sw t1,0x14(sp)
jalr t9
_sw t0,0x10(sp)
lw a3,0x84(sp)
lw a2,0x80(sp)
lw a1,0x3c(s1)
lw v0,0x40(s1)
lw gp,0x20(sp)
sw a3,0x4c(sp)
beq a1,v0,0x002553f4
_sw a2,0x48(sp)
addiu t1,sp,0x48
or a0,s0,zero
or v0,a1,zero
lw t0,0x0(a0)
addiu a0,a0,0x10
addiu v0,v0,0x10
lw a3,-0xc(a0)
lw a2,-0x8(a0)
lw v1,-0x4(a0)
sw t0,-0x10(v0)
sw a3,-0xc(v0)
sw a2,-0x8(v0)
bne a0,t1,0x002552fc
_sw v1,-0x4(v0)
lw a2,0x0(a0)
addiu a1,a1,0x28
lw v1,0x4(a0)
sw a2,0x0(v0)
sw v1,0x4(v0)
sw a1,0x3c(s1)
lw v0,0x38(s1)
lw v1,0x20(s1)
subu a1,a1,v0
lui v0,0xcccc
sra a1,a1,0x3
ori v0,v0,0xcccd
mul a1,a1,v0
ext v1,v1,0x1e,0x1
sll v0,a1,0x1
addu v0,v0,a1
bne v1,zero,0x00255410
_sll v0,v0,0x3
sw v0,0x14(s1)
li a0,0x1
sw zero,0x10(s1)
lbu v1,0x20(s2)
lw v0,0x3c(sp)
ins v1,a0,0x3,0x1
ext v0,v0,0x3,0x1
bne v0,zero,0x002553d8
_sb v1,0x20(s2)
lw v1,0x40(sp)
li v0,-0x4
beq v1,v0,0x002553c0
_lw v0,0x2c(sp)
beq v0,zero,0x002553c4
_lw ra,0x5c(sp)
lw v1,0x64(v0)
beq v1,zero,0x002553e8
_nop
addiu v1,v1,0x1
sw v1,0x64(v0)
lw ra,0x5c(sp)
lw s2,0x58(sp)
lw s1,0x54(sp)
lw s0,0x50(sp)
jr ra
_addiu sp,sp,0x60
lw v0,0x30(s1)
addiu v0,v0,0x1
b 0x00255394
_sw v0,0x30(s1)
addiu a1,a1,-0x1
b 0x002553b8
_sw a1,0x60(v0)
lw t9,-0x5cb0(gp)
addiu a0,s1,0x38
jalr t9
_or a2,s0,zero
lw gp,0x20(sp)
b 0x00255340
_lw a1,0x3c(s1)
lw a2,-0x7924(gp)
li a1,0x231
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x2b1c
jalr t9
_addiu a0,a0,0x3574
(translation_unit "void FUN_00255270(int param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 int param_10)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined *puVar5;\n  undefined **ppuVar6;\n  undefined **ppuVar7;\n  undefined4 *puVar8;\n  code **ppcVar9;\n  code **ppcVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  undefined4 uVar19;\n  code *pcVar20;\n  code *pcVar21;\n  code *pcVar22;\n  code *pcStack_1b8;\n  int iStack_1b4;\n  int iStack_1a4;\n  int iStack_1a0;\n  code *pcStack_198;\n  undefined4 uStack_194;\n  undefined4 *puStack_190;\n  int iStack_18c;\n  undefined *puStack_188;\n  code *pcStack_184;\n  undefined4 uStack_170;\n  undefined4 uStack_16c;\n  undefined4 uStack_168;\n  undefined4 uStack_164;\n  code *pcStack_160;\n  undefined4 uStack_15c;\n  undefined4 uStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined **ppuStack_130;\n  int iStack_12c;\n  int iStack_128;\n  code *pcStack_124;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  code *pcStack_100;\n  undefined *puStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined *puStack_d8;\n  undefined *puStack_d4;\n  undefined4 *puStack_d0;\n  undefined *puStack_cc;\n  int iStack_c8;\n  code *pcStack_c4;\n  undefined4 uStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  undefined4 uStack_a4;\n  undefined *puStack_a0;\n  undefined *puStack_9c;\n  undefined4 uStack_98;\n  int iStack_94;\n  int iStack_84;\n  int iStack_80;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 *puStack_70;\n  int iStack_6c;\n  int iStack_68;\n  code *pcStack_64;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int iStack_44;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  int local_14;\n  \n  local_48 = 1;\n  local_4c = param_8;\n  local_50 = param_7;\n  (*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5);\n  puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar11 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = FUN_0025542c;\n  puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  puStack_a0 = puVar18 + 0x273e14;\n  uStack_b0 = local_50;\n  uStack_a8 = 0;\n  uStack_ac = local_4c;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar21;\n  (**(code **)(puVar18 + 0x26cb6c))(&uStack_98);\n  puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar11 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }\n  iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(puStack_a0 + -0x7810);\n  pcVar22 = FUN_002555d8;\n  iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar21 + 0x273c68;\n  uStack_108 = uStack_a8;\n  uStack_104 = uStack_a4;\n  uStack_110 = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar22;\n  (**(code **)(pcVar21 + 0x26ebac))(&puStack_f8);\n  puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n  puStack_d4 = puStack_9c;\n  puStack_d8 = puStack_a0;\n  if (puVar11 == *(undefined4 **)(iVar13 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }\n  else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar13 + 0x20) << 1) {\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_100 + -0x7810);\n  pcVar22 = FUN_0025578c;\n  iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);\n  pcStack_160 = pcVar21 + 0x273ab4;\n  uStack_170 = uStack_110;\n  uStack_168 = 0;\n  uStack_16c = uStack_10c;\n  ppuStack_130 = &puStack_f8;\n  iStack_12c = iVar13;\n  iStack_128 = iVar12;\n  pcStack_124 = pcVar22;\n  (**(code **)(pcVar21 + 0x26c80c))(&uStack_158);\n  puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  uStack_134 = uStack_104;\n  uStack_138 = uStack_108;\n  if (puVar11 == *(undefined4 **)(iVar14 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar14 + 0x20) << 1) {\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_160 + -0x7810);\n  iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;\n  pcVar22 = FUN_00255938;\n  iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar12,0x231);\n  uVar15 = 0;\n  uVar3 = uStack_168;\n  puStack_190 = &uStack_158;\n  iStack_18c = iVar14;\n  puStack_188 = puVar18;\n  pcStack_184 = pcVar22;\n  (**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8);\n  puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_194 = uStack_15c;\n  pcStack_198 = pcStack_160;\n  if (puVar11 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c);\n  return;\n}\n\n" (function_definition "void FUN_00255270(int param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 int param_10)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined *puVar5;\n  undefined **ppuVar6;\n  undefined **ppuVar7;\n  undefined4 *puVar8;\n  code **ppcVar9;\n  code **ppcVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  undefined4 uVar19;\n  code *pcVar20;\n  code *pcVar21;\n  code *pcVar22;\n  code *pcStack_1b8;\n  int iStack_1b4;\n  int iStack_1a4;\n  int iStack_1a0;\n  code *pcStack_198;\n  undefined4 uStack_194;\n  undefined4 *puStack_190;\n  int iStack_18c;\n  undefined *puStack_188;\n  code *pcStack_184;\n  undefined4 uStack_170;\n  undefined4 uStack_16c;\n  undefined4 uStack_168;\n  undefined4 uStack_164;\n  code *pcStack_160;\n  undefined4 uStack_15c;\n  undefined4 uStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined **ppuStack_130;\n  int iStack_12c;\n  int iStack_128;\n  code *pcStack_124;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  code *pcStack_100;\n  undefined *puStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined *puStack_d8;\n  undefined *puStack_d4;\n  undefined4 *puStack_d0;\n  undefined *puStack_cc;\n  int iStack_c8;\n  code *pcStack_c4;\n  undefined4 uStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  undefined4 uStack_a4;\n  undefined *puStack_a0;\n  undefined *puStack_9c;\n  undefined4 uStack_98;\n  int iStack_94;\n  int iStack_84;\n  int iStack_80;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 *puStack_70;\n  int iStack_6c;\n  int iStack_68;\n  code *pcStack_64;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int iStack_44;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  int local_14;\n  \n  local_48 = 1;\n  local_4c = param_8;\n  local_50 = param_7;\n  (*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5);\n  puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar11 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = FUN_0025542c;\n  puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  puStack_a0 = puVar18 + 0x273e14;\n  uStack_b0 = local_50;\n  uStack_a8 = 0;\n  uStack_ac = local_4c;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar21;\n  (**(code **)(puVar18 + 0x26cb6c))(&uStack_98);\n  puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar11 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }\n  iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(puStack_a0 + -0x7810);\n  pcVar22 = FUN_002555d8;\n  iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar21 + 0x273c68;\n  uStack_108 = uStack_a8;\n  uStack_104 = uStack_a4;\n  uStack_110 = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar22;\n  (**(code **)(pcVar21 + 0x26ebac))(&puStack_f8);\n  puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n  puStack_d4 = puStack_9c;\n  puStack_d8 = puStack_a0;\n  if (puVar11 == *(undefined4 **)(iVar13 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }\n  else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar13 + 0x20) << 1) {\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_100 + -0x7810);\n  pcVar22 = FUN_0025578c;\n  iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);\n  pcStack_160 = pcVar21 + 0x273ab4;\n  uStack_170 = uStack_110;\n  uStack_168 = 0;\n  uStack_16c = uStack_10c;\n  ppuStack_130 = &puStack_f8;\n  iStack_12c = iVar13;\n  iStack_128 = iVar12;\n  pcStack_124 = pcVar22;\n  (**(code **)(pcVar21 + 0x26c80c))(&uStack_158);\n  puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  uStack_134 = uStack_104;\n  uStack_138 = uStack_108;\n  if (puVar11 == *(undefined4 **)(iVar14 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar14 + 0x20) << 1) {\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_160 + -0x7810);\n  iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;\n  pcVar22 = FUN_00255938;\n  iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar12,0x231);\n  uVar15 = 0;\n  uVar3 = uStack_168;\n  puStack_190 = &uStack_158;\n  iStack_18c = iVar14;\n  puStack_188 = puVar18;\n  pcStack_184 = pcVar22;\n  (**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8);\n  puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_194 = uStack_15c;\n  pcStack_198 = pcStack_160;\n  if (puVar11 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c);\n  return;\n}" primitive_type (function_declarator "FUN_00255270(int param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 int param_10)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 int param_10)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "int param_10" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined *puVar5;\n  undefined **ppuVar6;\n  undefined **ppuVar7;\n  undefined4 *puVar8;\n  code **ppcVar9;\n  code **ppcVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  undefined4 uVar19;\n  code *pcVar20;\n  code *pcVar21;\n  code *pcVar22;\n  code *pcStack_1b8;\n  int iStack_1b4;\n  int iStack_1a4;\n  int iStack_1a0;\n  code *pcStack_198;\n  undefined4 uStack_194;\n  undefined4 *puStack_190;\n  int iStack_18c;\n  undefined *puStack_188;\n  code *pcStack_184;\n  undefined4 uStack_170;\n  undefined4 uStack_16c;\n  undefined4 uStack_168;\n  undefined4 uStack_164;\n  code *pcStack_160;\n  undefined4 uStack_15c;\n  undefined4 uStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined **ppuStack_130;\n  int iStack_12c;\n  int iStack_128;\n  code *pcStack_124;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  code *pcStack_100;\n  undefined *puStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined *puStack_d8;\n  undefined *puStack_d4;\n  undefined4 *puStack_d0;\n  undefined *puStack_cc;\n  int iStack_c8;\n  code *pcStack_c4;\n  undefined4 uStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  undefined4 uStack_a4;\n  undefined *puStack_a0;\n  undefined *puStack_9c;\n  undefined4 uStack_98;\n  int iStack_94;\n  int iStack_84;\n  int iStack_80;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 *puStack_70;\n  int iStack_6c;\n  int iStack_68;\n  code *pcStack_64;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int iStack_44;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  int local_14;\n  \n  local_48 = 1;\n  local_4c = param_8;\n  local_50 = param_7;\n  (*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5);\n  puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar11 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = FUN_0025542c;\n  puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  puStack_a0 = puVar18 + 0x273e14;\n  uStack_b0 = local_50;\n  uStack_a8 = 0;\n  uStack_ac = local_4c;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar21;\n  (**(code **)(puVar18 + 0x26cb6c))(&uStack_98);\n  puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar11 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }\n  iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(puStack_a0 + -0x7810);\n  pcVar22 = FUN_002555d8;\n  iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar21 + 0x273c68;\n  uStack_108 = uStack_a8;\n  uStack_104 = uStack_a4;\n  uStack_110 = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar22;\n  (**(code **)(pcVar21 + 0x26ebac))(&puStack_f8);\n  puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n  puStack_d4 = puStack_9c;\n  puStack_d8 = puStack_a0;\n  if (puVar11 == *(undefined4 **)(iVar13 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }\n  else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar13 + 0x20) << 1) {\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_100 + -0x7810);\n  pcVar22 = FUN_0025578c;\n  iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);\n  pcStack_160 = pcVar21 + 0x273ab4;\n  uStack_170 = uStack_110;\n  uStack_168 = 0;\n  uStack_16c = uStack_10c;\n  ppuStack_130 = &puStack_f8;\n  iStack_12c = iVar13;\n  iStack_128 = iVar12;\n  pcStack_124 = pcVar22;\n  (**(code **)(pcVar21 + 0x26c80c))(&uStack_158);\n  puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  uStack_134 = uStack_104;\n  uStack_138 = uStack_108;\n  if (puVar11 == *(undefined4 **)(iVar14 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar14 + 0x20) << 1) {\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_160 + -0x7810);\n  iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;\n  pcVar22 = FUN_00255938;\n  iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar12,0x231);\n  uVar15 = 0;\n  uVar3 = uStack_168;\n  puStack_190 = &uStack_158;\n  iStack_18c = iVar14;\n  puStack_188 = puVar18;\n  pcStack_184 = pcVar22;\n  (**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8);\n  puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_194 = uStack_15c;\n  pcStack_198 = pcStack_160;\n  if (puVar11 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c);\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "undefined **ppuVar7;" type_identifier (pointer_declarator "**ppuVar7" * (pointer_declarator "*ppuVar7" * identifier)) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "code **ppcVar9;" type_identifier (pointer_declarator "**ppcVar9" * (pointer_declarator "*ppcVar9" * identifier)) ;) (declaration "code **ppcVar10;" type_identifier (pointer_declarator "**ppcVar10" * (pointer_declarator "*ppcVar10" * identifier)) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "code *pcStack_1b8;" type_identifier (pointer_declarator "*pcStack_1b8" * identifier) ;) (declaration "int iStack_1b4;" primitive_type identifier ;) (declaration "int iStack_1a4;" primitive_type identifier ;) (declaration "int iStack_1a0;" primitive_type identifier ;) (declaration "code *pcStack_198;" type_identifier (pointer_declarator "*pcStack_198" * identifier) ;) (declaration "undefined4 uStack_194;" type_identifier identifier ;) (declaration "undefined4 *puStack_190;" type_identifier (pointer_declarator "*puStack_190" * identifier) ;) (declaration "int iStack_18c;" primitive_type identifier ;) (declaration "undefined *puStack_188;" type_identifier (pointer_declarator "*puStack_188" * identifier) ;) (declaration "code *pcStack_184;" type_identifier (pointer_declarator "*pcStack_184" * identifier) ;) (declaration "undefined4 uStack_170;" type_identifier identifier ;) (declaration "undefined4 uStack_16c;" type_identifier identifier ;) (declaration "undefined4 uStack_168;" type_identifier identifier ;) (declaration "undefined4 uStack_164;" type_identifier identifier ;) (declaration "code *pcStack_160;" type_identifier (pointer_declarator "*pcStack_160" * identifier) ;) (declaration "undefined4 uStack_15c;" type_identifier identifier ;) (declaration "undefined4 uStack_158;" type_identifier identifier ;) (declaration "int iStack_154;" primitive_type identifier ;) (declaration "int iStack_144;" primitive_type identifier ;) (declaration "int iStack_140;" primitive_type identifier ;) (declaration "undefined4 uStack_138;" type_identifier identifier ;) (declaration "undefined4 uStack_134;" type_identifier identifier ;) (declaration "undefined **ppuStack_130;" type_identifier (pointer_declarator "**ppuStack_130" * (pointer_declarator "*ppuStack_130" * identifier)) ;) (declaration "int iStack_12c;" primitive_type identifier ;) (declaration "int iStack_128;" primitive_type identifier ;) (declaration "code *pcStack_124;" type_identifier (pointer_declarator "*pcStack_124" * identifier) ;) (declaration "undefined4 uStack_110;" type_identifier identifier ;) (declaration "undefined4 uStack_10c;" type_identifier identifier ;) (declaration "undefined4 uStack_108;" type_identifier identifier ;) (declaration "undefined4 uStack_104;" type_identifier identifier ;) (declaration "code *pcStack_100;" type_identifier (pointer_declarator "*pcStack_100" * identifier) ;) (declaration "undefined *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int iStack_e0;" primitive_type identifier ;) (declaration "undefined *puStack_d8;" type_identifier (pointer_declarator "*puStack_d8" * identifier) ;) (declaration "undefined *puStack_d4;" type_identifier (pointer_declarator "*puStack_d4" * identifier) ;) (declaration "undefined4 *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "undefined *puStack_cc;" type_identifier (pointer_declarator "*puStack_cc" * identifier) ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "code *pcStack_c4;" type_identifier (pointer_declarator "*pcStack_c4" * identifier) ;) (declaration "undefined4 uStack_b0;" type_identifier identifier ;) (declaration "undefined4 uStack_ac;" type_identifier identifier ;) (declaration "undefined4 uStack_a8;" type_identifier identifier ;) (declaration "undefined4 uStack_a4;" type_identifier identifier ;) (declaration "undefined *puStack_a0;" type_identifier (pointer_declarator "*puStack_a0" * identifier) ;) (declaration "undefined *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "undefined4 uStack_98;" type_identifier identifier ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "int iStack_80;" primitive_type identifier ;) (declaration "undefined4 uStack_78;" type_identifier identifier ;) (declaration "int iStack_74;" primitive_type identifier ;) (declaration "undefined4 *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "int iStack_6c;" primitive_type identifier ;) (declaration "int iStack_68;" primitive_type identifier ;) (declaration "code *pcStack_64;" type_identifier (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int iStack_44;" primitive_type identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 local_18;" type_identifier identifier ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "local_4c = param_8;" (assignment_expression "local_4c = param_8" identifier = identifier) ;) (expression_statement "local_50 = param_7;" (assignment_expression "local_50 = param_7" identifier = identifier) ;) (expression_statement "(*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5);" (call_expression "(*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5)" (parenthesized_expression "(*(code *)PTR_Output_reloc_004c417c)" ( (pointer_expression "*(code *)PTR_Output_reloc_004c417c" * (cast_expression "(code *)PTR_Output_reloc_004c417c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_38,param_2,param_4,param_5)" ( (pointer_expression "&local_38" & identifier) , identifier , identifier , identifier ))) ;) (expression_statement "puVar11 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(param_1 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "local_14 = param_10;" (assignment_expression "local_14 = param_10" identifier = identifier) ;) (expression_statement "local_18 = param_9;" (assignment_expression "local_18 = param_9" identifier = identifier) ;) (if_statement "if (puVar11 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }" if (parenthesized_expression "(puVar11 == *(undefined4 **)(param_1 + 0x40))" ( (binary_expression "puVar11 == *(undefined4 **)(param_1 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(param_1 + 0x40)" * (cast_expression "(undefined4 **)(param_1 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }" { (expression_statement "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);" (call_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38)" (parenthesized_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)" ( (comma_expression "*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590" (binary_expression "*(code *)PTR__M_realloc_insert<gold_Output_reloc<4" (binary_expression "*(code *)PTR__M_realloc_insert<gold_Output_reloc" (pointer_expression "*(code *)PTR__M_realloc_insert" * (cast_expression "(code *)PTR__M_realloc_insert" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) < number_literal) , (comma_expression "true,64,true>const&>_004c3590" true , (comma_expression "64,true>const&>_004c3590" number_literal , (binary_expression "true>const&>_004c3590" (binary_expression "true>const" true > identifier) (ERROR "&" &) > identifier)))) )) (argument_list "(param_1 + 0x38,puVar11,&local_38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(param_1 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }" else (compound_statement "{\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }" { (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" identifier = identifier) ;) (expression_statement "puVar4 = &local_38;" (assignment_expression "puVar4 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (do_statement "do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);" do (compound_statement "{\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar4 = puVar8 + 4;" (assignment_expression "puVar4 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) (expression_statement "param_10 = puVar8[1];" (assignment_expression "param_10 = puVar8[1]" identifier = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar8[2];" (assignment_expression "uVar15 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar8[3];" (assignment_expression "uVar3 = puVar8[3]" identifier = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar2[1] = param_10;" (assignment_expression "puVar2[1] = param_10" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar15;" (assignment_expression "puVar2[2] = uVar15" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[3] = uVar3;" (assignment_expression "puVar2[3] = uVar3" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar2 + 4;" (assignment_expression "puVar1 = puVar2 + 4" identifier = (binary_expression "puVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar4 != &local_18)" ( (binary_expression "puVar4 != &local_18" identifier != (pointer_expression "&local_18" & identifier)) )) ;) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" identifier = (binary_expression "puVar11 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar8[5];" (assignment_expression "uVar3 = puVar8[5]" identifier = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = *puVar4;" (assignment_expression "puVar2[4] = *puVar4" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar2[5] = uVar3;" (assignment_expression "puVar2[5] = uVar3" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(param_1 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3;" (assignment_expression "iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3" identifier = (binary_expression "(int)puVar11 - *(int *)(param_1 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(param_1 + 0x38)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(param_1 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(param_1 + 0x20) << 1" number_literal < (binary_expression "*(int *)(param_1 + 0x20) << 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(param_1 + 0x14) = iVar12 * 0x33333338;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar12 * 0x33333338" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar12 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(param_3 + 0x20)" * (cast_expression "(byte *)(param_3 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_3 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(param_3 + 0x20) & 0xf7" (pointer_expression "*(byte *)(param_3 + 0x20)" * (cast_expression "(byte *)(param_3 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }" if (parenthesized_expression "(local_24 << 0x1c < 0)" ( (binary_expression "local_24 << 0x1c < 0" (binary_expression "local_24 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;" (assignment_expression "*(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x30) + 1" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }" if (parenthesized_expression "((local_20 != -4) && (local_34 != 0))" ( (binary_expression "(local_20 != -4) && (local_34 != 0)" (parenthesized_expression "(local_20 != -4)" ( (binary_expression "local_20 != -4" identifier != number_literal) )) && (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }" { (if_statement "if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(local_34 + 100) == 0)" ( (binary_expression "*(int *)(local_34 + 100) == 0" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1" (pointer_expression "*(int *)(local_34 + 0x60)" * (cast_expression "(int *)(local_34 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x60)" ( (binary_expression "local_34 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar12 * -0x33333333 + -1" (binary_expression "iVar12 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;" (assignment_expression "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar21 = FUN_0025542c;" (assignment_expression "pcVar21 = FUN_0025542c" identifier = identifier) ;) (expression_statement "puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;" (assignment_expression "puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier = (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal)) ;) (expression_statement "puVar18 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar18 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c)" (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 "(puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2b1c" identifier + number_literal) ))) ;) (expression_statement "puStack_a0 = puVar18 + 0x273e14;" (assignment_expression "puStack_a0 = puVar18 + 0x273e14" identifier = (binary_expression "puVar18 + 0x273e14" identifier + number_literal)) ;) (expression_statement "uStack_b0 = local_50;" (assignment_expression "uStack_b0 = local_50" identifier = identifier) ;) (expression_statement "uStack_a8 = 0;" (assignment_expression "uStack_a8 = 0" identifier = number_literal) ;) (expression_statement "uStack_ac = local_4c;" (assignment_expression "uStack_ac = local_4c" identifier = identifier) ;) (expression_statement "puStack_70 = &local_38;" (assignment_expression "puStack_70 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "iStack_6c = param_1;" (assignment_expression "iStack_6c = param_1" identifier = identifier) ;) (expression_statement "iStack_68 = param_3;" (assignment_expression "iStack_68 = param_3" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar21;" (assignment_expression "pcStack_64 = pcVar21" identifier = identifier) ;) (expression_statement "(**(code **)(puVar18 + 0x26cb6c))(&uStack_98);" (call_expression "(**(code **)(puVar18 + 0x26cb6c))(&uStack_98)" (parenthesized_expression "(**(code **)(puVar18 + 0x26cb6c))" ( (pointer_expression "**(code **)(puVar18 + 0x26cb6c)" * (pointer_expression "*(code **)(puVar18 + 0x26cb6c)" * (cast_expression "(code **)(puVar18 + 0x26cb6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x26cb6c)" ( (binary_expression "puVar18 + 0x26cb6c" identifier + number_literal) ))))) )) (argument_list "(&uStack_98)" ( (pointer_expression "&uStack_98" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(puVar5 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(puVar5 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(puVar5 + 0x3c)" * (cast_expression "(undefined4 **)(puVar5 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x3c)" ( (binary_expression "puVar5 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iStack_74 = iStack_44;" (assignment_expression "iStack_74 = iStack_44" identifier = identifier) ;) (expression_statement "uStack_78 = local_48;" (assignment_expression "uStack_78 = local_48" identifier = identifier) ;) (if_statement "if (puVar11 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }" if (parenthesized_expression "(puVar11 == *(undefined4 **)(puVar5 + 0x40))" ( (binary_expression "puVar11 == *(undefined4 **)(puVar5 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(puVar5 + 0x40)" * (cast_expression "(undefined4 **)(puVar5 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x40)" ( (binary_expression "puVar5 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }" { (expression_statement "(**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);" (call_expression "(**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98)" (parenthesized_expression "(**(code **)(puStack_a0 + -0x5cb0))" ( (pointer_expression "**(code **)(puStack_a0 + -0x5cb0)" * (pointer_expression "*(code **)(puStack_a0 + -0x5cb0)" * (cast_expression "(code **)(puStack_a0 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a0 + -0x5cb0)" ( (binary_expression "puStack_a0 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(puVar5 + 0x38,puVar11,&uStack_98)" ( (binary_expression "puVar5 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_98" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(puVar5 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(puVar5 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(puVar5 + 0x3c)" * (cast_expression "(undefined4 **)(puVar5 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x3c)" ( (binary_expression "puVar5 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iStack_44;" (assignment_expression "iVar12 = iStack_44" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }" else (compound_statement "{\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }" { (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" identifier = identifier) ;) (expression_statement "puVar4 = &uStack_98;" (assignment_expression "puVar4 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (do_statement "do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);" do (compound_statement "{\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar4 = puVar8 + 4;" (assignment_expression "puVar4 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) (expression_statement "iVar12 = puVar8[1];" (assignment_expression "iVar12 = puVar8[1]" identifier = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar8[2];" (assignment_expression "uVar15 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar8[3];" (assignment_expression "uVar3 = puVar8[3]" identifier = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar2[1] = iVar12;" (assignment_expression "puVar2[1] = iVar12" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar15;" (assignment_expression "puVar2[2] = uVar15" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[3] = uVar3;" (assignment_expression "puVar2[3] = uVar3" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar2 + 4;" (assignment_expression "puVar1 = puVar2 + 4" identifier = (binary_expression "puVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar4 != &uStack_78)" ( (binary_expression "puVar4 != &uStack_78" identifier != (pointer_expression "&uStack_78" & identifier)) )) ;) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" identifier = (binary_expression "puVar11 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar8[5];" (assignment_expression "uVar3 = puVar8[5]" identifier = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = *puVar4;" (assignment_expression "puVar2[4] = *puVar4" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar2[5] = uVar3;" (assignment_expression "puVar2[5] = uVar3" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(puVar5 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(puVar5 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(puVar5 + 0x3c)" * (cast_expression "(undefined4 **)(puVar5 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x3c)" ( (binary_expression "puVar5 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3;" (assignment_expression "iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3" identifier = (binary_expression "(int)puVar11 - *(int *)(puVar5 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(puVar5 + 0x38)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(puVar5 + 0x38)" * (cast_expression "(int *)(puVar5 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x38)" ( (binary_expression "puVar5 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(puVar5 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(puVar5 + 0x20) << 1" number_literal < (binary_expression "*(int *)(puVar5 + 0x20) << 1" (pointer_expression "*(int *)(puVar5 + 0x20)" * (cast_expression "(int *)(puVar5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x20)" ( (binary_expression "puVar5 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;" (assignment_expression "*(int *)(puVar5 + 0x14) = iVar13 * 0x33333338" (pointer_expression "*(int *)(puVar5 + 0x14)" * (cast_expression "(int *)(puVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x14)" ( (binary_expression "puVar5 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar13 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" * (cast_expression "(undefined4 *)(puVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x10)" ( (binary_expression "puVar5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(param_10 + 0x20)" * (cast_expression "(byte *)(param_10 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x20)" ( (binary_expression "param_10 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_10 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(param_10 + 0x20) & 0xf7" (pointer_expression "*(byte *)(param_10 + 0x20)" * (cast_expression "(byte *)(param_10 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x20)" ( (binary_expression "param_10 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_84 << 0x1c < 0)" ( (binary_expression "iStack_84 << 0x1c < 0" (binary_expression "iStack_84 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;" (assignment_expression "*(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1" (pointer_expression "*(int *)(puVar5 + 0x30)" * (cast_expression "(int *)(puVar5 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x30)" ( (binary_expression "puVar5 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar5 + 0x30) + 1" (pointer_expression "*(int *)(puVar5 + 0x30)" * (cast_expression "(int *)(puVar5 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x30)" ( (binary_expression "puVar5 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_80 != -4) && (iStack_94 != 0))" ( (binary_expression "(iStack_80 != -4) && (iStack_94 != 0)" (parenthesized_expression "(iStack_80 != -4)" ( (binary_expression "iStack_80 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_94 != 0)" ( (binary_expression "iStack_94 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_94 + 100) == 0)" ( (binary_expression "*(int *)(iStack_94 + 100) == 0" (pointer_expression "*(int *)(iStack_94 + 100)" * (cast_expression "(int *)(iStack_94 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_94 + 100)" ( (binary_expression "iStack_94 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_94 + 0x60)" * (cast_expression "(int *)(iStack_94 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_94 + 0x60)" ( (binary_expression "iStack_94 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar13 * -0x33333333 + -1" (binary_expression "iVar13 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;" (assignment_expression "*(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1" (pointer_expression "*(int *)(iStack_94 + 100)" * (cast_expression "(int *)(iStack_94 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_94 + 100)" ( (binary_expression "iStack_94 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_94 + 100) + 1" (pointer_expression "*(int *)(iStack_94 + 100)" * (cast_expression "(int *)(iStack_94 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_94 + 100)" ( (binary_expression "iStack_94 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar21 = *(code **)(puStack_a0 + -0x7810);" (assignment_expression "pcVar21 = *(code **)(puStack_a0 + -0x7810)" identifier = (pointer_expression "*(code **)(puStack_a0 + -0x7810)" * (cast_expression "(code **)(puStack_a0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a0 + -0x7810)" ( (binary_expression "puStack_a0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = FUN_002555d8;" (assignment_expression "pcVar22 = FUN_002555d8" identifier = identifier) ;) (expression_statement "iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(puStack_a0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(puStack_a0 + -0x7fc4)" * (cast_expression "(int *)(puStack_a0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_a0 + -0x7fc4)" ( (binary_expression "puStack_a0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(puStack_a0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(puStack_a0 + -0x7924)" * (cast_expression "(int *)(puStack_a0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_a0 + -0x7924)" ( (binary_expression "puStack_a0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_100 = pcVar21 + 0x273c68;" (assignment_expression "pcStack_100 = pcVar21 + 0x273c68" identifier = (binary_expression "pcVar21 + 0x273c68" identifier + number_literal)) ;) (expression_statement "uStack_108 = uStack_a8;" (assignment_expression "uStack_108 = uStack_a8" identifier = identifier) ;) (expression_statement "uStack_104 = uStack_a4;" (assignment_expression "uStack_104 = uStack_a4" identifier = identifier) ;) (expression_statement "uStack_110 = uStack_ac;" (assignment_expression "uStack_110 = uStack_ac" identifier = identifier) ;) (expression_statement "puStack_d0 = &uStack_98;" (assignment_expression "puStack_d0 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (expression_statement "puStack_cc = puVar5;" (assignment_expression "puStack_cc = puVar5" identifier = identifier) ;) (expression_statement "iStack_c8 = param_10;" (assignment_expression "iStack_c8 = param_10" identifier = identifier) ;) (expression_statement "pcStack_c4 = pcVar22;" (assignment_expression "pcStack_c4 = pcVar22" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar21 + 0x26ebac))(&puStack_f8);" (call_expression "(**(code **)(pcVar21 + 0x26ebac))(&puStack_f8)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26ebac))" ( (pointer_expression "**(code **)(pcVar21 + 0x26ebac)" * (pointer_expression "*(code **)(pcVar21 + 0x26ebac)" * (cast_expression "(code **)(pcVar21 + 0x26ebac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x26ebac)" ( (binary_expression "pcVar21 + 0x26ebac" identifier + number_literal) ))))) )) (argument_list "(&puStack_f8)" ( (pointer_expression "&puStack_f8" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(iVar13 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar13 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar13 + 0x3c)" * (cast_expression "(undefined4 **)(iVar13 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x3c)" ( (binary_expression "iVar13 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "puStack_d4 = puStack_9c;" (assignment_expression "puStack_d4 = puStack_9c" identifier = identifier) ;) (expression_statement "puStack_d8 = puStack_a0;" (assignment_expression "puStack_d8 = puStack_a0" identifier = identifier) ;) (if_statement "if (puVar11 == *(undefined4 **)(iVar13 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }\n  else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }" if (parenthesized_expression "(puVar11 == *(undefined4 **)(iVar13 + 0x40))" ( (binary_expression "puVar11 == *(undefined4 **)(iVar13 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar13 + 0x40)" * (cast_expression "(undefined4 **)(iVar13 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x40)" ( (binary_expression "iVar13 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }" { (expression_statement "(**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);" (call_expression "(**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8)" (parenthesized_expression "(**(code **)(pcStack_100 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_100 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_100 + -0x5cb0)" * (cast_expression "(code **)(pcStack_100 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_100 + -0x5cb0)" ( (binary_expression "pcStack_100 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar13 + 0x38,puVar11,&puStack_f8)" ( (binary_expression "iVar13 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&puStack_f8" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(iVar13 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar13 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar13 + 0x3c)" * (cast_expression "(undefined4 **)(iVar13 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x3c)" ( (binary_expression "iVar13 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "puVar18 = puStack_9c;" (assignment_expression "puVar18 = puStack_9c" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }" else (compound_statement "{\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }" { (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" identifier = identifier) ;) (expression_statement "ppuVar7 = &puStack_f8;" (assignment_expression "ppuVar7 = &puStack_f8" identifier = (pointer_expression "&puStack_f8" & identifier)) ;) (do_statement "do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);" do (compound_statement "{\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "ppuVar6 = ppuVar7;" (assignment_expression "ppuVar6 = ppuVar7" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "ppuVar7 = ppuVar6 + 4;" (assignment_expression "ppuVar7 = ppuVar6 + 4" identifier = (binary_expression "ppuVar6 + 4" identifier + number_literal)) ;) (expression_statement "puVar18 = ppuVar6[1];" (assignment_expression "puVar18 = ppuVar6[1]" identifier = (subscript_expression "ppuVar6[1]" identifier [ number_literal ])) ;) (expression_statement "puVar16 = ppuVar6[2];" (assignment_expression "puVar16 = ppuVar6[2]" identifier = (subscript_expression "ppuVar6[2]" identifier [ number_literal ])) ;) (expression_statement "puVar5 = ppuVar6[3];" (assignment_expression "puVar5 = ppuVar6[3]" identifier = (subscript_expression "ppuVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *ppuVar6;" (assignment_expression "*puVar4 = *ppuVar6" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*ppuVar6" * identifier)) ;) (expression_statement "puVar4[1] = puVar18;" (assignment_expression "puVar4[1] = puVar18" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = puVar16;" (assignment_expression "puVar4[2] = puVar16" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = puVar5;" (assignment_expression "puVar4[3] = puVar5" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppuVar7 != &puStack_d8)" ( (binary_expression "ppuVar7 != &puStack_d8" identifier != (pointer_expression "&puStack_d8" & identifier)) )) ;) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" identifier = (binary_expression "puVar11 + 10" identifier + number_literal)) ;) (expression_statement "puVar5 = ppuVar6[5];" (assignment_expression "puVar5 = ppuVar6[5]" identifier = (subscript_expression "ppuVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *ppuVar7;" (assignment_expression "puVar4[4] = *ppuVar7" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*ppuVar7" * identifier)) ;) (expression_statement "puVar4[5] = puVar5;" (assignment_expression "puVar4[5] = puVar5" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar13 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(iVar13 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(iVar13 + 0x3c)" * (cast_expression "(undefined4 **)(iVar13 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x3c)" ( (binary_expression "iVar13 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3;" (assignment_expression "iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3" identifier = (binary_expression "(int)puVar11 - *(int *)(iVar13 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(iVar13 + 0x38)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar13 + 0x38)" * (cast_expression "(int *)(iVar13 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x38)" ( (binary_expression "iVar13 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar13 + 0x20) << 1) {\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar13 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar13 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar13 + 0x20) << 1" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;" (assignment_expression "*(int *)(iVar13 + 0x14) = iVar14 * 0x33333338" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar14 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar13 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar13 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar13 + 0x10)" * (cast_expression "(undefined4 *)(iVar13 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar12 + 0x20)" * (cast_expression "(byte *)(iVar12 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar12 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar12 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar12 + 0x20)" * (cast_expression "(byte *)(iVar12 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_e4 << 0x1c < 0)" ( (binary_expression "iStack_e4 << 0x1c < 0" (binary_expression "iStack_e4 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;" (assignment_expression "*(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1" (pointer_expression "*(int *)(iVar13 + 0x30)" * (cast_expression "(int *)(iVar13 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x30)" ( (binary_expression "iVar13 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar13 + 0x30) + 1" (pointer_expression "*(int *)(iVar13 + 0x30)" * (cast_expression "(int *)(iVar13 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x30)" ( (binary_expression "iVar13 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_e0 != -4) && (iStack_f4 != 0))" ( (binary_expression "(iStack_e0 != -4) && (iStack_f4 != 0)" (parenthesized_expression "(iStack_e0 != -4)" ( (binary_expression "iStack_e0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_f4 != 0)" ( (binary_expression "iStack_f4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_f4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_f4 + 100) == 0" (pointer_expression "*(int *)(iStack_f4 + 100)" * (cast_expression "(int *)(iStack_f4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_f4 + 100)" ( (binary_expression "iStack_f4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_f4 + 0x60)" * (cast_expression "(int *)(iStack_f4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_f4 + 0x60)" ( (binary_expression "iStack_f4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar14 * -0x33333333 + -1" (binary_expression "iVar14 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;" (assignment_expression "*(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1" (pointer_expression "*(int *)(iStack_f4 + 100)" * (cast_expression "(int *)(iStack_f4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_f4 + 100)" ( (binary_expression "iStack_f4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_f4 + 100) + 1" (pointer_expression "*(int *)(iStack_f4 + 100)" * (cast_expression "(int *)(iStack_f4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_f4 + 100)" ( (binary_expression "iStack_f4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar21 = *(code **)(pcStack_100 + -0x7810);" (assignment_expression "pcVar21 = *(code **)(pcStack_100 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_100 + -0x7810)" * (cast_expression "(code **)(pcStack_100 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_100 + -0x7810)" ( (binary_expression "pcStack_100 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = FUN_0025578c;" (assignment_expression "pcVar22 = FUN_0025578c" identifier = identifier) ;) (expression_statement "iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;" (assignment_expression "iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_100 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_100 + -0x7fc4)" * (cast_expression "(int *)(pcStack_100 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_100 + -0x7fc4)" ( (binary_expression "pcStack_100 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_100 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_100 + -0x7924)" * (cast_expression "(int *)(pcStack_100 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_100 + -0x7924)" ( (binary_expression "pcStack_100 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_160 = pcVar21 + 0x273ab4;" (assignment_expression "pcStack_160 = pcVar21 + 0x273ab4" identifier = (binary_expression "pcVar21 + 0x273ab4" identifier + number_literal)) ;) (expression_statement "uStack_170 = uStack_110;" (assignment_expression "uStack_170 = uStack_110" identifier = identifier) ;) (expression_statement "uStack_168 = 0;" (assignment_expression "uStack_168 = 0" identifier = number_literal) ;) (expression_statement "uStack_16c = uStack_10c;" (assignment_expression "uStack_16c = uStack_10c" identifier = identifier) ;) (expression_statement "ppuStack_130 = &puStack_f8;" (assignment_expression "ppuStack_130 = &puStack_f8" identifier = (pointer_expression "&puStack_f8" & identifier)) ;) (expression_statement "iStack_12c = iVar13;" (assignment_expression "iStack_12c = iVar13" identifier = identifier) ;) (expression_statement "iStack_128 = iVar12;" (assignment_expression "iStack_128 = iVar12" identifier = identifier) ;) (expression_statement "pcStack_124 = pcVar22;" (assignment_expression "pcStack_124 = pcVar22" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar21 + 0x26c80c))(&uStack_158);" (call_expression "(**(code **)(pcVar21 + 0x26c80c))(&uStack_158)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26c80c))" ( (pointer_expression "**(code **)(pcVar21 + 0x26c80c)" * (pointer_expression "*(code **)(pcVar21 + 0x26c80c)" * (cast_expression "(code **)(pcVar21 + 0x26c80c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x26c80c)" ( (binary_expression "pcVar21 + 0x26c80c" identifier + number_literal) ))))) )) (argument_list "(&uStack_158)" ( (pointer_expression "&uStack_158" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(iVar14 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar14 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar14 + 0x3c)" * (cast_expression "(undefined4 **)(iVar14 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x3c)" ( (binary_expression "iVar14 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_134 = uStack_104;" (assignment_expression "uStack_134 = uStack_104" identifier = identifier) ;) (expression_statement "uStack_138 = uStack_108;" (assignment_expression "uStack_138 = uStack_108" identifier = identifier) ;) (if_statement "if (puVar11 == *(undefined4 **)(iVar14 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }" if (parenthesized_expression "(puVar11 == *(undefined4 **)(iVar14 + 0x40))" ( (binary_expression "puVar11 == *(undefined4 **)(iVar14 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar14 + 0x40)" * (cast_expression "(undefined4 **)(iVar14 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);" (call_expression "(**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158)" (parenthesized_expression "(**(code **)(pcStack_160 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_160 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_160 + -0x5cb0)" * (cast_expression "(code **)(pcStack_160 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_160 + -0x5cb0)" ( (binary_expression "pcStack_160 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar14 + 0x38,puVar11,&uStack_158)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_158" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(iVar14 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar14 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar14 + 0x3c)" * (cast_expression "(undefined4 **)(iVar14 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x3c)" ( (binary_expression "iVar14 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }" else (compound_statement "{\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }" { (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" identifier = identifier) ;) (expression_statement "puVar4 = &uStack_158;" (assignment_expression "puVar4 = &uStack_158" identifier = (pointer_expression "&uStack_158" & identifier)) ;) (do_statement "do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);" do (compound_statement "{\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar4 = puVar8 + 4;" (assignment_expression "puVar4 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) (expression_statement "uVar19 = puVar8[1];" (assignment_expression "uVar19 = puVar8[1]" identifier = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar8[2];" (assignment_expression "uVar15 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar8[3];" (assignment_expression "uVar3 = puVar8[3]" identifier = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar2[1] = uVar19;" (assignment_expression "puVar2[1] = uVar19" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar15;" (assignment_expression "puVar2[2] = uVar15" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[3] = uVar3;" (assignment_expression "puVar2[3] = uVar3" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar2 + 4;" (assignment_expression "puVar1 = puVar2 + 4" identifier = (binary_expression "puVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar4 != &uStack_138)" ( (binary_expression "puVar4 != &uStack_138" identifier != (pointer_expression "&uStack_138" & identifier)) )) ;) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" identifier = (binary_expression "puVar11 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar8[5];" (assignment_expression "uVar3 = puVar8[5]" identifier = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = *puVar4;" (assignment_expression "puVar2[4] = *puVar4" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar2[5] = uVar3;" (assignment_expression "puVar2[5] = uVar3" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar14 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(iVar14 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(iVar14 + 0x3c)" * (cast_expression "(undefined4 **)(iVar14 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x3c)" ( (binary_expression "iVar14 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3;" (assignment_expression "iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3" identifier = (binary_expression "(int)puVar11 - *(int *)(iVar14 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(iVar14 + 0x38)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar14 + 0x38)" * (cast_expression "(int *)(iVar14 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar14 + 0x20) << 1) {\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar14 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar14 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar14 + 0x20) << 1" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;" (assignment_expression "*(int *)(iVar14 + 0x14) = iVar12 * 0x33333338" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar12 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar14 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar14 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar14 + 0x10)" * (cast_expression "(undefined4 *)(iVar14 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;" (assignment_expression "puVar18[0x20] = puVar18[0x20] & 0xf7 | 8" (subscript_expression "puVar18[0x20]" identifier [ number_literal ]) = (binary_expression "puVar18[0x20] & 0xf7 | 8" (binary_expression "puVar18[0x20] & 0xf7" (subscript_expression "puVar18[0x20]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) (if_statement "if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_144 << 0x1c < 0)" ( (binary_expression "iStack_144 << 0x1c < 0" (binary_expression "iStack_144 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;" (assignment_expression "*(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1" (pointer_expression "*(int *)(iVar14 + 0x30)" * (cast_expression "(int *)(iVar14 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x30)" ( (binary_expression "iVar14 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar14 + 0x30) + 1" (pointer_expression "*(int *)(iVar14 + 0x30)" * (cast_expression "(int *)(iVar14 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x30)" ( (binary_expression "iVar14 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_140 != -4) && (iStack_154 != 0))" ( (binary_expression "(iStack_140 != -4) && (iStack_154 != 0)" (parenthesized_expression "(iStack_140 != -4)" ( (binary_expression "iStack_140 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_154 != 0)" ( (binary_expression "iStack_154 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_154 + 100) == 0)" ( (binary_expression "*(int *)(iStack_154 + 100) == 0" (pointer_expression "*(int *)(iStack_154 + 100)" * (cast_expression "(int *)(iStack_154 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_154 + 100)" ( (binary_expression "iStack_154 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_154 + 0x60)" * (cast_expression "(int *)(iStack_154 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_154 + 0x60)" ( (binary_expression "iStack_154 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar12 * -0x33333333 + -1" (binary_expression "iVar12 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;" (assignment_expression "*(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1" (pointer_expression "*(int *)(iStack_154 + 100)" * (cast_expression "(int *)(iStack_154 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_154 + 100)" ( (binary_expression "iStack_154 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_154 + 100) + 1" (pointer_expression "*(int *)(iStack_154 + 100)" * (cast_expression "(int *)(iStack_154 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_154 + 100)" ( (binary_expression "iStack_154 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar21 = *(code **)(pcStack_160 + -0x7810);" (assignment_expression "pcVar21 = *(code **)(pcStack_160 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_160 + -0x7810)" * (cast_expression "(code **)(pcStack_160 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_160 + -0x7810)" ( (binary_expression "pcStack_160 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;" (assignment_expression "iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c" identifier = (binary_expression "*(int *)(pcStack_160 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_160 + -0x7924)" * (cast_expression "(int *)(pcStack_160 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_160 + -0x7924)" ( (binary_expression "pcStack_160 + -0x7924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar22 = FUN_00255938;" (assignment_expression "pcVar22 = FUN_00255938" identifier = identifier) ;) (expression_statement "iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;" (assignment_expression "iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_160 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_160 + -0x7fc4)" * (cast_expression "(int *)(pcStack_160 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_160 + -0x7fc4)" ( (binary_expression "pcStack_160 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar21)(iVar12,0x231);" (call_expression "(*pcVar21)(iVar12,0x231)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(iVar12,0x231)" ( identifier , number_literal ))) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = uStack_168;" (assignment_expression "uVar3 = uStack_168" identifier = identifier) ;) (expression_statement "puStack_190 = &uStack_158;" (assignment_expression "puStack_190 = &uStack_158" identifier = (pointer_expression "&uStack_158" & identifier)) ;) (expression_statement "iStack_18c = iVar14;" (assignment_expression "iStack_18c = iVar14" identifier = identifier) ;) (expression_statement "puStack_188 = puVar18;" (assignment_expression "puStack_188 = puVar18" identifier = identifier) ;) (expression_statement "pcStack_184 = pcVar22;" (assignment_expression "pcStack_184 = pcVar22" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8);" (call_expression "(**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26e844))" ( (pointer_expression "**(code **)(pcVar21 + 0x26e844)" * (pointer_expression "*(code **)(pcVar21 + 0x26e844)" * (cast_expression "(code **)(pcVar21 + 0x26e844)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x26e844)" ( (binary_expression "pcVar21 + 0x26e844" identifier + number_literal) ))))) )) (argument_list "(&pcStack_1b8)" ( (pointer_expression "&pcStack_1b8" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(iVar12 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar12 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar12 + 0x3c)" * (cast_expression "(undefined4 **)(iVar12 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_194 = uStack_15c;" (assignment_expression "uStack_194 = uStack_15c" identifier = identifier) ;) (expression_statement "pcStack_198 = pcStack_160;" (assignment_expression "pcStack_198 = pcStack_160" identifier = identifier) ;) (if_statement "if (puVar11 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }" if (parenthesized_expression "(puVar11 == *(undefined4 **)(iVar12 + 0x40))" ( (binary_expression "puVar11 == *(undefined4 **)(iVar12 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar12 + 0x40)" * (cast_expression "(undefined4 **)(iVar12 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);" (call_expression "(**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26dc58))" ( (pointer_expression "**(code **)(pcVar21 + 0x26dc58)" * (pointer_expression "*(code **)(pcVar21 + 0x26dc58)" * (cast_expression "(code **)(pcVar21 + 0x26dc58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x26dc58)" ( (binary_expression "pcVar21 + 0x26dc58" identifier + number_literal) ))))) )) (argument_list "(iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15)" ( (binary_expression "iVar12 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&pcStack_1b8" & identifier) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar11 = *(undefined4 **)(iVar12 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar12 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar12 + 0x3c)" * (cast_expression "(undefined4 **)(iVar12 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }" else (compound_statement "{\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }" { (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" identifier = identifier) ;) (expression_statement "ppcVar10 = &pcStack_1b8;" (assignment_expression "ppcVar10 = &pcStack_1b8" identifier = (pointer_expression "&pcStack_1b8" & identifier)) ;) (do_statement "do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);" do (compound_statement "{\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "ppcVar9 = ppcVar10;" (assignment_expression "ppcVar9 = ppcVar10" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "ppcVar10 = ppcVar9 + 4;" (assignment_expression "ppcVar10 = ppcVar9 + 4" identifier = (binary_expression "ppcVar9 + 4" identifier + number_literal)) ;) (expression_statement "pcVar20 = ppcVar9[1];" (assignment_expression "pcVar20 = ppcVar9[1]" identifier = (subscript_expression "ppcVar9[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar17 = ppcVar9[2];" (assignment_expression "pcVar17 = ppcVar9[2]" identifier = (subscript_expression "ppcVar9[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar22 = ppcVar9[3];" (assignment_expression "pcVar22 = ppcVar9[3]" identifier = (subscript_expression "ppcVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *ppcVar9;" (assignment_expression "*puVar4 = *ppcVar9" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*ppcVar9" * identifier)) ;) (expression_statement "puVar4[1] = pcVar20;" (assignment_expression "puVar4[1] = pcVar20" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = pcVar17;" (assignment_expression "puVar4[2] = pcVar17" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = pcVar22;" (assignment_expression "puVar4[3] = pcVar22" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppcVar10 != &pcStack_198)" ( (binary_expression "ppcVar10 != &pcStack_198" identifier != (pointer_expression "&pcStack_198" & identifier)) )) ;) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" identifier = (binary_expression "puVar11 + 10" identifier + number_literal)) ;) (expression_statement "pcVar22 = ppcVar9[5];" (assignment_expression "pcVar22 = ppcVar9[5]" identifier = (subscript_expression "ppcVar9[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *ppcVar10;" (assignment_expression "puVar4[4] = *ppcVar10" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*ppcVar10" * identifier)) ;) (expression_statement "puVar4[5] = pcVar22;" (assignment_expression "puVar4[5] = pcVar22" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar12 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(iVar12 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(iVar12 + 0x3c)" * (cast_expression "(undefined4 **)(iVar12 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3;" (assignment_expression "iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3" identifier = (binary_expression "(int)puVar11 - *(int *)(iVar12 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(iVar12 + 0x38)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar12 + 0x38)" * (cast_expression "(int *)(iVar12 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x38)" ( (binary_expression "iVar12 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar12 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar12 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar12 + 0x20) << 1" (pointer_expression "*(int *)(iVar12 + 0x20)" * (cast_expression "(int *)(iVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;" (assignment_expression "*(int *)(iVar12 + 0x14) = iVar14 * 0x33333338" (pointer_expression "*(int *)(iVar12 + 0x14)" * (cast_expression "(int *)(iVar12 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar14 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0x10)" * (cast_expression "(undefined4 *)(iVar12 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar13 + 0x20)" * (cast_expression "(byte *)(iVar13 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar13 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar13 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar13 + 0x20)" * (cast_expression "(byte *)(iVar13 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_1a4 << 0x1c < 0)" ( (binary_expression "iStack_1a4 << 0x1c < 0" (binary_expression "iStack_1a4 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;" (assignment_expression "*(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar12 + 0x30) + 1" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_1a0 != -4) && (iStack_1b4 != 0))" ( (binary_expression "(iStack_1a0 != -4) && (iStack_1b4 != 0)" (parenthesized_expression "(iStack_1a0 != -4)" ( (binary_expression "iStack_1a0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_1b4 != 0)" ( (binary_expression "iStack_1b4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_1b4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_1b4 + 100) == 0" (pointer_expression "*(int *)(iStack_1b4 + 100)" * (cast_expression "(int *)(iStack_1b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b4 + 100)" ( (binary_expression "iStack_1b4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_1b4 + 0x60)" * (cast_expression "(int *)(iStack_1b4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b4 + 0x60)" ( (binary_expression "iStack_1b4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar14 * -0x33333333 + -1" (binary_expression "iVar14 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;" (assignment_expression "*(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1" (pointer_expression "*(int *)(iStack_1b4 + 100)" * (cast_expression "(int *)(iStack_1b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b4 + 100)" ( (binary_expression "iStack_1b4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_1b4 + 100) + 1" (pointer_expression "*(int *)(iStack_1b4 + 100)" * (cast_expression "(int *)(iStack_1b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b4 + 100)" ( (binary_expression "iStack_1b4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c);" (call_expression "(**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26c0f8))" ( (pointer_expression "**(code **)(pcVar21 + 0x26c0f8)" * (pointer_expression "*(code **)(pcVar21 + 0x26c0f8)" * (cast_expression "(code **)(pcVar21 + 0x26c0f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x26c0f8)" ( (binary_expression "pcVar21 + 0x26c0f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c)" ( (binary_expression "*(int *)(pcVar21 + 0x26b944) + 0x3574" (pointer_expression "*(int *)(pcVar21 + 0x26b944)" * (cast_expression "(int *)(pcVar21 + 0x26b944)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x26b944)" ( (binary_expression "pcVar21 + 0x26b944" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c" (pointer_expression "*(int *)(pcVar21 + 0x26bfe4)" * (cast_expression "(int *)(pcVar21 + 0x26bfe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x26bfe4)" ( (binary_expression "pcVar21 + 0x26bfe4" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* DWARF original prototype: void add_relative(Output_data_reloc<4,_true,_64,_true> * this, uint\n   type, Output_data * od, Sized_relobj<64,_true> * relobj, uint shndx, Address address, Addend\n   addend) */\n\nvoid __thiscall\ngold::Output_data_reloc<4,_true,_64,_true>::add_relative\n          (Output_data_reloc<4,_true,_64,_true> *this,uint type,Output_data *od,\n          Sized_relobj<64,_true> *relobj,uint shndx,Address address,Addend addend)\n\n{\n  undefined4 *puVar1;\n  pointer pOVar2;\n  pointer pOVar3;\n  undefined4 *puVar4;\n  int *piVar5;\n  anon_union_4_4_c82d8563_for_u1_ aVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  anon_union_4_4_c82d8563_for_u1_ *paVar9;\n  anon_union_4_4_c82d8563_for_u1_ *paVar10;\n  undefined *puVar11;\n  undefined4 *puVar12;\n  undefined **ppuVar13;\n  undefined **ppuVar14;\n  code **ppcVar15;\n  code **ppcVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int *piVar19;\n  pointer pOVar20;\n  int iVar21;\n  undefined4 *puVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  uint uVar26;\n  anon_union_4_4_c82d8563_for_u1_ aVar27;\n  undefined4 uVar28;\n  undefined *puVar29;\n  code *pcVar30;\n  code *pcVar31;\n  uint uVar32;\n  Sized_relobj<64,_true> *pSVar33;\n  undefined *puVar34;\n  undefined4 uVar35;\n  int *piVar36;\n  code *pcVar37;\n  code *pcVar38;\n  uint uVar39;\n  undefined4 uStack_728;\n  int iStack_724;\n  int iStack_714;\n  int iStack_710;\n  undefined4 uStack_708;\n  undefined4 uStack_704;\n  undefined4 *puStack_700;\n  int iStack_6fc;\n  int iStack_6f8;\n  code *pcStack_6f4;\n  int iStack_6e0;\n  undefined4 uStack_6d8;\n  undefined4 uStack_6d4;\n  undefined4 uStack_6d0;\n  undefined4 uStack_6cc;\n  undefined4 uStack_6c8;\n  undefined4 uStack_6c4;\n  code *pcStack_6c0;\n  undefined4 uStack_6b8;\n  int iStack_6b4;\n  int iStack_6a4;\n  int iStack_6a0;\n  undefined4 uStack_698;\n  undefined4 uStack_694;\n  undefined4 *puStack_690;\n  int iStack_68c;\n  int iStack_688;\n  code *pcStack_684;\n  int iStack_670;\n  undefined4 uStack_668;\n  undefined4 uStack_664;\n  undefined4 uStack_660;\n  undefined4 uStack_65c;\n  undefined4 uStack_658;\n  undefined4 uStack_654;\n  code *pcStack_650;\n  undefined4 uStack_648;\n  int iStack_644;\n  int iStack_634;\n  int iStack_630;\n  undefined4 uStack_628;\n  undefined4 uStack_624;\n  undefined4 *puStack_620;\n  int iStack_61c;\n  int iStack_618;\n  code *pcStack_614;\n  int iStack_600;\n  undefined4 uStack_5f8;\n  undefined4 uStack_5f4;\n  undefined4 uStack_5f0;\n  undefined4 uStack_5ec;\n  undefined4 uStack_5e8;\n  undefined4 uStack_5e4;\n  code *pcStack_5e0;\n  undefined4 uStack_5d8;\n  int iStack_5d4;\n  int iStack_5c4;\n  int iStack_5c0;\n  undefined4 uStack_5b8;\n  undefined4 uStack_5b4;\n  undefined4 *puStack_5b0;\n  int iStack_5ac;\n  int iStack_5a8;\n  code *pcStack_5a4;\n  int iStack_590;\n  int iStack_58c;\n  undefined4 uStack_588;\n  undefined4 uStack_584;\n  undefined4 uStack_580;\n  undefined4 uStack_57c;\n  uint uStack_578;\n  code *pcStack_570;\n  undefined4 uStack_568;\n  int iStack_564;\n  int iStack_554;\n  int iStack_550;\n  undefined4 uStack_548;\n  undefined4 uStack_544;\n  undefined4 *puStack_540;\n  int iStack_53c;\n  int iStack_538;\n  code *pcStack_534;\n  undefined4 uStack_520;\n  int iStack_51c;\n  undefined4 uStack_518;\n  undefined4 uStack_514;\n  undefined4 uStack_510;\n  undefined4 uStack_50c;\n  uint uStack_508;\n  code *pcStack_500;\n  undefined4 uStack_4f8;\n  int iStack_4f4;\n  int iStack_4e4;\n  int iStack_4e0;\n  undefined4 uStack_4d8;\n  int iStack_4d4;\n  undefined4 *puStack_4d0;\n  int iStack_4cc;\n  int iStack_4c8;\n  code *pcStack_4c4;\n  undefined4 uStack_4b0;\n  undefined4 uStack_4ac;\n  undefined4 uStack_4a8;\n  undefined4 uStack_4a4;\n  undefined4 uStack_4a0;\n  int iStack_49c;\n  undefined4 uStack_498;\n  code *pcStack_490;\n  undefined4 uStack_488;\n  int iStack_484;\n  int iStack_474;\n  int iStack_470;\n  undefined4 uStack_468;\n  int iStack_464;\n  undefined4 *puStack_460;\n  int iStack_45c;\n  int iStack_458;\n  code *pcStack_454;\n  undefined4 uStack_440;\n  undefined4 uStack_43c;\n  undefined4 uStack_438;\n  undefined4 uStack_434;\n  undefined4 uStack_430;\n  int iStack_42c;\n  code *pcStack_428;\n  undefined4 uStack_420;\n  int iStack_41c;\n  int iStack_40c;\n  int iStack_408;\n  undefined4 uStack_400;\n  int iStack_3fc;\n  undefined4 *puStack_3f8;\n  int iStack_3f4;\n  int iStack_3f0;\n  code *pcStack_3ec;\n  undefined4 uStack_3d8;\n  undefined4 uStack_3d4;\n  undefined4 uStack_3d0;\n  int iStack_3cc;\n  uint uStack_3c8;\n  code *pcStack_3c0;\n  undefined4 uStack_3b8;\n  int iStack_3b4;\n  int iStack_3a4;\n  int iStack_3a0;\n  undefined4 uStack_398;\n  int iStack_394;\n  undefined4 *puStack_390;\n  int iStack_38c;\n  int iStack_388;\n  code *pcStack_384;\n  undefined4 uStack_370;\n  undefined4 uStack_36c;\n  undefined4 uStack_368;\n  int iStack_364;\n  uint uStack_360;\n  code *pcStack_358;\n  undefined4 uStack_350;\n  int iStack_34c;\n  int iStack_33c;\n  int iStack_338;\n  undefined4 uStack_330;\n  int iStack_32c;\n  undefined4 *puStack_328;\n  int iStack_324;\n  int iStack_320;\n  code *pcStack_31c;\n  undefined4 uStack_308;\n  undefined4 uStack_304;\n  undefined4 uStack_300;\n  int iStack_2fc;\n  undefined4 uStack_2f8;\n  code *pcStack_2f0;\n  undefined4 uStack_2e8;\n  int iStack_2e4;\n  int iStack_2d4;\n  int iStack_2d0;\n  undefined4 uStack_2c8;\n  int iStack_2c4;\n  undefined4 *puStack_2c0;\n  int iStack_2bc;\n  code *pcStack_2b8;\n  code *pcStack_2b4;\n  undefined4 uStack_2a0;\n  undefined4 uStack_29c;\n  undefined4 uStack_298;\n  int iStack_294;\n  undefined4 uStack_290;\n  int iStack_28c;\n  code *pcStack_288;\n  undefined4 uStack_280;\n  int iStack_27c;\n  int iStack_26c;\n  int iStack_268;\n  undefined4 uStack_260;\n  int iStack_25c;\n  code **ppcStack_258;\n  int iStack_254;\n  code *pcStack_250;\n  code *pcStack_24c;\n  undefined4 uStack_238;\n  undefined4 uStack_234;\n  undefined4 uStack_230;\n  int iStack_22c;\n  undefined4 uStack_228;\n  int iStack_224;\n  code *pcStack_220;\n  code *pcStack_218;\n  int iStack_214;\n  int iStack_204;\n  int iStack_200;\n  code *pcStack_1f8;\n  code *pcStack_1f4;\n  code **ppcStack_1f0;\n  int iStack_1ec;\n  int iStack_1e8;\n  code *pcStack_1e4;\n  undefined4 uStack_1d0;\n  undefined4 uStack_1cc;\n  undefined4 uStack_1c8;\n  int iStack_1c4;\n  code *pcStack_1c0;\n  code *pcStack_1bc;\n  code *pcStack_1b8;\n  int iStack_1b4;\n  int iStack_1a4;\n  int iStack_1a0;\n  code *pcStack_198;\n  code *pcStack_194;\n  undefined4 *puStack_190;\n  int iStack_18c;\n  undefined *puStack_188;\n  code *pcStack_184;\n  undefined4 uStack_170;\n  undefined4 uStack_16c;\n  undefined4 uStack_168;\n  undefined4 uStack_164;\n  code *pcStack_160;\n  code *pcStack_15c;\n  undefined4 uStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined **ppuStack_130;\n  int iStack_12c;\n  int iStack_128;\n  code *pcStack_124;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  code *pcStack_100;\n  undefined *puStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined *puStack_d8;\n  undefined *puStack_d4;\n  undefined4 *puStack_d0;\n  undefined *puStack_cc;\n  Sized_relobj<64,_true> *pSStack_c8;\n  code *pcStack_c4;\n  undefined8 uStack_b0;\n  undefined4 uStack_a8;\n  undefined4 uStack_a4;\n  undefined *puStack_a0;\n  undefined *puStack_9c;\n  undefined4 uStack_98;\n  int iStack_94;\n  int iStack_84;\n  int iStack_80;\n  undefined4 uStack_78;\n  int iStack_74;\n  anon_union_4_4_c82d8563_for_u1_ *paStack_70;\n  Output_data_reloc<4,_true,_64,_true> *pOStack_6c;\n  Output_data *pOStack_68;\n  code *pcStack_64;\n  Address local_50;\n  undefined4 local_48;\n  int iStack_44;\n  anon_union_4_4_c82d8563_for_u1_ local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  Addend local_18;\n  \n  local_48 = 1;\n  local_50 = address;\n  (*(code *)PTR_Output_reloc_004c417c)(&local_38,type,relobj,shndx);\n  pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n            ._M_impl._M_finish;\n  local_18 = addend;\n  if (pOVar20 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n      super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n      ._M_impl._M_end_of_storage) {\n    (*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_true>&>_004c3590)\n              (&(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_,pOVar20,&local_38);\n    pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n              super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n              ._M_impl._M_finish;\n    pSVar33 = addend._4_4_;\n    addend = local_18;\n  }\n  else {\n    pOVar3 = pOVar20;\n    paVar10 = &local_38;\n    do {\n      paVar9 = paVar10;\n      pOVar2 = pOVar3;\n      paVar10 = paVar9 + 4;\n      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;\n      pSVar33 = paVar9[1].relobj;\n      aVar27 = paVar9[2];\n      aVar6 = paVar9[3];\n      (pOVar2->rel_).u1_ = *paVar9;\n      (pOVar2->rel_).u2_.relobj = pSVar33;\n      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar27;\n      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar6;\n    } while (paVar10 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18);\n    pOVar20 = pOVar20 + 1;\n    aVar6 = paVar9[5];\n    *(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar10;\n    *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar6;\n    (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n    super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n    ._M_impl._M_finish = pOVar20;\n  }\n  iVar21 = (int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n                ._M_impl._M_start >> 3;\n  if (-1 < *(int *)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                    super_Output_data_reloc_generic.super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.field_0x20 << 1) {\n    *(int *)((int)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4) = iVar21 * 0x33333338\n    ;\n    *(undefined4 *)\n     &(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      super_Output_section_data_build.super_Output_section_data.super_Output_data.data_size_ = 0;\n    od->field_0x20 = od->field_0x20 & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n           relative_reloc_count_ + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = add_output_section;\n  puVar11 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n  puVar34 = PTR_do_gold_unreachable_004c1a30;\n  local_18 = addend;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar11,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  puStack_a0 = puVar34 + 0x273e14;\n  uStack_a8 = 0;\n  paStack_70 = &local_38;\n  pOStack_6c = this;\n  pOStack_68 = od;\n  pcStack_64 = pcVar37;\n  uStack_b0 = local_50;\n  (**(code **)(puVar34 + 0x26cb6c))(&uStack_98);\n  puVar22 = *(undefined4 **)(puVar11 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar22 == *(undefined4 **)(puVar11 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar11 + 0x38,puVar22,&uStack_98);\n    puVar22 = *(undefined4 **)(puVar11 + 0x3c);\n    iVar21 = iStack_44;\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_98;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_78);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(puVar11 + 0x3c) = puVar22;\n  }\n  iVar23 = (int)puVar22 - *(int *)(puVar11 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar11 + 0x20) << 1) {\n    *(int *)(puVar11 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(puVar11 + 0x10) = 0;\n    *(byte *)&(pSVar33->super_Relobj).super_Object.offset_ =\n         *(byte *)&(pSVar33->super_Relobj).super_Object.offset_ & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar11 + 0x30) = *(int *)(puVar11 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(puStack_a0 + -0x7810);\n  pcVar38 = add_target_specific;\n  iVar23 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar23,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar37 + 0x273c68;\n  uStack_108 = uStack_a8;\n  uStack_104 = uStack_a4;\n  uStack_110 = uStack_b0._4_4_;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar11;\n  pSStack_c8 = pSVar33;\n  pcStack_c4 = pcVar38;\n  (**(code **)(pcVar37 + 0x26ebac))(&puStack_f8);\n  puVar22 = *(undefined4 **)(iVar23 + 0x3c);\n  puStack_d4 = puStack_9c;\n  puStack_d8 = puStack_a0;\n  if (puVar22 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar23 + 0x38,puVar22,&puStack_f8);\n    puVar22 = *(undefined4 **)(iVar23 + 0x3c);\n    puVar34 = puStack_9c;\n  }\n  else {\n    puVar1 = puVar22;\n    ppuVar14 = &puStack_f8;\n    do {\n      ppuVar13 = ppuVar14;\n      puVar12 = puVar1;\n      ppuVar14 = ppuVar13 + 4;\n      puVar34 = ppuVar13[1];\n      puVar29 = ppuVar13[2];\n      puVar11 = ppuVar13[3];\n      *puVar12 = *ppuVar13;\n      puVar12[1] = puVar34;\n      puVar12[2] = puVar29;\n      puVar12[3] = puVar11;\n      puVar1 = puVar12 + 4;\n    } while (ppuVar14 != &puStack_d8);\n    puVar22 = puVar22 + 10;\n    puVar11 = ppuVar13[5];\n    puVar12[4] = *ppuVar14;\n    puVar12[5] = puVar11;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar22;\n  }\n  iVar24 = (int)puVar22 - *(int *)(iVar23 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    *(int *)(iVar23 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(pcStack_100 + -0x7810);\n  pcVar38 = add_output_section_generic;\n  iVar24 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);\n  pcStack_160 = pcVar37 + 0x273ab4;\n  uStack_170 = uStack_110;\n  uStack_168 = 0;\n  uStack_16c = uStack_10c;\n  ppuStack_130 = &puStack_f8;\n  iStack_12c = iVar23;\n  iStack_128 = iVar21;\n  pcStack_124 = pcVar38;\n  (**(code **)(pcVar37 + 0x26c80c))(&uStack_158);\n  puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  uStack_134 = uStack_104;\n  uStack_138 = uStack_108;\n  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_158);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_158;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_138);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }\n  iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    puVar34[0x20] = puVar34[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(pcStack_160 + -0x7810);\n  iVar23 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;\n  pcVar38 = add_absolute;\n  iVar21 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar21,0x231);\n  pcStack_1c0 = pcVar37 + 0x273908;\n  uStack_1c8 = 0;\n  uStack_1cc = uStack_164;\n  uStack_1d0 = uStack_168;\n  puStack_190 = &uStack_158;\n  iStack_18c = iVar24;\n  puStack_188 = puVar34;\n  pcStack_184 = pcVar38;\n  (**(code **)(pcVar37 + 0x26e844))(&pcStack_1b8);\n  puVar22 = *(undefined4 **)(iVar21 + 0x3c);\n  pcStack_194 = pcStack_15c;\n  pcStack_198 = pcStack_160;\n  if (puVar22 == *(undefined4 **)(iVar21 + 0x40)) {\n    (**(code **)(pcStack_1c0 + -0x5cb0))(iVar21 + 0x38,puVar22,&pcStack_1b8);\n    puVar22 = *(undefined4 **)(iVar21 + 0x3c);\n    pcVar37 = pcStack_15c;\n  }\n  else {\n    puVar1 = puVar22;\n    ppcVar15 = &pcStack_1b8;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar12 = puVar1;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar37 = ppcVar16[1];\n      pcVar30 = ppcVar16[2];\n      pcVar38 = ppcVar16[3];\n      *puVar12 = *ppcVar16;\n      puVar12[1] = pcVar37;\n      puVar12[2] = pcVar30;\n      puVar12[3] = pcVar38;\n      puVar1 = puVar12 + 4;\n    } while (ppcVar15 != &pcStack_198);\n    puVar22 = puVar22 + 10;\n    pcVar38 = ppcVar16[5];\n    puVar12[4] = *ppcVar15;\n    puVar12[5] = pcVar38;\n    *(undefined4 **)(iVar21 + 0x3c) = puVar22;\n  }\n  iVar24 = (int)puVar22 - *(int *)(iVar21 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar21 + 0x20) << 1) {\n    *(int *)(iVar21 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar21 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar38 = *(code **)(pcStack_1c0 + -0x7810);\n  pcVar30 = add_output_section_relative;\n  iVar24 = *(int *)(pcStack_1c0 + -0x7fc4) + 0x3574;\n  (*pcVar38)(iVar24,0x231,*(int *)(pcStack_1c0 + -0x7924) + -0x2b1c);\n  pcStack_220 = pcVar38 + 0x273750;\n  uStack_228 = 1;\n  uStack_230 = uStack_1c8;\n  iStack_22c = iStack_1c4;\n  uStack_238 = uStack_1cc;\n  ppcStack_1f0 = &pcStack_1b8;\n  iStack_1ec = iVar21;\n  iStack_1e8 = iVar23;\n  pcStack_1e4 = pcVar30;\n  (**(code **)(pcVar38 + 0x26c4ac))(&pcStack_218);\n  puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  pcStack_1f4 = pcStack_1bc;\n  pcStack_1f8 = pcStack_1c0;\n  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_220 + -0x5cb0))(iVar24 + 0x38,puVar22,&pcStack_218);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n    pcVar38 = pcStack_1bc;\n  }\n  else {\n    puVar1 = puVar22;\n    ppcVar15 = &pcStack_218;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar12 = puVar1;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar38 = ppcVar16[1];\n      pcVar31 = ppcVar16[2];\n      pcVar30 = ppcVar16[3];\n      *puVar12 = *ppcVar16;\n      puVar12[1] = pcVar38;\n      puVar12[2] = pcVar31;\n      puVar12[3] = pcVar30;\n      puVar1 = puVar12 + 4;\n    } while (ppcVar15 != &pcStack_1f8);\n    puVar22 = puVar22 + 10;\n    pcVar30 = ppcVar16[5];\n    puVar12[4] = *ppcVar15;\n    puVar12[5] = pcVar30;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }\n  iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    pcVar37[0x20] = (code)((byte)pcVar37[0x20] & 0xf7 | 8);\n    if (iStack_204 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_200 != -4) && (iStack_214 != 0)) {\n      if (*(int *)(iStack_214 + 100) == 0) {\n        *(int *)(iStack_214 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_214 + 100) = *(int *)(iStack_214 + 100) + 1;\n    }\n    return;\n  }\n  pcVar30 = *(code **)(pcStack_220 + -0x7810);\n  pcVar31 = add_output_section_generic;\n  iVar21 = *(int *)(pcStack_220 + -0x7fc4) + 0x3574;\n  (*pcVar30)(iVar21,0x231,*(int *)(pcStack_220 + -0x7924) + -0x2b1c);\n  pcStack_288 = pcVar30 + 0x273594;\n  uStack_298 = uStack_230;\n  uStack_290 = 0;\n  iStack_294 = iStack_22c;\n  uStack_2a0 = uStack_234;\n  ppcStack_258 = &pcStack_218;\n  iStack_254 = iVar24;\n  pcStack_250 = pcVar37;\n  pcStack_24c = pcVar31;\n  (**(code **)(pcVar30 + 0x26c2f0))(&uStack_280);\n  puVar22 = *(undefined4 **)(iVar21 + 0x3c);\n  iStack_25c = iStack_224;\n  uStack_260 = uStack_228;\n  if (puVar22 == *(undefined4 **)(iVar21 + 0x40)) {\n    (**(code **)(pcStack_288 + -0x5cb0))(iVar21 + 0x38,puVar22,&uStack_280);\n    puVar22 = *(undefined4 **)(iVar21 + 0x3c);\n    iVar23 = iStack_224;\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_280;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_260);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar21 + 0x3c) = puVar22;\n  }\n  iVar24 = (int)puVar22 - *(int *)(iVar21 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar21 + 0x20) << 1) {\n    *(int *)(iVar21 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar21 + 0x10) = 0;\n    pcVar38[0x20] = (code)((byte)pcVar38[0x20] & 0xf7 | 8);\n    if (iStack_26c << 0x1c < 0) {\n      *(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;\n    }\n    if ((iStack_268 != -4) && (iStack_27c != 0)) {\n      if (*(int *)(iStack_27c + 100) == 0) {\n        *(int *)(iStack_27c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_27c + 100) = *(int *)(iStack_27c + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(pcStack_288 + -0x7810);\n  pcVar30 = add_output_section;\n  iVar24 = *(int *)(pcStack_288 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_288 + -0x7924) + -0x2b1c);\n  pcStack_2f0 = pcVar37 + 0x2733dc;\n  uStack_300 = uStack_298;\n  uStack_2f8 = 0;\n  iStack_2fc = iStack_294;\n  uStack_308 = uStack_29c;\n  puStack_2c0 = &uStack_280;\n  iStack_2bc = iVar21;\n  pcStack_2b8 = pcVar38;\n  pcStack_2b4 = pcVar30;\n  (**(code **)(pcVar37 + 0x26c138))(&uStack_2e8);\n  puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  iStack_2c4 = iStack_28c;\n  uStack_2c8 = uStack_290;\n  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_2f0 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_2e8);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n    iVar21 = iStack_28c;\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_2e8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_2c8);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }\n  iVar25 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_2d4 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_2d0 != -4) && (iStack_2e4 != 0)) {\n      if (*(int *)(iStack_2e4 + 100) == 0) {\n        *(int *)(iStack_2e4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_2e4 + 100) = *(int *)(iStack_2e4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(pcStack_2f0 + -0x7810);\n  pcVar38 = add_global;\n  iVar25 = *(int *)(pcStack_2f0 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar25,0x231,*(int *)(pcStack_2f0 + -0x7924) + -0x2b1c);\n  pcStack_358 = pcVar37 + 0x273224;\n  uStack_370 = uStack_308;\n  uStack_360 = 0;\n  iStack_364 = 0;\n  uStack_368 = 0;\n  uStack_36c = uStack_304;\n  puStack_328 = &uStack_2e8;\n  iStack_324 = iVar24;\n  iStack_320 = iVar23;\n  pcStack_31c = pcVar38;\n  (**(code **)(pcVar37 + 0x26bc34))(&uStack_350);\n  puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  iStack_32c = iStack_2fc;\n  uStack_330 = uStack_300;\n  if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {\n    iVar23 = iStack_2fc;\n    (**(code **)(pcStack_358 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_350);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_350;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_330);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }\n  iVar24 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar25 + 0x20) << 1) {\n    *(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_33c << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_338 != -4) && (iStack_34c != 0)) {\n      if (*(int *)(iStack_34c + 100) == 0) {\n        *(int *)(iStack_34c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_34c + 100) = *(int *)(iStack_34c + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(pcStack_358 + -0x7810);\n  pcVar38 = add_global_relative;\n  iVar24 = *(int *)(pcStack_358 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_358 + -0x7924) + -0x2b1c);\n  pcStack_3c0 = pcVar37 + 0x273070;\n  uStack_3c8 = uStack_360 & 0xff;\n  iStack_3cc = 1;\n  uStack_3d0 = 1;\n  uStack_3d8 = uStack_370;\n  uStack_3d4 = uStack_36c;\n  puStack_390 = &uStack_350;\n  iStack_38c = iVar25;\n  iStack_388 = iVar21;\n  pcStack_384 = pcVar38;\n  (**(code **)(pcVar37 + 0x26ba80))(&uStack_3b8);\n  puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  iStack_394 = iStack_364;\n  uStack_398 = uStack_368;\n  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    iVar21 = iStack_364;\n    (**(code **)(pcStack_3c0 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_3b8);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_3b8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_398);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }\n  iVar25 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_3a4 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_3a0 != -4) && (iStack_3b4 != 0)) {\n      if (*(int *)(iStack_3b4 + 100) == 0) {\n        *(int *)(iStack_3b4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_3b4 + 100) = *(int *)(iStack_3b4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(pcStack_3c0 + -0x7810);\n  pcVar38 = add_symbolless_global_addend;\n  iVar25 = *(int *)(pcStack_3c0 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar25,0x231,*(int *)(pcStack_3c0 + -0x7924) + -0x2b1c);\n  pcStack_428 = pcVar37 + 0x272eb4;\n  uStack_434 = 1;\n  uStack_430 = 0;\n  uStack_438 = 0;\n  uStack_43c = uStack_3d4;\n  uStack_440 = uStack_3d8;\n  puStack_3f8 = &uStack_3b8;\n  iStack_3f4 = iVar24;\n  iStack_3f0 = iVar23;\n  pcStack_3ec = pcVar38;\n  (**(code **)(pcVar37 + 0x26b8c4))(&uStack_420);\n  puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  iStack_3fc = iStack_3cc;\n  uStack_400 = uStack_3d0;\n  if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {\n    iVar23 = iStack_3cc;\n    (**(code **)(pcStack_428 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_420);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_420;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_400);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }\n  iVar24 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar25 + 0x20) << 1) {\n    *(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_40c << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_408 != -4) && (iStack_41c != 0)) {\n      if (*(int *)(iStack_41c + 100) == 0) {\n        *(int *)(iStack_41c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_41c + 100) = *(int *)(iStack_41c + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(pcStack_428 + -0x7810);\n  pcVar38 = add_global;\n  iVar24 = *(int *)(pcStack_428 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_428 + -0x7924) + -0x2b1c);\n  pcStack_490 = pcVar37 + 0x272cfc;\n  uStack_4a8 = uStack_438;\n  uStack_498 = 0;\n  iStack_49c = 0;\n  uStack_4a0 = 0;\n  uStack_4a4 = uStack_434;\n  uStack_4b0 = uStack_43c;\n  puStack_460 = &uStack_420;\n  iStack_45c = iVar25;\n  iStack_458 = iVar21;\n  pcStack_454 = pcVar38;\n  (**(code **)(pcVar37 + 0x26b910))(&uStack_488);\n  puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  iStack_464 = iStack_42c;\n  uStack_468 = uStack_430;\n  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_490 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_488);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n    iVar21 = iStack_42c;\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_488;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_468);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }\n  iVar25 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_474 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_470 != -4) && (iStack_484 != 0)) {\n      if (*(int *)(iStack_484 + 100) == 0) {\n        *(int *)(iStack_484 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_484 + 100) = *(int *)(iStack_484 + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(pcStack_490 + -0x7810);\n  pcVar38 = add_symbolless_global_addend;\n  iVar25 = *(int *)(pcStack_490 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar25,0x231,*(int *)(pcStack_490 + -0x7924) + -0x2b1c);\n  pcStack_500 = pcVar37 + 0x272b3c;\n  uStack_50c = 1;\n  uStack_518 = uStack_4a8;\n  uStack_508 = 0;\n  uStack_510 = 0;\n  uStack_514 = uStack_4a4;\n  uStack_520 = uStack_4ac;\n  puStack_4d0 = &uStack_488;\n  iStack_4cc = iVar24;\n  iStack_4c8 = iVar23;\n  pcStack_4c4 = pcVar38;\n  (**(code **)(pcVar37 + 0x26b750))(&uStack_4f8);\n  puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  iStack_4d4 = iStack_49c;\n  uStack_4d8 = uStack_4a0;\n  if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {\n    iVar23 = iStack_49c;\n    (**(code **)(pcStack_500 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_4f8);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_4f8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_4d8);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }\n  iVar24 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar25 + 0x20) << 1) {\n    *(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_4e4 << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_4e0 != -4) && (iStack_4f4 != 0)) {\n      if (*(int *)(iStack_4f4 + 100) == 0) {\n        *(int *)(iStack_4f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_4f4 + 100) = *(int *)(iStack_4f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(pcStack_500 + -0x7810);\n  pcVar38 = add_global_relative;\n  iVar24 = *(int *)(pcStack_500 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_500 + -0x7924) + -0x2b1c);\n  pcStack_570 = pcVar37 + 0x272978;\n  uStack_578 = uStack_508 & 0xff;\n  uStack_57c = 1;\n  uStack_580 = 1;\n  uStack_588 = uStack_518;\n  uStack_584 = uStack_514;\n  iStack_590 = iStack_51c;\n  puStack_540 = &uStack_4f8;\n  iStack_53c = iVar25;\n  iStack_538 = iVar21;\n  pcStack_534 = pcVar38;\n  (**(code **)(pcVar37 + 0x26b58c))(&uStack_568);\n  puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  uStack_544 = uStack_50c;\n  uStack_548 = uStack_510;\n  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_570 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_568);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_568;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_548);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }\n  iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_554 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_550 != -4) && (iStack_564 != 0)) {\n      if (*(int *)(iStack_564 + 100) == 0) {\n        *(int *)(iStack_564 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_564 + 100) = *(int *)(iStack_564 + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(pcStack_570 + -0x7810);\n  pcVar38 = add_local_section;\n  iVar25 = *(int *)(pcStack_570 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar25,0x231,*(int *)(pcStack_570 + -0x7924) + -0x2b1c);\n  iVar21 = iStack_590;\n  pcStack_5e0 = pcVar37 + 0x2727b0;\n  uStack_5e8 = 1;\n  uStack_5f8 = uStack_588;\n  uStack_5e4 = 0;\n  uStack_5ec = 0;\n  uStack_5f0 = 0;\n  uStack_5f4 = uStack_584;\n  iStack_600 = iStack_58c;\n  puStack_5b0 = &uStack_568;\n  iStack_5ac = iVar24;\n  iStack_5a8 = iVar23;\n  pcStack_5a4 = pcVar38;\n  (**(code **)(pcVar37 + 0x26b1f8))(&uStack_5d8);\n  puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  uStack_5b4 = uStack_57c;\n  uStack_5b8 = uStack_580;\n  if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {\n    (**(code **)(pcStack_5e0 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_5d8);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_5d8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_5b8);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }\n  iVar23 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar25 + 0x20) << 1) {\n    *(int *)(iVar25 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_5c4 << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_5c0 != -4) && (iStack_5d4 != 0)) {\n      if (*(int *)(iStack_5d4 + 100) == 0) {\n        *(int *)(iStack_5d4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_5d4 + 100) = *(int *)(iStack_5d4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(pcStack_5e0 + -0x7810);\n  pcVar38 = add_local_section;\n  iVar24 = *(int *)(pcStack_5e0 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_5e0 + -0x7924) + -0x2b1c);\n  iVar23 = iStack_600;\n  pcStack_650 = pcVar37 + 0x2725ec;\n  iStack_618 = iVar21;\n  uStack_658 = 1;\n  uStack_654 = 0;\n  uStack_65c = 0;\n  uStack_660 = 0;\n  uStack_664 = uStack_5f4;\n  uStack_668 = uStack_5f8;\n  iStack_670 = iStack_600;\n  puStack_620 = &uStack_5d8;\n  iStack_61c = iVar25;\n  pcStack_614 = pcVar38;\n  (**(code **)(pcVar37 + 0x26b198))(&uStack_648);\n  puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  uStack_624 = uStack_5ec;\n  uStack_628 = uStack_5f0;\n  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_650 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_648);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_648;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_628);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }\n  iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_634 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_630 != -4) && (iStack_644 != 0)) {\n      if (*(int *)(iStack_644 + 100) == 0) {\n        *(int *)(iStack_644 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_644 + 100) = *(int *)(iStack_644 + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(pcStack_650 + -0x7810);\n  pcVar38 = add_local;\n  iVar25 = *(int *)(pcStack_650 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar25,0x231,*(int *)(pcStack_650 + -0x7924) + -0x2b1c);\n  iVar21 = iStack_670;\n  pcStack_6c0 = pcVar37 + 0x27242c;\n  iStack_688 = iVar23;\n  uStack_6d8 = uStack_668;\n  uStack_6c4 = 0;\n  uStack_6c8 = 0;\n  uStack_6cc = 0;\n  uStack_6d0 = 0;\n  uStack_6d4 = uStack_664;\n  iStack_6e0 = iStack_670;\n  puStack_690 = &uStack_648;\n  iStack_68c = iVar24;\n  pcStack_684 = pcVar38;\n  (**(code **)(pcVar37 + 0x26afd8))(&uStack_6b8);\n  puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  uStack_694 = uStack_65c;\n  uStack_698 = uStack_660;\n  if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {\n    (**(code **)(pcStack_6c0 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_6b8);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_6b8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_698);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }\n  iVar23 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar25 + 0x20) << 1) {\n    *(int *)(iVar25 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_6a4 << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_6a0 != -4) && (iStack_6b4 != 0)) {\n      if (*(int *)(iStack_6b4 + 100) == 0) {\n        *(int *)(iStack_6b4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_6b4 + 100) = *(int *)(iStack_6b4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar37 = *(code **)(pcStack_6c0 + -0x7810);\n  pcVar38 = add_local_relative;\n  iVar24 = *(int *)(pcStack_6c0 + -0x7fc4) + 0x3574;\n  (*pcVar37)(iVar24,0x231,*(int *)(pcStack_6c0 + -0x7924) + -0x2b1c);\n  iVar23 = iStack_6e0;\n  iStack_6f8 = iVar21;\n  iVar21 = iStack_6e0;\n  puStack_700 = &uStack_6b8;\n  iStack_6fc = iVar25;\n  pcStack_6f4 = pcVar38;\n  (**(code **)(pcVar37 + 0x26ae1c))(&uStack_728);\n  puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  uStack_704 = uStack_6cc;\n  uStack_708 = uStack_6d0;\n  if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcVar37 + 0x26c5c0))(iVar24 + 0x38,puVar22,&uStack_728,uStack_6cc,iVar21);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_728;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_708);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }\n  iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_714 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_710 != -4) && (iStack_724 != 0)) {\n      if (*(int *)(iStack_724 + 100) == 0) {\n        *(int *)(iStack_724 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_724 + 100) = *(int *)(iStack_724 + 100) + 1;\n    }\n    return;\n  }\n  uVar26 = 0x231;\n  pcVar38 = *(code **)(pcVar37 + 0x26aa60);\n  piVar18 = (int *)(*(int *)(pcVar37 + 0x26a2ac) + 0x3574);\n  (*pcVar38)(piVar18,0x231,*(int *)(pcVar37 + 0x26a94c) + -0x2b1c);\n  if (uVar26 == 1) {\n    piVar5 = piVar18 + 6;\n    piVar18[6] = 0;\n  }\n  else {\n    piVar5 = (int *)(*(code *)(*(int *)(pcVar38 + 0x26cd70) + 0x341c))(uVar26);\n  }\n  piVar8 = (int *)piVar18[2];\n  piVar18[2] = 0;\n  if (piVar8 != (int *)0x0) {\n    uVar32 = 0;\n    do {\n      while( true ) {\n        if (uVar26 == 0) {\n          trap(7);\n        }\n        uVar39 = (uint)piVar8[10] % uVar26;\n        piVar19 = piVar5 + uVar39;\n        piVar36 = (int *)*piVar8;\n        if ((int *)*piVar19 == (int *)0x0) break;\n        *piVar8 = *(int *)*piVar19;\n        *(int **)*piVar19 = piVar8;\n        uVar39 = uVar32;\nLAB_00257210:\n        piVar8 = piVar36;\n        uVar32 = uVar39;\n        if (piVar36 == (int *)0x0) goto LAB_0025726c;\n      }\n      *piVar8 = piVar18[2];\n      piVar18[2] = (int)piVar8;\n      *piVar19 = (int)(piVar18 + 2);\n      if (*piVar8 == 0) goto LAB_00257210;\n      piVar5[uVar32] = (int)piVar8;\n      piVar8 = piVar36;\n      uVar32 = uVar39;\n    } while (piVar36 != (int *)0x0);\n  }\nLAB_0025726c:\n  if (piVar18 + 6 != (int *)*piVar18) {\n    (**(code **)(pcVar38 + 0x26a168))();\n  }\n  piVar18[1] = uVar26;\n  *piVar18 = (int)piVar5;\n  return;\n}\n\n" comment comment comment comment (declaration "void __thiscall\ngold::Output_data_reloc<4,_true,_64,_true>::add_relative\n          (Output_data_reloc<4,_true,_64,_true> *this,uint type,Output_data *od,\n          Sized_relobj<64,_true> *relobj,uint shndx,Address address,Addend addend)\n\n{\n  undefined4 *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<4" < number_literal) , identifier , identifier , (ERROR "_true>::add_relative\n          (Output_data_reloc<4,_true,_64,_true> *this,uint type,Output_data *od,\n          Sized_relobj<64,_true> *relobj,uint shndx,Address address,Addend addend)\n\n{\n  undefined4" identifier > : : (function_declarator "add_relative\n          (Output_data_reloc<4,_true,_64,_true> *this,uint type,Output_data *od,\n          Sized_relobj<64,_true> *relobj,uint shndx,Address address,Addend addend)" identifier (parameter_list "(Output_data_reloc<4,_true,_64,_true> *this,uint type,Output_data *od,\n          Sized_relobj<64,_true> *relobj,uint shndx,Address address,Addend addend)" ( (parameter_declaration "Output_data_reloc" type_identifier) (ERROR "<4" < number_literal) , (parameter_declaration "_true" type_identifier) , (parameter_declaration "_64" type_identifier) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint type" type_identifier identifier) , (parameter_declaration "Output_data *od" type_identifier (pointer_declarator "*od" * identifier)) , (parameter_declaration "Sized_relobj" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *relobj" type_identifier (ERROR ">" >) (pointer_declarator "*relobj" * identifier)) , (parameter_declaration "uint shndx" type_identifier identifier) , (parameter_declaration "Address address" type_identifier identifier) , (parameter_declaration "Addend addend" type_identifier identifier) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "pointer pOVar2;" type_identifier identifier ;) (declaration "pointer pOVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "anon_union_4_4_c82d8563_for_u1_ aVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *paVar9;" type_identifier (pointer_declarator "*paVar9" * identifier) ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *paVar10;" type_identifier (pointer_declarator "*paVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined **ppuVar13;" type_identifier (pointer_declarator "**ppuVar13" * (pointer_declarator "*ppuVar13" * identifier)) ;) (declaration "undefined **ppuVar14;" type_identifier (pointer_declarator "**ppuVar14" * (pointer_declarator "*ppuVar14" * identifier)) ;) (declaration "code **ppcVar15;" type_identifier (pointer_declarator "**ppcVar15" * (pointer_declarator "*ppcVar15" * identifier)) ;) (declaration "code **ppcVar16;" type_identifier (pointer_declarator "**ppcVar16" * (pointer_declarator "*ppcVar16" * identifier)) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "pointer pOVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ aVar27;" type_identifier identifier ;) (declaration "undefined4 uVar28;" type_identifier identifier ;) (declaration "undefined *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "code *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "code *pcVar31;" type_identifier (pointer_declarator "*pcVar31" * identifier) ;) (declaration "uint uVar32;" type_identifier identifier ;) (expression_statement "Sized_relobj<64,_true> *pSVar33;" (update_expression "Sized_relobj<64,_true> *pSVar33" (binary_expression "Sized_relobj<64,_true> *pSVar33" (binary_expression "Sized_relobj<64" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*pSVar33" * identifier)) --) ;) (declaration "undefined *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "undefined4 uVar35;" type_identifier identifier ;) (declaration "int *piVar36;" primitive_type (pointer_declarator "*piVar36" * identifier) ;) (declaration "code *pcVar37;" type_identifier (pointer_declarator "*pcVar37" * identifier) ;) (declaration "code *pcVar38;" type_identifier (pointer_declarator "*pcVar38" * identifier) ;) (declaration "uint uVar39;" type_identifier identifier ;) (declaration "undefined4 uStack_728;" type_identifier identifier ;) (declaration "int iStack_724;" primitive_type identifier ;) (declaration "int iStack_714;" primitive_type identifier ;) (declaration "int iStack_710;" primitive_type identifier ;) (declaration "undefined4 uStack_708;" type_identifier identifier ;) (declaration "undefined4 uStack_704;" type_identifier identifier ;) (declaration "undefined4 *puStack_700;" type_identifier (pointer_declarator "*puStack_700" * identifier) ;) (declaration "int iStack_6fc;" primitive_type identifier ;) (declaration "int iStack_6f8;" primitive_type identifier ;) (declaration "code *pcStack_6f4;" type_identifier (pointer_declarator "*pcStack_6f4" * identifier) ;) (declaration "int iStack_6e0;" primitive_type identifier ;) (declaration "undefined4 uStack_6d8;" type_identifier identifier ;) (declaration "undefined4 uStack_6d4;" type_identifier identifier ;) (declaration "undefined4 uStack_6d0;" type_identifier identifier ;) (declaration "undefined4 uStack_6cc;" type_identifier identifier ;) (declaration "undefined4 uStack_6c8;" type_identifier identifier ;) (declaration "undefined4 uStack_6c4;" type_identifier identifier ;) (declaration "code *pcStack_6c0;" type_identifier (pointer_declarator "*pcStack_6c0" * identifier) ;) (declaration "undefined4 uStack_6b8;" type_identifier identifier ;) (declaration "int iStack_6b4;" primitive_type identifier ;) (declaration "int iStack_6a4;" primitive_type identifier ;) (declaration "int iStack_6a0;" primitive_type identifier ;) (declaration "undefined4 uStack_698;" type_identifier identifier ;) (declaration "undefined4 uStack_694;" type_identifier identifier ;) (declaration "undefined4 *puStack_690;" type_identifier (pointer_declarator "*puStack_690" * identifier) ;) (declaration "int iStack_68c;" primitive_type identifier ;) (declaration "int iStack_688;" primitive_type identifier ;) (declaration "code *pcStack_684;" type_identifier (pointer_declarator "*pcStack_684" * identifier) ;) (declaration "int iStack_670;" primitive_type identifier ;) (declaration "undefined4 uStack_668;" type_identifier identifier ;) (declaration "undefined4 uStack_664;" type_identifier identifier ;) (declaration "undefined4 uStack_660;" type_identifier identifier ;) (declaration "undefined4 uStack_65c;" type_identifier identifier ;) (declaration "undefined4 uStack_658;" type_identifier identifier ;) (declaration "undefined4 uStack_654;" type_identifier identifier ;) (declaration "code *pcStack_650;" type_identifier (pointer_declarator "*pcStack_650" * identifier) ;) (declaration "undefined4 uStack_648;" type_identifier identifier ;) (declaration "int iStack_644;" primitive_type identifier ;) (declaration "int iStack_634;" primitive_type identifier ;) (declaration "int iStack_630;" primitive_type identifier ;) (declaration "undefined4 uStack_628;" type_identifier identifier ;) (declaration "undefined4 uStack_624;" type_identifier identifier ;) (declaration "undefined4 *puStack_620;" type_identifier (pointer_declarator "*puStack_620" * identifier) ;) (declaration "int iStack_61c;" primitive_type identifier ;) (declaration "int iStack_618;" primitive_type identifier ;) (declaration "code *pcStack_614;" type_identifier (pointer_declarator "*pcStack_614" * identifier) ;) (declaration "int iStack_600;" primitive_type identifier ;) (declaration "undefined4 uStack_5f8;" type_identifier identifier ;) (declaration "undefined4 uStack_5f4;" type_identifier identifier ;) (declaration "undefined4 uStack_5f0;" type_identifier identifier ;) (declaration "undefined4 uStack_5ec;" type_identifier identifier ;) (declaration "undefined4 uStack_5e8;" type_identifier identifier ;) (declaration "undefined4 uStack_5e4;" type_identifier identifier ;) (declaration "code *pcStack_5e0;" type_identifier (pointer_declarator "*pcStack_5e0" * identifier) ;) (declaration "undefined4 uStack_5d8;" type_identifier identifier ;) (declaration "int iStack_5d4;" primitive_type identifier ;) (declaration "int iStack_5c4;" primitive_type identifier ;) (declaration "int iStack_5c0;" primitive_type identifier ;) (declaration "undefined4 uStack_5b8;" type_identifier identifier ;) (declaration "undefined4 uStack_5b4;" type_identifier identifier ;) (declaration "undefined4 *puStack_5b0;" type_identifier (pointer_declarator "*puStack_5b0" * identifier) ;) (declaration "int iStack_5ac;" primitive_type identifier ;) (declaration "int iStack_5a8;" primitive_type identifier ;) (declaration "code *pcStack_5a4;" type_identifier (pointer_declarator "*pcStack_5a4" * identifier) ;) (declaration "int iStack_590;" primitive_type identifier ;) (declaration "int iStack_58c;" primitive_type identifier ;) (declaration "undefined4 uStack_588;" type_identifier identifier ;) (declaration "undefined4 uStack_584;" type_identifier identifier ;) (declaration "undefined4 uStack_580;" type_identifier identifier ;) (declaration "undefined4 uStack_57c;" type_identifier identifier ;) (declaration "uint uStack_578;" type_identifier identifier ;) (declaration "code *pcStack_570;" type_identifier (pointer_declarator "*pcStack_570" * identifier) ;) (declaration "undefined4 uStack_568;" type_identifier identifier ;) (declaration "int iStack_564;" primitive_type identifier ;) (declaration "int iStack_554;" primitive_type identifier ;) (declaration "int iStack_550;" primitive_type identifier ;) (declaration "undefined4 uStack_548;" type_identifier identifier ;) (declaration "undefined4 uStack_544;" type_identifier identifier ;) (declaration "undefined4 *puStack_540;" type_identifier (pointer_declarator "*puStack_540" * identifier) ;) (declaration "int iStack_53c;" primitive_type identifier ;) (declaration "int iStack_538;" primitive_type identifier ;) (declaration "code *pcStack_534;" type_identifier (pointer_declarator "*pcStack_534" * identifier) ;) (declaration "undefined4 uStack_520;" type_identifier identifier ;) (declaration "int iStack_51c;" primitive_type identifier ;) (declaration "undefined4 uStack_518;" type_identifier identifier ;) (declaration "undefined4 uStack_514;" type_identifier identifier ;) (declaration "undefined4 uStack_510;" type_identifier identifier ;) (declaration "undefined4 uStack_50c;" type_identifier identifier ;) (declaration "uint uStack_508;" type_identifier identifier ;) (declaration "code *pcStack_500;" type_identifier (pointer_declarator "*pcStack_500" * identifier) ;) (declaration "undefined4 uStack_4f8;" type_identifier identifier ;) (declaration "int iStack_4f4;" primitive_type identifier ;) (declaration "int iStack_4e4;" primitive_type identifier ;) (declaration "int iStack_4e0;" primitive_type identifier ;) (declaration "undefined4 uStack_4d8;" type_identifier identifier ;) (declaration "int iStack_4d4;" primitive_type identifier ;) (declaration "undefined4 *puStack_4d0;" type_identifier (pointer_declarator "*puStack_4d0" * identifier) ;) (declaration "int iStack_4cc;" primitive_type identifier ;) (declaration "int iStack_4c8;" primitive_type identifier ;) (declaration "code *pcStack_4c4;" type_identifier (pointer_declarator "*pcStack_4c4" * identifier) ;) (declaration "undefined4 uStack_4b0;" type_identifier identifier ;) (declaration "undefined4 uStack_4ac;" type_identifier identifier ;) (declaration "undefined4 uStack_4a8;" type_identifier identifier ;) (declaration "undefined4 uStack_4a4;" type_identifier identifier ;) (declaration "undefined4 uStack_4a0;" type_identifier identifier ;) (declaration "int iStack_49c;" primitive_type identifier ;) (declaration "undefined4 uStack_498;" type_identifier identifier ;) (declaration "code *pcStack_490;" type_identifier (pointer_declarator "*pcStack_490" * identifier) ;) (declaration "undefined4 uStack_488;" type_identifier identifier ;) (declaration "int iStack_484;" primitive_type identifier ;) (declaration "int iStack_474;" primitive_type identifier ;) (declaration "int iStack_470;" primitive_type identifier ;) (declaration "undefined4 uStack_468;" type_identifier identifier ;) (declaration "int iStack_464;" primitive_type identifier ;) (declaration "undefined4 *puStack_460;" type_identifier (pointer_declarator "*puStack_460" * identifier) ;) (declaration "int iStack_45c;" primitive_type identifier ;) (declaration "int iStack_458;" primitive_type identifier ;) (declaration "code *pcStack_454;" type_identifier (pointer_declarator "*pcStack_454" * identifier) ;) (declaration "undefined4 uStack_440;" type_identifier identifier ;) (declaration "undefined4 uStack_43c;" type_identifier identifier ;) (declaration "undefined4 uStack_438;" type_identifier identifier ;) (declaration "undefined4 uStack_434;" type_identifier identifier ;) (declaration "undefined4 uStack_430;" type_identifier identifier ;) (declaration "int iStack_42c;" primitive_type identifier ;) (declaration "code *pcStack_428;" type_identifier (pointer_declarator "*pcStack_428" * identifier) ;) (declaration "undefined4 uStack_420;" type_identifier identifier ;) (declaration "int iStack_41c;" primitive_type identifier ;) (declaration "int iStack_40c;" primitive_type identifier ;) (declaration "int iStack_408;" primitive_type identifier ;) (declaration "undefined4 uStack_400;" type_identifier identifier ;) (declaration "int iStack_3fc;" primitive_type identifier ;) (declaration "undefined4 *puStack_3f8;" type_identifier (pointer_declarator "*puStack_3f8" * identifier) ;) (declaration "int iStack_3f4;" primitive_type identifier ;) (declaration "int iStack_3f0;" primitive_type identifier ;) (declaration "code *pcStack_3ec;" type_identifier (pointer_declarator "*pcStack_3ec" * identifier) ;) (declaration "undefined4 uStack_3d8;" type_identifier identifier ;) (declaration "undefined4 uStack_3d4;" type_identifier identifier ;) (declaration "undefined4 uStack_3d0;" type_identifier identifier ;) (declaration "int iStack_3cc;" primitive_type identifier ;) (declaration "uint uStack_3c8;" type_identifier identifier ;) (declaration "code *pcStack_3c0;" type_identifier (pointer_declarator "*pcStack_3c0" * identifier) ;) (declaration "undefined4 uStack_3b8;" type_identifier identifier ;) (declaration "int iStack_3b4;" primitive_type identifier ;) (declaration "int iStack_3a4;" primitive_type identifier ;) (declaration "int iStack_3a0;" primitive_type identifier ;) (declaration "undefined4 uStack_398;" type_identifier identifier ;) (declaration "int iStack_394;" primitive_type identifier ;) (declaration "undefined4 *puStack_390;" type_identifier (pointer_declarator "*puStack_390" * identifier) ;) (declaration "int iStack_38c;" primitive_type identifier ;) (declaration "int iStack_388;" primitive_type identifier ;) (declaration "code *pcStack_384;" type_identifier (pointer_declarator "*pcStack_384" * identifier) ;) (declaration "undefined4 uStack_370;" type_identifier identifier ;) (declaration "undefined4 uStack_36c;" type_identifier identifier ;) (declaration "undefined4 uStack_368;" type_identifier identifier ;) (declaration "int iStack_364;" primitive_type identifier ;) (declaration "uint uStack_360;" type_identifier identifier ;) (declaration "code *pcStack_358;" type_identifier (pointer_declarator "*pcStack_358" * identifier) ;) (declaration "undefined4 uStack_350;" type_identifier identifier ;) (declaration "int iStack_34c;" primitive_type identifier ;) (declaration "int iStack_33c;" primitive_type identifier ;) (declaration "int iStack_338;" primitive_type identifier ;) (declaration "undefined4 uStack_330;" type_identifier identifier ;) (declaration "int iStack_32c;" primitive_type identifier ;) (declaration "undefined4 *puStack_328;" type_identifier (pointer_declarator "*puStack_328" * identifier) ;) (declaration "int iStack_324;" primitive_type identifier ;) (declaration "int iStack_320;" primitive_type identifier ;) (declaration "code *pcStack_31c;" type_identifier (pointer_declarator "*pcStack_31c" * identifier) ;) (declaration "undefined4 uStack_308;" type_identifier identifier ;) (declaration "undefined4 uStack_304;" type_identifier identifier ;) (declaration "undefined4 uStack_300;" type_identifier identifier ;) (declaration "int iStack_2fc;" primitive_type identifier ;) (declaration "undefined4 uStack_2f8;" type_identifier identifier ;) (declaration "code *pcStack_2f0;" type_identifier (pointer_declarator "*pcStack_2f0" * identifier) ;) (declaration "undefined4 uStack_2e8;" type_identifier identifier ;) (declaration "int iStack_2e4;" primitive_type identifier ;) (declaration "int iStack_2d4;" primitive_type identifier ;) (declaration "int iStack_2d0;" primitive_type identifier ;) (declaration "undefined4 uStack_2c8;" type_identifier identifier ;) (declaration "int iStack_2c4;" primitive_type identifier ;) (declaration "undefined4 *puStack_2c0;" type_identifier (pointer_declarator "*puStack_2c0" * identifier) ;) (declaration "int iStack_2bc;" primitive_type identifier ;) (declaration "code *pcStack_2b8;" type_identifier (pointer_declarator "*pcStack_2b8" * identifier) ;) (declaration "code *pcStack_2b4;" type_identifier (pointer_declarator "*pcStack_2b4" * identifier) ;) (declaration "undefined4 uStack_2a0;" type_identifier identifier ;) (declaration "undefined4 uStack_29c;" type_identifier identifier ;) (declaration "undefined4 uStack_298;" type_identifier identifier ;) (declaration "int iStack_294;" primitive_type identifier ;) (declaration "undefined4 uStack_290;" type_identifier identifier ;) (declaration "int iStack_28c;" primitive_type identifier ;) (declaration "code *pcStack_288;" type_identifier (pointer_declarator "*pcStack_288" * identifier) ;) (declaration "undefined4 uStack_280;" type_identifier identifier ;) (declaration "int iStack_27c;" primitive_type identifier ;) (declaration "int iStack_26c;" primitive_type identifier ;) (declaration "int iStack_268;" primitive_type identifier ;) (declaration "undefined4 uStack_260;" type_identifier identifier ;) (declaration "int iStack_25c;" primitive_type identifier ;) (declaration "code **ppcStack_258;" type_identifier (pointer_declarator "**ppcStack_258" * (pointer_declarator "*ppcStack_258" * identifier)) ;) (declaration "int iStack_254;" primitive_type identifier ;) (declaration "code *pcStack_250;" type_identifier (pointer_declarator "*pcStack_250" * identifier) ;) (declaration "code *pcStack_24c;" type_identifier (pointer_declarator "*pcStack_24c" * identifier) ;) (declaration "undefined4 uStack_238;" type_identifier identifier ;) (declaration "undefined4 uStack_234;" type_identifier identifier ;) (declaration "undefined4 uStack_230;" type_identifier identifier ;) (declaration "int iStack_22c;" primitive_type identifier ;) (declaration "undefined4 uStack_228;" type_identifier identifier ;) (declaration "int iStack_224;" primitive_type identifier ;) (declaration "code *pcStack_220;" type_identifier (pointer_declarator "*pcStack_220" * identifier) ;) (declaration "code *pcStack_218;" type_identifier (pointer_declarator "*pcStack_218" * identifier) ;) (declaration "int iStack_214;" primitive_type identifier ;) (declaration "int iStack_204;" primitive_type identifier ;) (declaration "int iStack_200;" primitive_type identifier ;) (declaration "code *pcStack_1f8;" type_identifier (pointer_declarator "*pcStack_1f8" * identifier) ;) (declaration "code *pcStack_1f4;" type_identifier (pointer_declarator "*pcStack_1f4" * identifier) ;) (declaration "code **ppcStack_1f0;" type_identifier (pointer_declarator "**ppcStack_1f0" * (pointer_declarator "*ppcStack_1f0" * identifier)) ;) (declaration "int iStack_1ec;" primitive_type identifier ;) (declaration "int iStack_1e8;" primitive_type identifier ;) (declaration "code *pcStack_1e4;" type_identifier (pointer_declarator "*pcStack_1e4" * identifier) ;) (declaration "undefined4 uStack_1d0;" type_identifier identifier ;) (declaration "undefined4 uStack_1cc;" type_identifier identifier ;) (declaration "undefined4 uStack_1c8;" type_identifier identifier ;) (declaration "int iStack_1c4;" primitive_type identifier ;) (declaration "code *pcStack_1c0;" type_identifier (pointer_declarator "*pcStack_1c0" * identifier) ;) (declaration "code *pcStack_1bc;" type_identifier (pointer_declarator "*pcStack_1bc" * identifier) ;) (declaration "code *pcStack_1b8;" type_identifier (pointer_declarator "*pcStack_1b8" * identifier) ;) (declaration "int iStack_1b4;" primitive_type identifier ;) (declaration "int iStack_1a4;" primitive_type identifier ;) (declaration "int iStack_1a0;" primitive_type identifier ;) (declaration "code *pcStack_198;" type_identifier (pointer_declarator "*pcStack_198" * identifier) ;) (declaration "code *pcStack_194;" type_identifier (pointer_declarator "*pcStack_194" * identifier) ;) (declaration "undefined4 *puStack_190;" type_identifier (pointer_declarator "*puStack_190" * identifier) ;) (declaration "int iStack_18c;" primitive_type identifier ;) (declaration "undefined *puStack_188;" type_identifier (pointer_declarator "*puStack_188" * identifier) ;) (declaration "code *pcStack_184;" type_identifier (pointer_declarator "*pcStack_184" * identifier) ;) (declaration "undefined4 uStack_170;" type_identifier identifier ;) (declaration "undefined4 uStack_16c;" type_identifier identifier ;) (declaration "undefined4 uStack_168;" type_identifier identifier ;) (declaration "undefined4 uStack_164;" type_identifier identifier ;) (declaration "code *pcStack_160;" type_identifier (pointer_declarator "*pcStack_160" * identifier) ;) (declaration "code *pcStack_15c;" type_identifier (pointer_declarator "*pcStack_15c" * identifier) ;) (declaration "undefined4 uStack_158;" type_identifier identifier ;) (declaration "int iStack_154;" primitive_type identifier ;) (declaration "int iStack_144;" primitive_type identifier ;) (declaration "int iStack_140;" primitive_type identifier ;) (declaration "undefined4 uStack_138;" type_identifier identifier ;) (declaration "undefined4 uStack_134;" type_identifier identifier ;) (declaration "undefined **ppuStack_130;" type_identifier (pointer_declarator "**ppuStack_130" * (pointer_declarator "*ppuStack_130" * identifier)) ;) (declaration "int iStack_12c;" primitive_type identifier ;) (declaration "int iStack_128;" primitive_type identifier ;) (declaration "code *pcStack_124;" type_identifier (pointer_declarator "*pcStack_124" * identifier) ;) (declaration "undefined4 uStack_110;" type_identifier identifier ;) (declaration "undefined4 uStack_10c;" type_identifier identifier ;) (declaration "undefined4 uStack_108;" type_identifier identifier ;) (declaration "undefined4 uStack_104;" type_identifier identifier ;) (declaration "code *pcStack_100;" type_identifier (pointer_declarator "*pcStack_100" * identifier) ;) (declaration "undefined *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int iStack_e0;" primitive_type identifier ;) (declaration "undefined *puStack_d8;" type_identifier (pointer_declarator "*puStack_d8" * identifier) ;) (declaration "undefined *puStack_d4;" type_identifier (pointer_declarator "*puStack_d4" * identifier) ;) (declaration "undefined4 *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "undefined *puStack_cc;" type_identifier (pointer_declarator "*puStack_cc" * identifier) ;) (expression_statement "Sized_relobj<64,_true> *pSStack_c8;" (update_expression "Sized_relobj<64,_true> *pSStack_c8" (binary_expression "Sized_relobj<64,_true> *pSStack_c8" (binary_expression "Sized_relobj<64" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*pSStack_c8" * identifier)) --) ;) (declaration "code *pcStack_c4;" type_identifier (pointer_declarator "*pcStack_c4" * identifier) ;) (declaration "undefined8 uStack_b0;" type_identifier identifier ;) (declaration "undefined4 uStack_a8;" type_identifier identifier ;) (declaration "undefined4 uStack_a4;" type_identifier identifier ;) (declaration "undefined *puStack_a0;" type_identifier (pointer_declarator "*puStack_a0" * identifier) ;) (declaration "undefined *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "undefined4 uStack_98;" type_identifier identifier ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "int iStack_80;" primitive_type identifier ;) (declaration "undefined4 uStack_78;" type_identifier identifier ;) (declaration "int iStack_74;" primitive_type identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *paStack_70;" type_identifier (pointer_declarator "*paStack_70" * identifier) ;) (expression_statement "Output_data_reloc<4,_true,_64,_true> *pOStack_6c;" (update_expression "Output_data_reloc<4,_true,_64,_true> *pOStack_6c" (binary_expression "Output_data_reloc<4,_true,_64,_true> *pOStack_6c" (binary_expression "Output_data_reloc<4" identifier < number_literal) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > (pointer_expression "*pOStack_6c" * identifier)) --) ;) (declaration "Output_data *pOStack_68;" type_identifier (pointer_declarator "*pOStack_68" * identifier) ;) (declaration "code *pcStack_64;" type_identifier (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "Address local_50;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int iStack_44;" primitive_type identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ local_38;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "Addend local_18;" type_identifier identifier ;) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "local_50 = address;" (assignment_expression "local_50 = address" identifier = identifier) ;) (expression_statement "(*(code *)PTR_Output_reloc_004c417c)(&local_38,type,relobj,shndx);" (call_expression "(*(code *)PTR_Output_reloc_004c417c)(&local_38,type,relobj,shndx)" (parenthesized_expression "(*(code *)PTR_Output_reloc_004c417c)" ( (pointer_expression "*(code *)PTR_Output_reloc_004c417c" * (cast_expression "(code *)PTR_Output_reloc_004c417c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_38,type,relobj,shndx)" ( (pointer_expression "&local_38" & identifier) , identifier , identifier , identifier ))) ;) (expression_statement "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n            ._M_impl._M_finish;" (field_expression "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n            ._M_impl._M_finish" (field_expression "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n            ._M_impl" (binary_expression "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_" (binary_expression "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_" (binary_expression "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4" (binary_expression "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold" (binary_expression "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std" (binary_expression "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n            super__Vector_base<gold::Output_reloc<4" (assignment_expression "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n            super__Vector_base<gold" identifier = (binary_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n            super__Vector_base<gold" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n            super__Vector_base" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_true" (binary_expression "this->super_Output_data_reloc_base<4" (field_expression "this->super_Output_data_reloc_base" identifier -> field_identifier) < number_literal) , (comma_expression "_true,_64,_true" identifier , (comma_expression "_64,_true" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_reloc" : : identifier) < number_literal) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_reloc" : : identifier) < number_literal) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "local_18 = addend;" (assignment_expression "local_18 = addend" identifier = identifier) ;) (if_statement "if (pOVar20 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n      super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n      ._M_impl._M_end_of_storage) {\n    (*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_true>&>_004c3590)\n              (&(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_,pOVar20,&local_38);\n    pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n              super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n              ._M_impl._M_finish;\n    pSVar33 = addend._4_4_;\n    addend = local_18;\n  }\n  else {\n    pOVar3 = pOVar20;\n    paVar10 = &local_38;\n    do {\n      paVar9 = paVar10;\n      pOVar2 = pOVar3;\n      paVar10 = paVar9 + 4;\n      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;\n      pSVar33 = paVar9[1].relobj;\n      aVar27 = paVar9[2];\n      aVar6 = paVar9[3];\n      (pOVar2->rel_).u1_ = *paVar9;\n      (pOVar2->rel_).u2_.relobj = pSVar33;\n      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar27;\n      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar6;\n    } while (paVar10 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18);\n    pOVar20 = pOVar20 + 1;\n    aVar6 = paVar9[5];\n    *(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar10;\n    *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar6;\n    (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n    super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n    ._M_impl._M_finish = pOVar20;\n  }" if (parenthesized_expression "(pOVar20 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n      super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n      ._M_impl._M_end_of_storage)" ( (ERROR "pOVar20 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n      super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::" (comma_expression "pOVar20 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n      super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std" (binary_expression "pOVar20 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n      super__Vector_base<gold::Output_reloc<4" (binary_expression "pOVar20 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n      super__Vector_base<gold" identifier == (binary_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n      super__Vector_base<gold" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n      super__Vector_base" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_true" (binary_expression "this->super_Output_data_reloc_base<4" (field_expression "this->super_Output_data_reloc_base" identifier -> field_identifier) < number_literal) , (comma_expression "_true,_64,_true" identifier , (comma_expression "_64,_true" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_reloc" : : identifier) < number_literal) , (comma_expression "_true,_64,_true>,_std" identifier , (comma_expression "_64,_true>,_std" identifier , (binary_expression "_true>,_std" identifier > (ERROR "," ,) identifier)))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Output_reloc<4,_true,_64,_true>_>_>\n      ._M_impl._M_end_of_storage" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "_true,_64,_true>_>_>\n      ._M_impl._M_end_of_storage" identifier , (comma_expression "_64,_true>_>_>\n      ._M_impl._M_end_of_storage" identifier , (field_expression "_true>_>_>\n      ._M_impl._M_end_of_storage" (field_expression "_true>_>_>\n      ._M_impl" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)))) )) (compound_statement "{\n    (*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_true>&>_004c3590)\n              (&(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_,pOVar20,&local_38);\n    pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n              super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n              ._M_impl._M_finish;\n    pSVar33 = addend._4_4_;\n    addend = local_18;\n  }" { (expression_statement "(*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_true>&>_004c3590)\n              (&(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_,pOVar20,&local_38);" (call_expression "(*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_true>&>_004c3590)\n              (&(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_,pOVar20,&local_38)" (parenthesized_expression "(*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_true>&>_004c3590)" ( (comma_expression "*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_true>&>_004c3590" (binary_expression "*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4" (binary_expression "*(code *)PTR__M_realloc_insert<const_gold_Output_reloc" (pointer_expression "*(code *)PTR__M_realloc_insert" * (cast_expression "(code *)PTR__M_realloc_insert" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) < number_literal) , (comma_expression "_true,_64,_true>&>_004c3590" identifier , (comma_expression "_64,_true>&>_004c3590" identifier , (binary_expression "_true>&>_004c3590" identifier > (pointer_expression "&>_004c3590" & (ERROR ">" >) identifier))))) )) (argument_list "(&(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_,pOVar20,&local_38)" ( (pointer_expression "&(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_" & (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_true" (binary_expression "this->super_Output_data_reloc_base<4" (field_expression "this->super_Output_data_reloc_base" identifier -> field_identifier) < number_literal) , (comma_expression "_true,_64,_true" identifier , (comma_expression "_64,_true" identifier , identifier))) (ERROR ">" >) )) . field_identifier)) , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (ERROR "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n              super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::" (comma_expression "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n              super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std" (binary_expression "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n              super__Vector_base<gold::Output_reloc<4" (assignment_expression "pOVar20 = (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n              super__Vector_base<gold" identifier = (binary_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n              super__Vector_base<gold" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n              super__Vector_base" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_true" (binary_expression "this->super_Output_data_reloc_base<4" (field_expression "this->super_Output_data_reloc_base" identifier -> field_identifier) < number_literal) , (comma_expression "_true,_64,_true" identifier , (comma_expression "_64,_true" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_reloc" : : identifier) < number_literal) , (comma_expression "_true,_64,_true>,_std" identifier , (comma_expression "_64,_true>,_std" identifier , (binary_expression "_true>,_std" identifier > (ERROR "," ,) identifier)))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_reloc<4,_true,_64,_true>_>_>\n              ._M_impl._M_finish;" (comma_expression "Output_reloc<4,_true,_64,_true>_>_>\n              ._M_impl._M_finish" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "_true,_64,_true>_>_>\n              ._M_impl._M_finish" identifier , (comma_expression "_64,_true>_>_>\n              ._M_impl._M_finish" identifier , (field_expression "_true>_>_>\n              ._M_impl._M_finish" (field_expression "_true>_>_>\n              ._M_impl" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)))) ;) (expression_statement "pSVar33 = addend._4_4_;" (assignment_expression "pSVar33 = addend._4_4_" identifier = (field_expression "addend._4_4_" identifier . field_identifier)) ;) (expression_statement "addend = local_18;" (assignment_expression "addend = local_18" identifier = identifier) ;) }) (else_clause "else {\n    pOVar3 = pOVar20;\n    paVar10 = &local_38;\n    do {\n      paVar9 = paVar10;\n      pOVar2 = pOVar3;\n      paVar10 = paVar9 + 4;\n      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;\n      pSVar33 = paVar9[1].relobj;\n      aVar27 = paVar9[2];\n      aVar6 = paVar9[3];\n      (pOVar2->rel_).u1_ = *paVar9;\n      (pOVar2->rel_).u2_.relobj = pSVar33;\n      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar27;\n      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar6;\n    } while (paVar10 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18);\n    pOVar20 = pOVar20 + 1;\n    aVar6 = paVar9[5];\n    *(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar10;\n    *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar6;\n    (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n    super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n    ._M_impl._M_finish = pOVar20;\n  }" else (compound_statement "{\n    pOVar3 = pOVar20;\n    paVar10 = &local_38;\n    do {\n      paVar9 = paVar10;\n      pOVar2 = pOVar3;\n      paVar10 = paVar9 + 4;\n      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;\n      pSVar33 = paVar9[1].relobj;\n      aVar27 = paVar9[2];\n      aVar6 = paVar9[3];\n      (pOVar2->rel_).u1_ = *paVar9;\n      (pOVar2->rel_).u2_.relobj = pSVar33;\n      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar27;\n      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar6;\n    } while (paVar10 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18);\n    pOVar20 = pOVar20 + 1;\n    aVar6 = paVar9[5];\n    *(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar10;\n    *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar6;\n    (this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n    super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n    ._M_impl._M_finish = pOVar20;\n  }" { (expression_statement "pOVar3 = pOVar20;" (assignment_expression "pOVar3 = pOVar20" identifier = identifier) ;) (expression_statement "paVar10 = &local_38;" (assignment_expression "paVar10 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (do_statement "do {\n      paVar9 = paVar10;\n      pOVar2 = pOVar3;\n      paVar10 = paVar9 + 4;\n      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;\n      pSVar33 = paVar9[1].relobj;\n      aVar27 = paVar9[2];\n      aVar6 = paVar9[3];\n      (pOVar2->rel_).u1_ = *paVar9;\n      (pOVar2->rel_).u2_.relobj = pSVar33;\n      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar27;\n      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar6;\n    } while (paVar10 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18);" do (compound_statement "{\n      paVar9 = paVar10;\n      pOVar2 = pOVar3;\n      paVar10 = paVar9 + 4;\n      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;\n      pSVar33 = paVar9[1].relobj;\n      aVar27 = paVar9[2];\n      aVar6 = paVar9[3];\n      (pOVar2->rel_).u1_ = *paVar9;\n      (pOVar2->rel_).u2_.relobj = pSVar33;\n      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar27;\n      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar6;\n    }" { (expression_statement "paVar9 = paVar10;" (assignment_expression "paVar9 = paVar10" identifier = identifier) ;) (expression_statement "pOVar2 = pOVar3;" (assignment_expression "pOVar2 = pOVar3" identifier = identifier) ;) (expression_statement "paVar10 = paVar9 + 4;" (assignment_expression "paVar10 = paVar9 + 4" identifier = (binary_expression "paVar9 + 4" identifier + number_literal)) ;) (expression_statement "pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;" (assignment_expression "pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_" identifier = (binary_expression "(pointer)&(pOVar2->rel_).local_sym_index_" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pOVar2->rel_).local_sym_index_" (parenthesized_expression "(pOVar2->rel_)" ( (field_expression "pOVar2->rel_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pSVar33 = paVar9[1].relobj;" (assignment_expression "pSVar33 = paVar9[1].relobj" identifier = (field_expression "paVar9[1].relobj" (subscript_expression "paVar9[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "aVar27 = paVar9[2];" (assignment_expression "aVar27 = paVar9[2]" identifier = (subscript_expression "paVar9[2]" identifier [ number_literal ])) ;) (expression_statement "aVar6 = paVar9[3];" (assignment_expression "aVar6 = paVar9[3]" identifier = (subscript_expression "paVar9[3]" identifier [ number_literal ])) ;) (expression_statement "(pOVar2->rel_).u1_ = *paVar9;" (assignment_expression "(pOVar2->rel_).u1_ = *paVar9" (field_expression "(pOVar2->rel_).u1_" (parenthesized_expression "(pOVar2->rel_)" ( (field_expression "pOVar2->rel_" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "*paVar9" * identifier)) ;) (expression_statement "(pOVar2->rel_).u2_.relobj = pSVar33;" (assignment_expression "(pOVar2->rel_).u2_.relobj = pSVar33" (field_expression "(pOVar2->rel_).u2_.relobj" (field_expression "(pOVar2->rel_).u2_" (parenthesized_expression "(pOVar2->rel_)" ( (field_expression "pOVar2->rel_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "*(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar27;" (assignment_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar27" (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar2->rel_).address_" & (field_expression "(pOVar2->rel_).address_" (parenthesized_expression "(pOVar2->rel_)" ( (field_expression "pOVar2->rel_" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar6;" (assignment_expression "*(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar6" (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4)" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4)" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar2->rel_).address_ + 4)" ( (binary_expression "(int)&(pOVar2->rel_).address_ + 4" (cast_expression "(int)&(pOVar2->rel_).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar2->rel_).address_" & (field_expression "(pOVar2->rel_).address_" (parenthesized_expression "(pOVar2->rel_)" ( (field_expression "pOVar2->rel_" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) }) while (parenthesized_expression "(paVar10 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18)" ( (binary_expression "paVar10 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18" identifier != (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&local_18" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_18" & identifier))) )) ;) (expression_statement "pOVar20 = pOVar20 + 1;" (assignment_expression "pOVar20 = pOVar20 + 1" identifier = (binary_expression "pOVar20 + 1" identifier + number_literal)) ;) (expression_statement "aVar6 = paVar9[5];" (assignment_expression "aVar6 = paVar9[5]" identifier = (subscript_expression "paVar9[5]" identifier [ number_literal ])) ;) (expression_statement "*(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar10;" (assignment_expression "*(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar10" (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)pOVar3" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)pOVar3" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*paVar10" * identifier)) ;) (expression_statement "*(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar6;" (assignment_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar6" (pointer_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14" * (cast_expression "(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar2->rel_).field_0x14" & (field_expression "(pOVar2->rel_).field_0x14" (parenthesized_expression "(pOVar2->rel_)" ( (field_expression "pOVar2->rel_" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (ERROR "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n    super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::" (comma_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n    super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std" (binary_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n    super__Vector_base<gold::Output_reloc<4" (binary_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n    super__Vector_base<gold" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n    super__Vector_base" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_true" (binary_expression "this->super_Output_data_reloc_base<4" (field_expression "this->super_Output_data_reloc_base" identifier -> field_identifier) < number_literal) , (comma_expression "_true,_64,_true" identifier , (comma_expression "_64,_true" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier) (ERROR "::Output_reloc" : : identifier) < number_literal) , (comma_expression "_true,_64,_true>,_std" identifier , (comma_expression "_64,_true>,_std" identifier , (binary_expression "_true>,_std" identifier > (ERROR "," ,) identifier)))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_reloc<4,_true,_64,_true>_>_>\n    ._M_impl._M_finish = pOVar20;" (comma_expression "Output_reloc<4,_true,_64,_true>_>_>\n    ._M_impl._M_finish = pOVar20" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "_true,_64,_true>_>_>\n    ._M_impl._M_finish = pOVar20" identifier , (comma_expression "_64,_true>_>_>\n    ._M_impl._M_finish = pOVar20" identifier , (assignment_expression "_true>_>_>\n    ._M_impl._M_finish = pOVar20" (field_expression "_true>_>_>\n    ._M_impl._M_finish" (field_expression "_true>_>_>\n    ._M_impl" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier)))) ;) }))) (expression_statement "iVar21 = (int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n                ._M_impl._M_start >> 3;" (update_expression "iVar21 = (int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n                ._M_impl._M_start >> 3" (binary_expression "iVar21 = (int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n                ._M_impl._M_start >> 3" (field_expression "iVar21 = (int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n                ._M_impl._M_start" (field_expression "iVar21 = (int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_>\n                ._M_impl" (binary_expression "iVar21 = (int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_>_" (binary_expression "iVar21 = (int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4,_true,_64,_true>_" (binary_expression "iVar21 = (int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold::Output_reloc<4" (binary_expression "iVar21 = (int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std::allocator<gold" (binary_expression "iVar21 = (int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_true>,_std" (binary_expression "iVar21 = (int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold::Output_reloc<4" (assignment_expression "iVar21 = (int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold" identifier = (binary_expression "(int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base<gold" (binary_expression "(int)pOVar20 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base" (cast_expression "(int)pOVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_.\n                super__Vector_base" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).relocs_" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_true" (binary_expression "this->super_Output_data_reloc_base<4" (field_expression "this->super_Output_data_reloc_base" identifier -> field_identifier) < number_literal) , (comma_expression "_true,_64,_true" identifier , (comma_expression "_64,_true" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier))) < identifier)) (ERROR "::Output_reloc" : : identifier) < number_literal) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_reloc" : : identifier) < number_literal) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal) --) ;) (if_statement "if (-1 < *(int *)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                    super_Output_data_reloc_generic.super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.field_0x20 << 1) {\n    *(int *)((int)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4) = iVar21 * 0x33333338\n    ;\n    *(undefined4 *)\n     &(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      super_Output_section_data_build.super_Output_section_data.super_Output_data.data_size_ = 0;\n    od->field_0x20 = od->field_0x20 & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n           relative_reloc_count_ + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                    super_Output_data_reloc_generic.super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.field_0x20 << 1)" ( (binary_expression "-1 < *(int *)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                    super_Output_data_reloc_generic.super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.field_0x20 << 1" number_literal < (binary_expression "*(int *)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                    super_Output_data_reloc_generic.super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.field_0x20 << 1" (pointer_expression "*(int *)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                    super_Output_data_reloc_generic.super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.field_0x20" * (cast_expression "(int *)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                    super_Output_data_reloc_generic.super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                    super_Output_data_reloc_generic.super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.field_0x20" & (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                    super_Output_data_reloc_generic.super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.field_0x20" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                    super_Output_data_reloc_generic.super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                    super_Output_data_reloc_generic.super_Output_section_data_build.\n                    super_Output_section_data" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                    super_Output_data_reloc_generic.super_Output_section_data_build" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                    super_Output_data_reloc_generic" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_true" (binary_expression "this->super_Output_data_reloc_base<4" (field_expression "this->super_Output_data_reloc_base" identifier -> field_identifier) < number_literal) , (comma_expression "_true,_64,_true" identifier , (comma_expression "_64,_true" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)))) << number_literal)) )) (compound_statement "{\n    *(int *)((int)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4) = iVar21 * 0x33333338\n    ;\n    *(undefined4 *)\n     &(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      super_Output_section_data_build.super_Output_section_data.super_Output_data.data_size_ = 0;\n    od->field_0x20 = od->field_0x20 & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n           relative_reloc_count_ + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)((int)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4) = iVar21 * 0x33333338\n    ;" (assignment_expression "*(int *)((int)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4) = iVar21 * 0x33333338" (pointer_expression "*(int *)((int)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4)" * (cast_expression "(int *)((int)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4" (cast_expression "(int)&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_" & (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).\n                   super_Output_data_reloc_generic" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_true" (binary_expression "this->super_Output_data_reloc_base<4" (field_expression "this->super_Output_data_reloc_base" identifier -> field_identifier) < number_literal) , (comma_expression "_true,_64,_true" identifier , (comma_expression "_64,_true" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) = (binary_expression "iVar21 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)\n     &(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      super_Output_section_data_build.super_Output_section_data.super_Output_data.data_size_ = 0;" (assignment_expression "*(undefined4 *)\n     &(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      super_Output_section_data_build.super_Output_section_data.super_Output_data.data_size_ = 0" (pointer_expression "*(undefined4 *)\n     &(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      super_Output_section_data_build.super_Output_section_data.super_Output_data.data_size_" * (cast_expression "(undefined4 *)\n     &(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      super_Output_section_data_build.super_Output_section_data.super_Output_data.data_size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      super_Output_section_data_build.super_Output_section_data.super_Output_data.data_size_" & (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      super_Output_section_data_build.super_Output_section_data.super_Output_data.data_size_" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      super_Output_section_data_build.super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      super_Output_section_data_build.super_Output_section_data" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      super_Output_section_data_build" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_true" (binary_expression "this->super_Output_data_reloc_base<4" (field_expression "this->super_Output_data_reloc_base" identifier -> field_identifier) < number_literal) , (comma_expression "_true,_64,_true" identifier , (comma_expression "_64,_true" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "od->field_0x20 = od->field_0x20 & 0xf7 | 8;" (assignment_expression "od->field_0x20 = od->field_0x20 & 0xf7 | 8" (field_expression "od->field_0x20" identifier -> field_identifier) = (binary_expression "od->field_0x20 & 0xf7 | 8" (binary_expression "od->field_0x20 & 0xf7" (field_expression "od->field_0x20" identifier -> field_identifier) & number_literal) | number_literal)) ;) (if_statement "if (local_24 << 0x1c < 0) {\n      (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n           relative_reloc_count_ + 1;\n    }" if (parenthesized_expression "(local_24 << 0x1c < 0)" ( (binary_expression "local_24 << 0x1c < 0" (binary_expression "local_24 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n           relative_reloc_count_ + 1;\n    }" { (expression_statement "(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n           relative_reloc_count_ + 1;" (assignment_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n           relative_reloc_count_ + 1" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n      relative_reloc_count_" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_true" (binary_expression "this->super_Output_data_reloc_base<4" (field_expression "this->super_Output_data_reloc_base" identifier -> field_identifier) < number_literal) , (comma_expression "_true,_64,_true" identifier , (comma_expression "_64,_true" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) = (binary_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n           relative_reloc_count_ + 1" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic.\n           relative_reloc_count_" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>).super_Output_data_reloc_generic" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_true>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_true" (binary_expression "this->super_Output_data_reloc_base<4" (field_expression "this->super_Output_data_reloc_base" identifier -> field_identifier) < number_literal) , (comma_expression "_true,_64,_true" identifier , (comma_expression "_64,_true" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) + number_literal)) ;) })) (if_statement "if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }" if (parenthesized_expression "((local_20 != -4) && (local_34 != 0))" ( (binary_expression "(local_20 != -4) && (local_34 != 0)" (parenthesized_expression "(local_20 != -4)" ( (binary_expression "local_20 != -4" identifier != number_literal) )) && (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }" { (if_statement "if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar21 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(local_34 + 100) == 0)" ( (binary_expression "*(int *)(local_34 + 100) == 0" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(local_34 + 0x60) = iVar21 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(local_34 + 0x60) = iVar21 * -0x33333333 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar21 * -0x33333333 + -1" (pointer_expression "*(int *)(local_34 + 0x60)" * (cast_expression "(int *)(local_34 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x60)" ( (binary_expression "local_34 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar21 * -0x33333333 + -1" (binary_expression "iVar21 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;" (assignment_expression "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = add_output_section;" (assignment_expression "pcVar37 = add_output_section" identifier = identifier) ;) (expression_statement "puVar11 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;" (assignment_expression "puVar11 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier = (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal)) ;) (expression_statement "puVar34 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar34 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "local_18 = addend;" (assignment_expression "local_18 = addend" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar11,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar11,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c)" (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 "(puVar11,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2b1c" identifier + number_literal) ))) ;) (expression_statement "puStack_a0 = puVar34 + 0x273e14;" (assignment_expression "puStack_a0 = puVar34 + 0x273e14" identifier = (binary_expression "puVar34 + 0x273e14" identifier + number_literal)) ;) (expression_statement "uStack_a8 = 0;" (assignment_expression "uStack_a8 = 0" identifier = number_literal) ;) (expression_statement "paStack_70 = &local_38;" (assignment_expression "paStack_70 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "pOStack_6c = this;" (assignment_expression "pOStack_6c = this" identifier = identifier) ;) (expression_statement "pOStack_68 = od;" (assignment_expression "pOStack_68 = od" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar37;" (assignment_expression "pcStack_64 = pcVar37" identifier = identifier) ;) (expression_statement "uStack_b0 = local_50;" (assignment_expression "uStack_b0 = local_50" identifier = identifier) ;) (expression_statement "(**(code **)(puVar34 + 0x26cb6c))(&uStack_98);" (call_expression "(**(code **)(puVar34 + 0x26cb6c))(&uStack_98)" (parenthesized_expression "(**(code **)(puVar34 + 0x26cb6c))" ( (pointer_expression "**(code **)(puVar34 + 0x26cb6c)" * (pointer_expression "*(code **)(puVar34 + 0x26cb6c)" * (cast_expression "(code **)(puVar34 + 0x26cb6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0x26cb6c)" ( (binary_expression "puVar34 + 0x26cb6c" identifier + number_literal) ))))) )) (argument_list "(&uStack_98)" ( (pointer_expression "&uStack_98" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(puVar11 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(puVar11 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(puVar11 + 0x3c)" * (cast_expression "(undefined4 **)(puVar11 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x3c)" ( (binary_expression "puVar11 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iStack_74 = iStack_44;" (assignment_expression "iStack_74 = iStack_44" identifier = identifier) ;) (expression_statement "uStack_78 = local_48;" (assignment_expression "uStack_78 = local_48" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(puVar11 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar11 + 0x38,puVar22,&uStack_98);\n    puVar22 = *(undefined4 **)(puVar11 + 0x3c);\n    iVar21 = iStack_44;\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_98;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_78);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(puVar11 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(puVar11 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(puVar11 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(puVar11 + 0x40)" * (cast_expression "(undefined4 **)(puVar11 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x40)" ( (binary_expression "puVar11 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar11 + 0x38,puVar22,&uStack_98);\n    puVar22 = *(undefined4 **)(puVar11 + 0x3c);\n    iVar21 = iStack_44;\n  }" { (expression_statement "(**(code **)(puStack_a0 + -0x5cb0))(puVar11 + 0x38,puVar22,&uStack_98);" (call_expression "(**(code **)(puStack_a0 + -0x5cb0))(puVar11 + 0x38,puVar22,&uStack_98)" (parenthesized_expression "(**(code **)(puStack_a0 + -0x5cb0))" ( (pointer_expression "**(code **)(puStack_a0 + -0x5cb0)" * (pointer_expression "*(code **)(puStack_a0 + -0x5cb0)" * (cast_expression "(code **)(puStack_a0 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a0 + -0x5cb0)" ( (binary_expression "puStack_a0 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(puVar11 + 0x38,puVar22,&uStack_98)" ( (binary_expression "puVar11 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_98" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(puVar11 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(puVar11 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(puVar11 + 0x3c)" * (cast_expression "(undefined4 **)(puVar11 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x3c)" ( (binary_expression "puVar11 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = iStack_44;" (assignment_expression "iVar21 = iStack_44" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_98;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_78);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(puVar11 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_98;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_78);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(puVar11 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_98;" (assignment_expression "puVar12 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_78);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "iVar21 = puVar17[1];" (assignment_expression "iVar21 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = iVar21;" (assignment_expression "puVar4[1] = iVar21" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_78)" ( (binary_expression "puVar12 != &uStack_78" identifier != (pointer_expression "&uStack_78" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(puVar11 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(puVar11 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(puVar11 + 0x3c)" * (cast_expression "(undefined4 **)(puVar11 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x3c)" ( (binary_expression "puVar11 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar23 = (int)puVar22 - *(int *)(puVar11 + 0x38) >> 3;" (assignment_expression "iVar23 = (int)puVar22 - *(int *)(puVar11 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(puVar11 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(puVar11 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(puVar11 + 0x38)" * (cast_expression "(int *)(puVar11 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x38)" ( (binary_expression "puVar11 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(puVar11 + 0x20) << 1) {\n    *(int *)(puVar11 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(puVar11 + 0x10) = 0;\n    *(byte *)&(pSVar33->super_Relobj).super_Object.offset_ =\n         *(byte *)&(pSVar33->super_Relobj).super_Object.offset_ & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar11 + 0x30) = *(int *)(puVar11 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(puVar11 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(puVar11 + 0x20) << 1" number_literal < (binary_expression "*(int *)(puVar11 + 0x20) << 1" (pointer_expression "*(int *)(puVar11 + 0x20)" * (cast_expression "(int *)(puVar11 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x20)" ( (binary_expression "puVar11 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(puVar11 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(puVar11 + 0x10) = 0;\n    *(byte *)&(pSVar33->super_Relobj).super_Object.offset_ =\n         *(byte *)&(pSVar33->super_Relobj).super_Object.offset_ & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar11 + 0x30) = *(int *)(puVar11 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(puVar11 + 0x14) = iVar23 * 0x33333338;" (assignment_expression "*(int *)(puVar11 + 0x14) = iVar23 * 0x33333338" (pointer_expression "*(int *)(puVar11 + 0x14)" * (cast_expression "(int *)(puVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar23 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar11 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar11 + 0x10)" * (cast_expression "(undefined4 *)(puVar11 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)&(pSVar33->super_Relobj).super_Object.offset_ =\n         *(byte *)&(pSVar33->super_Relobj).super_Object.offset_ & 0xf7 | 8;" (assignment_expression "*(byte *)&(pSVar33->super_Relobj).super_Object.offset_ =\n         *(byte *)&(pSVar33->super_Relobj).super_Object.offset_ & 0xf7 | 8" (pointer_expression "*(byte *)&(pSVar33->super_Relobj).super_Object.offset_" * (cast_expression "(byte *)&(pSVar33->super_Relobj).super_Object.offset_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pSVar33->super_Relobj).super_Object.offset_" & (field_expression "(pSVar33->super_Relobj).super_Object.offset_" (field_expression "(pSVar33->super_Relobj).super_Object" (parenthesized_expression "(pSVar33->super_Relobj)" ( (field_expression "pSVar33->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = (binary_expression "*(byte *)&(pSVar33->super_Relobj).super_Object.offset_ & 0xf7 | 8" (binary_expression "*(byte *)&(pSVar33->super_Relobj).super_Object.offset_ & 0xf7" (pointer_expression "*(byte *)&(pSVar33->super_Relobj).super_Object.offset_" * (cast_expression "(byte *)&(pSVar33->super_Relobj).super_Object.offset_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pSVar33->super_Relobj).super_Object.offset_" & (field_expression "(pSVar33->super_Relobj).super_Object.offset_" (field_expression "(pSVar33->super_Relobj).super_Object" (parenthesized_expression "(pSVar33->super_Relobj)" ( (field_expression "pSVar33->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar11 + 0x30) = *(int *)(puVar11 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_84 << 0x1c < 0)" ( (binary_expression "iStack_84 << 0x1c < 0" (binary_expression "iStack_84 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(puVar11 + 0x30) = *(int *)(puVar11 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(puVar11 + 0x30) = *(int *)(puVar11 + 0x30) + 1;" (assignment_expression "*(int *)(puVar11 + 0x30) = *(int *)(puVar11 + 0x30) + 1" (pointer_expression "*(int *)(puVar11 + 0x30)" * (cast_expression "(int *)(puVar11 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x30)" ( (binary_expression "puVar11 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar11 + 0x30) + 1" (pointer_expression "*(int *)(puVar11 + 0x30)" * (cast_expression "(int *)(puVar11 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x30)" ( (binary_expression "puVar11 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_80 != -4) && (iStack_94 != 0))" ( (binary_expression "(iStack_80 != -4) && (iStack_94 != 0)" (parenthesized_expression "(iStack_80 != -4)" ( (binary_expression "iStack_80 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_94 != 0)" ( (binary_expression "iStack_94 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_94 + 100) == 0)" ( (binary_expression "*(int *)(iStack_94 + 100) == 0" (pointer_expression "*(int *)(iStack_94 + 100)" * (cast_expression "(int *)(iStack_94 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_94 + 100)" ( (binary_expression "iStack_94 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_94 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_94 + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_94 + 0x60) = iVar23 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_94 + 0x60)" * (cast_expression "(int *)(iStack_94 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_94 + 0x60)" ( (binary_expression "iStack_94 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;" (assignment_expression "*(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1" (pointer_expression "*(int *)(iStack_94 + 100)" * (cast_expression "(int *)(iStack_94 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_94 + 100)" ( (binary_expression "iStack_94 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_94 + 100) + 1" (pointer_expression "*(int *)(iStack_94 + 100)" * (cast_expression "(int *)(iStack_94 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_94 + 100)" ( (binary_expression "iStack_94 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(puStack_a0 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(puStack_a0 + -0x7810)" identifier = (pointer_expression "*(code **)(puStack_a0 + -0x7810)" * (cast_expression "(code **)(puStack_a0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a0 + -0x7810)" ( (binary_expression "puStack_a0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = add_target_specific;" (assignment_expression "pcVar38 = add_target_specific" identifier = identifier) ;) (expression_statement "iVar23 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar23 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(puStack_a0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(puStack_a0 + -0x7fc4)" * (cast_expression "(int *)(puStack_a0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_a0 + -0x7fc4)" ( (binary_expression "puStack_a0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar23,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar37)(iVar23,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar23,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(puStack_a0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(puStack_a0 + -0x7924)" * (cast_expression "(int *)(puStack_a0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_a0 + -0x7924)" ( (binary_expression "puStack_a0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_100 = pcVar37 + 0x273c68;" (assignment_expression "pcStack_100 = pcVar37 + 0x273c68" identifier = (binary_expression "pcVar37 + 0x273c68" identifier + number_literal)) ;) (expression_statement "uStack_108 = uStack_a8;" (assignment_expression "uStack_108 = uStack_a8" identifier = identifier) ;) (expression_statement "uStack_104 = uStack_a4;" (assignment_expression "uStack_104 = uStack_a4" identifier = identifier) ;) (expression_statement "uStack_110 = uStack_b0._4_4_;" (assignment_expression "uStack_110 = uStack_b0._4_4_" identifier = (field_expression "uStack_b0._4_4_" identifier . field_identifier)) ;) (expression_statement "puStack_d0 = &uStack_98;" (assignment_expression "puStack_d0 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (expression_statement "puStack_cc = puVar11;" (assignment_expression "puStack_cc = puVar11" identifier = identifier) ;) (expression_statement "pSStack_c8 = pSVar33;" (assignment_expression "pSStack_c8 = pSVar33" identifier = identifier) ;) (expression_statement "pcStack_c4 = pcVar38;" (assignment_expression "pcStack_c4 = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26ebac))(&puStack_f8);" (call_expression "(**(code **)(pcVar37 + 0x26ebac))(&puStack_f8)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26ebac))" ( (pointer_expression "**(code **)(pcVar37 + 0x26ebac)" * (pointer_expression "*(code **)(pcVar37 + 0x26ebac)" * (cast_expression "(code **)(pcVar37 + 0x26ebac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26ebac)" ( (binary_expression "pcVar37 + 0x26ebac" identifier + number_literal) ))))) )) (argument_list "(&puStack_f8)" ( (pointer_expression "&puStack_f8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar23 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar23 + 0x3c)" * (cast_expression "(undefined4 **)(iVar23 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x3c)" ( (binary_expression "iVar23 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "puStack_d4 = puStack_9c;" (assignment_expression "puStack_d4 = puStack_9c" identifier = identifier) ;) (expression_statement "puStack_d8 = puStack_a0;" (assignment_expression "puStack_d8 = puStack_a0" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar23 + 0x38,puVar22,&puStack_f8);\n    puVar22 = *(undefined4 **)(iVar23 + 0x3c);\n    puVar34 = puStack_9c;\n  }\n  else {\n    puVar1 = puVar22;\n    ppuVar14 = &puStack_f8;\n    do {\n      ppuVar13 = ppuVar14;\n      puVar12 = puVar1;\n      ppuVar14 = ppuVar13 + 4;\n      puVar34 = ppuVar13[1];\n      puVar29 = ppuVar13[2];\n      puVar11 = ppuVar13[3];\n      *puVar12 = *ppuVar13;\n      puVar12[1] = puVar34;\n      puVar12[2] = puVar29;\n      puVar12[3] = puVar11;\n      puVar1 = puVar12 + 4;\n    } while (ppuVar14 != &puStack_d8);\n    puVar22 = puVar22 + 10;\n    puVar11 = ppuVar13[5];\n    puVar12[4] = *ppuVar14;\n    puVar12[5] = puVar11;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar23 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar23 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar23 + 0x40)" * (cast_expression "(undefined4 **)(iVar23 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x40)" ( (binary_expression "iVar23 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar23 + 0x38,puVar22,&puStack_f8);\n    puVar22 = *(undefined4 **)(iVar23 + 0x3c);\n    puVar34 = puStack_9c;\n  }" { (expression_statement "(**(code **)(pcStack_100 + -0x5cb0))(iVar23 + 0x38,puVar22,&puStack_f8);" (call_expression "(**(code **)(pcStack_100 + -0x5cb0))(iVar23 + 0x38,puVar22,&puStack_f8)" (parenthesized_expression "(**(code **)(pcStack_100 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_100 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_100 + -0x5cb0)" * (cast_expression "(code **)(pcStack_100 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_100 + -0x5cb0)" ( (binary_expression "pcStack_100 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x38,puVar22,&puStack_f8)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&puStack_f8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar23 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar23 + 0x3c)" * (cast_expression "(undefined4 **)(iVar23 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x3c)" ( (binary_expression "iVar23 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "puVar34 = puStack_9c;" (assignment_expression "puVar34 = puStack_9c" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    ppuVar14 = &puStack_f8;\n    do {\n      ppuVar13 = ppuVar14;\n      puVar12 = puVar1;\n      ppuVar14 = ppuVar13 + 4;\n      puVar34 = ppuVar13[1];\n      puVar29 = ppuVar13[2];\n      puVar11 = ppuVar13[3];\n      *puVar12 = *ppuVar13;\n      puVar12[1] = puVar34;\n      puVar12[2] = puVar29;\n      puVar12[3] = puVar11;\n      puVar1 = puVar12 + 4;\n    } while (ppuVar14 != &puStack_d8);\n    puVar22 = puVar22 + 10;\n    puVar11 = ppuVar13[5];\n    puVar12[4] = *ppuVar14;\n    puVar12[5] = puVar11;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    ppuVar14 = &puStack_f8;\n    do {\n      ppuVar13 = ppuVar14;\n      puVar12 = puVar1;\n      ppuVar14 = ppuVar13 + 4;\n      puVar34 = ppuVar13[1];\n      puVar29 = ppuVar13[2];\n      puVar11 = ppuVar13[3];\n      *puVar12 = *ppuVar13;\n      puVar12[1] = puVar34;\n      puVar12[2] = puVar29;\n      puVar12[3] = puVar11;\n      puVar1 = puVar12 + 4;\n    } while (ppuVar14 != &puStack_d8);\n    puVar22 = puVar22 + 10;\n    puVar11 = ppuVar13[5];\n    puVar12[4] = *ppuVar14;\n    puVar12[5] = puVar11;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "ppuVar14 = &puStack_f8;" (assignment_expression "ppuVar14 = &puStack_f8" identifier = (pointer_expression "&puStack_f8" & identifier)) ;) (do_statement "do {\n      ppuVar13 = ppuVar14;\n      puVar12 = puVar1;\n      ppuVar14 = ppuVar13 + 4;\n      puVar34 = ppuVar13[1];\n      puVar29 = ppuVar13[2];\n      puVar11 = ppuVar13[3];\n      *puVar12 = *ppuVar13;\n      puVar12[1] = puVar34;\n      puVar12[2] = puVar29;\n      puVar12[3] = puVar11;\n      puVar1 = puVar12 + 4;\n    } while (ppuVar14 != &puStack_d8);" do (compound_statement "{\n      ppuVar13 = ppuVar14;\n      puVar12 = puVar1;\n      ppuVar14 = ppuVar13 + 4;\n      puVar34 = ppuVar13[1];\n      puVar29 = ppuVar13[2];\n      puVar11 = ppuVar13[3];\n      *puVar12 = *ppuVar13;\n      puVar12[1] = puVar34;\n      puVar12[2] = puVar29;\n      puVar12[3] = puVar11;\n      puVar1 = puVar12 + 4;\n    }" { (expression_statement "ppuVar13 = ppuVar14;" (assignment_expression "ppuVar13 = ppuVar14" identifier = identifier) ;) (expression_statement "puVar12 = puVar1;" (assignment_expression "puVar12 = puVar1" identifier = identifier) ;) (expression_statement "ppuVar14 = ppuVar13 + 4;" (assignment_expression "ppuVar14 = ppuVar13 + 4" identifier = (binary_expression "ppuVar13 + 4" identifier + number_literal)) ;) (expression_statement "puVar34 = ppuVar13[1];" (assignment_expression "puVar34 = ppuVar13[1]" identifier = (subscript_expression "ppuVar13[1]" identifier [ number_literal ])) ;) (expression_statement "puVar29 = ppuVar13[2];" (assignment_expression "puVar29 = ppuVar13[2]" identifier = (subscript_expression "ppuVar13[2]" identifier [ number_literal ])) ;) (expression_statement "puVar11 = ppuVar13[3];" (assignment_expression "puVar11 = ppuVar13[3]" identifier = (subscript_expression "ppuVar13[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar12 = *ppuVar13;" (assignment_expression "*puVar12 = *ppuVar13" (pointer_expression "*puVar12" * identifier) = (pointer_expression "*ppuVar13" * identifier)) ;) (expression_statement "puVar12[1] = puVar34;" (assignment_expression "puVar12[1] = puVar34" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = puVar29;" (assignment_expression "puVar12[2] = puVar29" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = puVar11;" (assignment_expression "puVar12[3] = puVar11" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar12 + 4;" (assignment_expression "puVar1 = puVar12 + 4" identifier = (binary_expression "puVar12 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppuVar14 != &puStack_d8)" ( (binary_expression "ppuVar14 != &puStack_d8" identifier != (pointer_expression "&puStack_d8" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "puVar11 = ppuVar13[5];" (assignment_expression "puVar11 = ppuVar13[5]" identifier = (subscript_expression "ppuVar13[5]" identifier [ number_literal ])) ;) (expression_statement "puVar12[4] = *ppuVar14;" (assignment_expression "puVar12[4] = *ppuVar14" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = (pointer_expression "*ppuVar14" * identifier)) ;) (expression_statement "puVar12[5] = puVar11;" (assignment_expression "puVar12[5] = puVar11" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar23 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar23 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar23 + 0x3c)" * (cast_expression "(undefined4 **)(iVar23 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x3c)" ( (binary_expression "iVar23 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar24 = (int)puVar22 - *(int *)(iVar23 + 0x38) >> 3;" (assignment_expression "iVar24 = (int)puVar22 - *(int *)(iVar23 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar23 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar23 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar23 + 0x38)" * (cast_expression "(int *)(iVar23 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x38)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    *(int *)(iVar23 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar23 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar23 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar23 + 0x20) << 1" (pointer_expression "*(int *)(iVar23 + 0x20)" * (cast_expression "(int *)(iVar23 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar23 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar23 + 0x14) = iVar24 * 0x33333338;" (assignment_expression "*(int *)(iVar23 + 0x14) = iVar24 * 0x33333338" (pointer_expression "*(int *)(iVar23 + 0x14)" * (cast_expression "(int *)(iVar23 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x14)" ( (binary_expression "iVar23 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar24 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar23 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar23 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar23 + 0x10)" * (cast_expression "(undefined4 *)(iVar23 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x10)" ( (binary_expression "iVar23 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar21 + 0x20)" * (cast_expression "(byte *)(iVar21 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar21 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar21 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar21 + 0x20)" * (cast_expression "(byte *)(iVar21 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_e4 << 0x1c < 0)" ( (binary_expression "iStack_e4 << 0x1c < 0" (binary_expression "iStack_e4 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;" (assignment_expression "*(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1" (pointer_expression "*(int *)(iVar23 + 0x30)" * (cast_expression "(int *)(iVar23 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x30)" ( (binary_expression "iVar23 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar23 + 0x30) + 1" (pointer_expression "*(int *)(iVar23 + 0x30)" * (cast_expression "(int *)(iVar23 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x30)" ( (binary_expression "iVar23 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_e0 != -4) && (iStack_f4 != 0))" ( (binary_expression "(iStack_e0 != -4) && (iStack_f4 != 0)" (parenthesized_expression "(iStack_e0 != -4)" ( (binary_expression "iStack_e0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_f4 != 0)" ( (binary_expression "iStack_f4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_f4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_f4 + 100) == 0" (pointer_expression "*(int *)(iStack_f4 + 100)" * (cast_expression "(int *)(iStack_f4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_f4 + 100)" ( (binary_expression "iStack_f4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_f4 + 0x60) = iVar24 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_f4 + 0x60) = iVar24 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_f4 + 0x60)" * (cast_expression "(int *)(iStack_f4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_f4 + 0x60)" ( (binary_expression "iStack_f4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar24 * -0x33333333 + -1" (binary_expression "iVar24 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;" (assignment_expression "*(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1" (pointer_expression "*(int *)(iStack_f4 + 100)" * (cast_expression "(int *)(iStack_f4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_f4 + 100)" ( (binary_expression "iStack_f4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_f4 + 100) + 1" (pointer_expression "*(int *)(iStack_f4 + 100)" * (cast_expression "(int *)(iStack_f4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_f4 + 100)" ( (binary_expression "iStack_f4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_100 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcStack_100 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_100 + -0x7810)" * (cast_expression "(code **)(pcStack_100 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_100 + -0x7810)" ( (binary_expression "pcStack_100 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = add_output_section_generic;" (assignment_expression "pcVar38 = add_output_section_generic" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;" (assignment_expression "iVar24 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_100 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_100 + -0x7fc4)" * (cast_expression "(int *)(pcStack_100 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_100 + -0x7fc4)" ( (binary_expression "pcStack_100 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar24,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_100 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_100 + -0x7924)" * (cast_expression "(int *)(pcStack_100 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_100 + -0x7924)" ( (binary_expression "pcStack_100 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_160 = pcVar37 + 0x273ab4;" (assignment_expression "pcStack_160 = pcVar37 + 0x273ab4" identifier = (binary_expression "pcVar37 + 0x273ab4" identifier + number_literal)) ;) (expression_statement "uStack_170 = uStack_110;" (assignment_expression "uStack_170 = uStack_110" identifier = identifier) ;) (expression_statement "uStack_168 = 0;" (assignment_expression "uStack_168 = 0" identifier = number_literal) ;) (expression_statement "uStack_16c = uStack_10c;" (assignment_expression "uStack_16c = uStack_10c" identifier = identifier) ;) (expression_statement "ppuStack_130 = &puStack_f8;" (assignment_expression "ppuStack_130 = &puStack_f8" identifier = (pointer_expression "&puStack_f8" & identifier)) ;) (expression_statement "iStack_12c = iVar23;" (assignment_expression "iStack_12c = iVar23" identifier = identifier) ;) (expression_statement "iStack_128 = iVar21;" (assignment_expression "iStack_128 = iVar21" identifier = identifier) ;) (expression_statement "pcStack_124 = pcVar38;" (assignment_expression "pcStack_124 = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26c80c))(&uStack_158);" (call_expression "(**(code **)(pcVar37 + 0x26c80c))(&uStack_158)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26c80c))" ( (pointer_expression "**(code **)(pcVar37 + 0x26c80c)" * (pointer_expression "*(code **)(pcVar37 + 0x26c80c)" * (cast_expression "(code **)(pcVar37 + 0x26c80c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26c80c)" ( (binary_expression "pcVar37 + 0x26c80c" identifier + number_literal) ))))) )) (argument_list "(&uStack_158)" ( (pointer_expression "&uStack_158" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_134 = uStack_104;" (assignment_expression "uStack_134 = uStack_104" identifier = identifier) ;) (expression_statement "uStack_138 = uStack_108;" (assignment_expression "uStack_138 = uStack_108" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_158);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_158;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_138);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar24 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar24 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar24 + 0x40)" * (cast_expression "(undefined4 **)(iVar24 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x40)" ( (binary_expression "iVar24 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_158);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_160 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_158);" (call_expression "(**(code **)(pcStack_160 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_158)" (parenthesized_expression "(**(code **)(pcStack_160 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_160 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_160 + -0x5cb0)" * (cast_expression "(code **)(pcStack_160 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_160 + -0x5cb0)" ( (binary_expression "pcStack_160 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar24 + 0x38,puVar22,&uStack_158)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_158" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_158;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_138);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_158;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_138);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_158;" (assignment_expression "puVar12 = &uStack_158" identifier = (pointer_expression "&uStack_158" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_138);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "uVar35 = puVar17[1];" (assignment_expression "uVar35 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = uVar35;" (assignment_expression "puVar4[1] = uVar35" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_138)" ( (binary_expression "puVar12 != &uStack_138" identifier != (pointer_expression "&uStack_138" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar24 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar24 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;" (assignment_expression "iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    puVar34[0x20] = puVar34[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar24 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar24 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar24 + 0x20) << 1" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    puVar34[0x20] = puVar34[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;" (assignment_expression "*(int *)(iVar24 + 0x14) = iVar21 * 0x33333338" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar21 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar24 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar24 + 0x10)" * (cast_expression "(undefined4 *)(iVar24 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar34[0x20] = puVar34[0x20] & 0xf7 | 8;" (assignment_expression "puVar34[0x20] = puVar34[0x20] & 0xf7 | 8" (subscript_expression "puVar34[0x20]" identifier [ number_literal ]) = (binary_expression "puVar34[0x20] & 0xf7 | 8" (binary_expression "puVar34[0x20] & 0xf7" (subscript_expression "puVar34[0x20]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) (if_statement "if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_144 << 0x1c < 0)" ( (binary_expression "iStack_144 << 0x1c < 0" (binary_expression "iStack_144 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;" (assignment_expression "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_140 != -4) && (iStack_154 != 0))" ( (binary_expression "(iStack_140 != -4) && (iStack_154 != 0)" (parenthesized_expression "(iStack_140 != -4)" ( (binary_expression "iStack_140 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_154 != 0)" ( (binary_expression "iStack_154 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar21 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_154 + 100) == 0)" ( (binary_expression "*(int *)(iStack_154 + 100) == 0" (pointer_expression "*(int *)(iStack_154 + 100)" * (cast_expression "(int *)(iStack_154 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_154 + 100)" ( (binary_expression "iStack_154 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_154 + 0x60) = iVar21 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_154 + 0x60) = iVar21 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_154 + 0x60) = iVar21 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_154 + 0x60)" * (cast_expression "(int *)(iStack_154 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_154 + 0x60)" ( (binary_expression "iStack_154 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar21 * -0x33333333 + -1" (binary_expression "iVar21 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;" (assignment_expression "*(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1" (pointer_expression "*(int *)(iStack_154 + 100)" * (cast_expression "(int *)(iStack_154 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_154 + 100)" ( (binary_expression "iStack_154 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_154 + 100) + 1" (pointer_expression "*(int *)(iStack_154 + 100)" * (cast_expression "(int *)(iStack_154 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_154 + 100)" ( (binary_expression "iStack_154 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_160 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcStack_160 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_160 + -0x7810)" * (cast_expression "(code **)(pcStack_160 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_160 + -0x7810)" ( (binary_expression "pcStack_160 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "iVar23 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;" (assignment_expression "iVar23 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c" identifier = (binary_expression "*(int *)(pcStack_160 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_160 + -0x7924)" * (cast_expression "(int *)(pcStack_160 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_160 + -0x7924)" ( (binary_expression "pcStack_160 + -0x7924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar38 = add_absolute;" (assignment_expression "pcVar38 = add_absolute" identifier = identifier) ;) (expression_statement "iVar21 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;" (assignment_expression "iVar21 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_160 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_160 + -0x7fc4)" * (cast_expression "(int *)(pcStack_160 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_160 + -0x7fc4)" ( (binary_expression "pcStack_160 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar21,0x231);" (call_expression "(*pcVar37)(iVar21,0x231)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar21,0x231)" ( identifier , number_literal ))) ;) (expression_statement "pcStack_1c0 = pcVar37 + 0x273908;" (assignment_expression "pcStack_1c0 = pcVar37 + 0x273908" identifier = (binary_expression "pcVar37 + 0x273908" identifier + number_literal)) ;) (expression_statement "uStack_1c8 = 0;" (assignment_expression "uStack_1c8 = 0" identifier = number_literal) ;) (expression_statement "uStack_1cc = uStack_164;" (assignment_expression "uStack_1cc = uStack_164" identifier = identifier) ;) (expression_statement "uStack_1d0 = uStack_168;" (assignment_expression "uStack_1d0 = uStack_168" identifier = identifier) ;) (expression_statement "puStack_190 = &uStack_158;" (assignment_expression "puStack_190 = &uStack_158" identifier = (pointer_expression "&uStack_158" & identifier)) ;) (expression_statement "iStack_18c = iVar24;" (assignment_expression "iStack_18c = iVar24" identifier = identifier) ;) (expression_statement "puStack_188 = puVar34;" (assignment_expression "puStack_188 = puVar34" identifier = identifier) ;) (expression_statement "pcStack_184 = pcVar38;" (assignment_expression "pcStack_184 = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26e844))(&pcStack_1b8);" (call_expression "(**(code **)(pcVar37 + 0x26e844))(&pcStack_1b8)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26e844))" ( (pointer_expression "**(code **)(pcVar37 + 0x26e844)" * (pointer_expression "*(code **)(pcVar37 + 0x26e844)" * (cast_expression "(code **)(pcVar37 + 0x26e844)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26e844)" ( (binary_expression "pcVar37 + 0x26e844" identifier + number_literal) ))))) )) (argument_list "(&pcStack_1b8)" ( (pointer_expression "&pcStack_1b8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar21 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar21 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar21 + 0x3c)" * (cast_expression "(undefined4 **)(iVar21 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "pcStack_194 = pcStack_15c;" (assignment_expression "pcStack_194 = pcStack_15c" identifier = identifier) ;) (expression_statement "pcStack_198 = pcStack_160;" (assignment_expression "pcStack_198 = pcStack_160" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar21 + 0x40)) {\n    (**(code **)(pcStack_1c0 + -0x5cb0))(iVar21 + 0x38,puVar22,&pcStack_1b8);\n    puVar22 = *(undefined4 **)(iVar21 + 0x3c);\n    pcVar37 = pcStack_15c;\n  }\n  else {\n    puVar1 = puVar22;\n    ppcVar15 = &pcStack_1b8;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar12 = puVar1;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar37 = ppcVar16[1];\n      pcVar30 = ppcVar16[2];\n      pcVar38 = ppcVar16[3];\n      *puVar12 = *ppcVar16;\n      puVar12[1] = pcVar37;\n      puVar12[2] = pcVar30;\n      puVar12[3] = pcVar38;\n      puVar1 = puVar12 + 4;\n    } while (ppcVar15 != &pcStack_198);\n    puVar22 = puVar22 + 10;\n    pcVar38 = ppcVar16[5];\n    puVar12[4] = *ppcVar15;\n    puVar12[5] = pcVar38;\n    *(undefined4 **)(iVar21 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar21 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar21 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar21 + 0x40)" * (cast_expression "(undefined4 **)(iVar21 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x40)" ( (binary_expression "iVar21 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_1c0 + -0x5cb0))(iVar21 + 0x38,puVar22,&pcStack_1b8);\n    puVar22 = *(undefined4 **)(iVar21 + 0x3c);\n    pcVar37 = pcStack_15c;\n  }" { (expression_statement "(**(code **)(pcStack_1c0 + -0x5cb0))(iVar21 + 0x38,puVar22,&pcStack_1b8);" (call_expression "(**(code **)(pcStack_1c0 + -0x5cb0))(iVar21 + 0x38,puVar22,&pcStack_1b8)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x5cb0)" * (cast_expression "(code **)(pcStack_1c0 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x5cb0)" ( (binary_expression "pcStack_1c0 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar21 + 0x38,puVar22,&pcStack_1b8)" ( (binary_expression "iVar21 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&pcStack_1b8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar21 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar21 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar21 + 0x3c)" * (cast_expression "(undefined4 **)(iVar21 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = pcStack_15c;" (assignment_expression "pcVar37 = pcStack_15c" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    ppcVar15 = &pcStack_1b8;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar12 = puVar1;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar37 = ppcVar16[1];\n      pcVar30 = ppcVar16[2];\n      pcVar38 = ppcVar16[3];\n      *puVar12 = *ppcVar16;\n      puVar12[1] = pcVar37;\n      puVar12[2] = pcVar30;\n      puVar12[3] = pcVar38;\n      puVar1 = puVar12 + 4;\n    } while (ppcVar15 != &pcStack_198);\n    puVar22 = puVar22 + 10;\n    pcVar38 = ppcVar16[5];\n    puVar12[4] = *ppcVar15;\n    puVar12[5] = pcVar38;\n    *(undefined4 **)(iVar21 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    ppcVar15 = &pcStack_1b8;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar12 = puVar1;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar37 = ppcVar16[1];\n      pcVar30 = ppcVar16[2];\n      pcVar38 = ppcVar16[3];\n      *puVar12 = *ppcVar16;\n      puVar12[1] = pcVar37;\n      puVar12[2] = pcVar30;\n      puVar12[3] = pcVar38;\n      puVar1 = puVar12 + 4;\n    } while (ppcVar15 != &pcStack_198);\n    puVar22 = puVar22 + 10;\n    pcVar38 = ppcVar16[5];\n    puVar12[4] = *ppcVar15;\n    puVar12[5] = pcVar38;\n    *(undefined4 **)(iVar21 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "ppcVar15 = &pcStack_1b8;" (assignment_expression "ppcVar15 = &pcStack_1b8" identifier = (pointer_expression "&pcStack_1b8" & identifier)) ;) (do_statement "do {\n      ppcVar16 = ppcVar15;\n      puVar12 = puVar1;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar37 = ppcVar16[1];\n      pcVar30 = ppcVar16[2];\n      pcVar38 = ppcVar16[3];\n      *puVar12 = *ppcVar16;\n      puVar12[1] = pcVar37;\n      puVar12[2] = pcVar30;\n      puVar12[3] = pcVar38;\n      puVar1 = puVar12 + 4;\n    } while (ppcVar15 != &pcStack_198);" do (compound_statement "{\n      ppcVar16 = ppcVar15;\n      puVar12 = puVar1;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar37 = ppcVar16[1];\n      pcVar30 = ppcVar16[2];\n      pcVar38 = ppcVar16[3];\n      *puVar12 = *ppcVar16;\n      puVar12[1] = pcVar37;\n      puVar12[2] = pcVar30;\n      puVar12[3] = pcVar38;\n      puVar1 = puVar12 + 4;\n    }" { (expression_statement "ppcVar16 = ppcVar15;" (assignment_expression "ppcVar16 = ppcVar15" identifier = identifier) ;) (expression_statement "puVar12 = puVar1;" (assignment_expression "puVar12 = puVar1" identifier = identifier) ;) (expression_statement "ppcVar15 = ppcVar16 + 4;" (assignment_expression "ppcVar15 = ppcVar16 + 4" identifier = (binary_expression "ppcVar16 + 4" identifier + number_literal)) ;) (expression_statement "pcVar37 = ppcVar16[1];" (assignment_expression "pcVar37 = ppcVar16[1]" identifier = (subscript_expression "ppcVar16[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar30 = ppcVar16[2];" (assignment_expression "pcVar30 = ppcVar16[2]" identifier = (subscript_expression "ppcVar16[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar38 = ppcVar16[3];" (assignment_expression "pcVar38 = ppcVar16[3]" identifier = (subscript_expression "ppcVar16[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar12 = *ppcVar16;" (assignment_expression "*puVar12 = *ppcVar16" (pointer_expression "*puVar12" * identifier) = (pointer_expression "*ppcVar16" * identifier)) ;) (expression_statement "puVar12[1] = pcVar37;" (assignment_expression "puVar12[1] = pcVar37" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = pcVar30;" (assignment_expression "puVar12[2] = pcVar30" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = pcVar38;" (assignment_expression "puVar12[3] = pcVar38" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar12 + 4;" (assignment_expression "puVar1 = puVar12 + 4" identifier = (binary_expression "puVar12 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppcVar15 != &pcStack_198)" ( (binary_expression "ppcVar15 != &pcStack_198" identifier != (pointer_expression "&pcStack_198" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "pcVar38 = ppcVar16[5];" (assignment_expression "pcVar38 = ppcVar16[5]" identifier = (subscript_expression "ppcVar16[5]" identifier [ number_literal ])) ;) (expression_statement "puVar12[4] = *ppcVar15;" (assignment_expression "puVar12[4] = *ppcVar15" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = (pointer_expression "*ppcVar15" * identifier)) ;) (expression_statement "puVar12[5] = pcVar38;" (assignment_expression "puVar12[5] = pcVar38" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar21 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar21 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar21 + 0x3c)" * (cast_expression "(undefined4 **)(iVar21 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar24 = (int)puVar22 - *(int *)(iVar21 + 0x38) >> 3;" (assignment_expression "iVar24 = (int)puVar22 - *(int *)(iVar21 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar21 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar21 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar21 + 0x38)" * (cast_expression "(int *)(iVar21 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x38)" ( (binary_expression "iVar21 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar21 + 0x20) << 1) {\n    *(int *)(iVar21 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar21 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar21 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar21 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar21 + 0x20) << 1" (pointer_expression "*(int *)(iVar21 + 0x20)" * (cast_expression "(int *)(iVar21 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar21 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar21 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar21 + 0x14) = iVar24 * 0x33333338;" (assignment_expression "*(int *)(iVar21 + 0x14) = iVar24 * 0x33333338" (pointer_expression "*(int *)(iVar21 + 0x14)" * (cast_expression "(int *)(iVar21 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x14)" ( (binary_expression "iVar21 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar24 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar21 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 0x10)" * (cast_expression "(undefined4 *)(iVar21 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x10)" ( (binary_expression "iVar21 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_1a4 << 0x1c < 0)" ( (binary_expression "iStack_1a4 << 0x1c < 0" (binary_expression "iStack_1a4 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;" (assignment_expression "*(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1" (pointer_expression "*(int *)(iVar21 + 0x30)" * (cast_expression "(int *)(iVar21 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x30)" ( (binary_expression "iVar21 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar21 + 0x30) + 1" (pointer_expression "*(int *)(iVar21 + 0x30)" * (cast_expression "(int *)(iVar21 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x30)" ( (binary_expression "iVar21 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_1a0 != -4) && (iStack_1b4 != 0))" ( (binary_expression "(iStack_1a0 != -4) && (iStack_1b4 != 0)" (parenthesized_expression "(iStack_1a0 != -4)" ( (binary_expression "iStack_1a0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_1b4 != 0)" ( (binary_expression "iStack_1b4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_1b4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_1b4 + 100) == 0" (pointer_expression "*(int *)(iStack_1b4 + 100)" * (cast_expression "(int *)(iStack_1b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b4 + 100)" ( (binary_expression "iStack_1b4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_1b4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_1b4 + 0x60) = iVar24 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_1b4 + 0x60) = iVar24 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_1b4 + 0x60)" * (cast_expression "(int *)(iStack_1b4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b4 + 0x60)" ( (binary_expression "iStack_1b4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar24 * -0x33333333 + -1" (binary_expression "iVar24 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;" (assignment_expression "*(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1" (pointer_expression "*(int *)(iStack_1b4 + 100)" * (cast_expression "(int *)(iStack_1b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b4 + 100)" ( (binary_expression "iStack_1b4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_1b4 + 100) + 1" (pointer_expression "*(int *)(iStack_1b4 + 100)" * (cast_expression "(int *)(iStack_1b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b4 + 100)" ( (binary_expression "iStack_1b4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar38 = *(code **)(pcStack_1c0 + -0x7810);" (assignment_expression "pcVar38 = *(code **)(pcStack_1c0 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_1c0 + -0x7810)" * (cast_expression "(code **)(pcStack_1c0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7810)" ( (binary_expression "pcStack_1c0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = add_output_section_relative;" (assignment_expression "pcVar30 = add_output_section_relative" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(pcStack_1c0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar24 = *(int *)(pcStack_1c0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_1c0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fc4)" ( (binary_expression "pcStack_1c0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar38)(iVar24,0x231,*(int *)(pcStack_1c0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar38)(iVar24,0x231,*(int *)(pcStack_1c0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(iVar24,0x231,*(int *)(pcStack_1c0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_1c0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_1c0 + -0x7924)" * (cast_expression "(int *)(pcStack_1c0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7924)" ( (binary_expression "pcStack_1c0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_220 = pcVar38 + 0x273750;" (assignment_expression "pcStack_220 = pcVar38 + 0x273750" identifier = (binary_expression "pcVar38 + 0x273750" identifier + number_literal)) ;) (expression_statement "uStack_228 = 1;" (assignment_expression "uStack_228 = 1" identifier = number_literal) ;) (expression_statement "uStack_230 = uStack_1c8;" (assignment_expression "uStack_230 = uStack_1c8" identifier = identifier) ;) (expression_statement "iStack_22c = iStack_1c4;" (assignment_expression "iStack_22c = iStack_1c4" identifier = identifier) ;) (expression_statement "uStack_238 = uStack_1cc;" (assignment_expression "uStack_238 = uStack_1cc" identifier = identifier) ;) (expression_statement "ppcStack_1f0 = &pcStack_1b8;" (assignment_expression "ppcStack_1f0 = &pcStack_1b8" identifier = (pointer_expression "&pcStack_1b8" & identifier)) ;) (expression_statement "iStack_1ec = iVar21;" (assignment_expression "iStack_1ec = iVar21" identifier = identifier) ;) (expression_statement "iStack_1e8 = iVar23;" (assignment_expression "iStack_1e8 = iVar23" identifier = identifier) ;) (expression_statement "pcStack_1e4 = pcVar30;" (assignment_expression "pcStack_1e4 = pcVar30" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar38 + 0x26c4ac))(&pcStack_218);" (call_expression "(**(code **)(pcVar38 + 0x26c4ac))(&pcStack_218)" (parenthesized_expression "(**(code **)(pcVar38 + 0x26c4ac))" ( (pointer_expression "**(code **)(pcVar38 + 0x26c4ac)" * (pointer_expression "*(code **)(pcVar38 + 0x26c4ac)" * (cast_expression "(code **)(pcVar38 + 0x26c4ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + 0x26c4ac)" ( (binary_expression "pcVar38 + 0x26c4ac" identifier + number_literal) ))))) )) (argument_list "(&pcStack_218)" ( (pointer_expression "&pcStack_218" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "pcStack_1f4 = pcStack_1bc;" (assignment_expression "pcStack_1f4 = pcStack_1bc" identifier = identifier) ;) (expression_statement "pcStack_1f8 = pcStack_1c0;" (assignment_expression "pcStack_1f8 = pcStack_1c0" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_220 + -0x5cb0))(iVar24 + 0x38,puVar22,&pcStack_218);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n    pcVar38 = pcStack_1bc;\n  }\n  else {\n    puVar1 = puVar22;\n    ppcVar15 = &pcStack_218;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar12 = puVar1;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar38 = ppcVar16[1];\n      pcVar31 = ppcVar16[2];\n      pcVar30 = ppcVar16[3];\n      *puVar12 = *ppcVar16;\n      puVar12[1] = pcVar38;\n      puVar12[2] = pcVar31;\n      puVar12[3] = pcVar30;\n      puVar1 = puVar12 + 4;\n    } while (ppcVar15 != &pcStack_1f8);\n    puVar22 = puVar22 + 10;\n    pcVar30 = ppcVar16[5];\n    puVar12[4] = *ppcVar15;\n    puVar12[5] = pcVar30;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar24 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar24 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar24 + 0x40)" * (cast_expression "(undefined4 **)(iVar24 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x40)" ( (binary_expression "iVar24 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_220 + -0x5cb0))(iVar24 + 0x38,puVar22,&pcStack_218);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n    pcVar38 = pcStack_1bc;\n  }" { (expression_statement "(**(code **)(pcStack_220 + -0x5cb0))(iVar24 + 0x38,puVar22,&pcStack_218);" (call_expression "(**(code **)(pcStack_220 + -0x5cb0))(iVar24 + 0x38,puVar22,&pcStack_218)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_220 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_220 + -0x5cb0)" * (cast_expression "(code **)(pcStack_220 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x5cb0)" ( (binary_expression "pcStack_220 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar24 + 0x38,puVar22,&pcStack_218)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&pcStack_218" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = pcStack_1bc;" (assignment_expression "pcVar38 = pcStack_1bc" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    ppcVar15 = &pcStack_218;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar12 = puVar1;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar38 = ppcVar16[1];\n      pcVar31 = ppcVar16[2];\n      pcVar30 = ppcVar16[3];\n      *puVar12 = *ppcVar16;\n      puVar12[1] = pcVar38;\n      puVar12[2] = pcVar31;\n      puVar12[3] = pcVar30;\n      puVar1 = puVar12 + 4;\n    } while (ppcVar15 != &pcStack_1f8);\n    puVar22 = puVar22 + 10;\n    pcVar30 = ppcVar16[5];\n    puVar12[4] = *ppcVar15;\n    puVar12[5] = pcVar30;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    ppcVar15 = &pcStack_218;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar12 = puVar1;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar38 = ppcVar16[1];\n      pcVar31 = ppcVar16[2];\n      pcVar30 = ppcVar16[3];\n      *puVar12 = *ppcVar16;\n      puVar12[1] = pcVar38;\n      puVar12[2] = pcVar31;\n      puVar12[3] = pcVar30;\n      puVar1 = puVar12 + 4;\n    } while (ppcVar15 != &pcStack_1f8);\n    puVar22 = puVar22 + 10;\n    pcVar30 = ppcVar16[5];\n    puVar12[4] = *ppcVar15;\n    puVar12[5] = pcVar30;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "ppcVar15 = &pcStack_218;" (assignment_expression "ppcVar15 = &pcStack_218" identifier = (pointer_expression "&pcStack_218" & identifier)) ;) (do_statement "do {\n      ppcVar16 = ppcVar15;\n      puVar12 = puVar1;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar38 = ppcVar16[1];\n      pcVar31 = ppcVar16[2];\n      pcVar30 = ppcVar16[3];\n      *puVar12 = *ppcVar16;\n      puVar12[1] = pcVar38;\n      puVar12[2] = pcVar31;\n      puVar12[3] = pcVar30;\n      puVar1 = puVar12 + 4;\n    } while (ppcVar15 != &pcStack_1f8);" do (compound_statement "{\n      ppcVar16 = ppcVar15;\n      puVar12 = puVar1;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar38 = ppcVar16[1];\n      pcVar31 = ppcVar16[2];\n      pcVar30 = ppcVar16[3];\n      *puVar12 = *ppcVar16;\n      puVar12[1] = pcVar38;\n      puVar12[2] = pcVar31;\n      puVar12[3] = pcVar30;\n      puVar1 = puVar12 + 4;\n    }" { (expression_statement "ppcVar16 = ppcVar15;" (assignment_expression "ppcVar16 = ppcVar15" identifier = identifier) ;) (expression_statement "puVar12 = puVar1;" (assignment_expression "puVar12 = puVar1" identifier = identifier) ;) (expression_statement "ppcVar15 = ppcVar16 + 4;" (assignment_expression "ppcVar15 = ppcVar16 + 4" identifier = (binary_expression "ppcVar16 + 4" identifier + number_literal)) ;) (expression_statement "pcVar38 = ppcVar16[1];" (assignment_expression "pcVar38 = ppcVar16[1]" identifier = (subscript_expression "ppcVar16[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar31 = ppcVar16[2];" (assignment_expression "pcVar31 = ppcVar16[2]" identifier = (subscript_expression "ppcVar16[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar30 = ppcVar16[3];" (assignment_expression "pcVar30 = ppcVar16[3]" identifier = (subscript_expression "ppcVar16[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar12 = *ppcVar16;" (assignment_expression "*puVar12 = *ppcVar16" (pointer_expression "*puVar12" * identifier) = (pointer_expression "*ppcVar16" * identifier)) ;) (expression_statement "puVar12[1] = pcVar38;" (assignment_expression "puVar12[1] = pcVar38" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = pcVar31;" (assignment_expression "puVar12[2] = pcVar31" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = pcVar30;" (assignment_expression "puVar12[3] = pcVar30" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar12 + 4;" (assignment_expression "puVar1 = puVar12 + 4" identifier = (binary_expression "puVar12 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppcVar15 != &pcStack_1f8)" ( (binary_expression "ppcVar15 != &pcStack_1f8" identifier != (pointer_expression "&pcStack_1f8" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "pcVar30 = ppcVar16[5];" (assignment_expression "pcVar30 = ppcVar16[5]" identifier = (subscript_expression "ppcVar16[5]" identifier [ number_literal ])) ;) (expression_statement "puVar12[4] = *ppcVar15;" (assignment_expression "puVar12[4] = *ppcVar15" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = (pointer_expression "*ppcVar15" * identifier)) ;) (expression_statement "puVar12[5] = pcVar30;" (assignment_expression "puVar12[5] = pcVar30" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar24 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar24 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;" (assignment_expression "iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    pcVar37[0x20] = (code)((byte)pcVar37[0x20] & 0xf7 | 8);\n    if (iStack_204 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_200 != -4) && (iStack_214 != 0)) {\n      if (*(int *)(iStack_214 + 100) == 0) {\n        *(int *)(iStack_214 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_214 + 100) = *(int *)(iStack_214 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar24 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar24 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar24 + 0x20) << 1" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    pcVar37[0x20] = (code)((byte)pcVar37[0x20] & 0xf7 | 8);\n    if (iStack_204 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_200 != -4) && (iStack_214 != 0)) {\n      if (*(int *)(iStack_214 + 100) == 0) {\n        *(int *)(iStack_214 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_214 + 100) = *(int *)(iStack_214 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;" (assignment_expression "*(int *)(iVar24 + 0x14) = iVar21 * 0x33333338" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar21 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar24 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar24 + 0x10)" * (cast_expression "(undefined4 *)(iVar24 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar37[0x20] = (code)((byte)pcVar37[0x20] & 0xf7 | 8);" (assignment_expression "pcVar37[0x20] = (code)((byte)pcVar37[0x20] & 0xf7 | 8)" (subscript_expression "pcVar37[0x20]" identifier [ number_literal ]) = (call_expression "(code)((byte)pcVar37[0x20] & 0xf7 | 8)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((byte)pcVar37[0x20] & 0xf7 | 8)" ( (binary_expression "(byte)pcVar37[0x20] & 0xf7 | 8" (binary_expression "(byte)pcVar37[0x20] & 0xf7" (cast_expression "(byte)pcVar37[0x20]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar37[0x20]" identifier [ number_literal ])) & number_literal) | number_literal) )))) ;) (if_statement "if (iStack_204 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_204 << 0x1c < 0)" ( (binary_expression "iStack_204 << 0x1c < 0" (binary_expression "iStack_204 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;" (assignment_expression "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_200 != -4) && (iStack_214 != 0)) {\n      if (*(int *)(iStack_214 + 100) == 0) {\n        *(int *)(iStack_214 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_214 + 100) = *(int *)(iStack_214 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_200 != -4) && (iStack_214 != 0))" ( (binary_expression "(iStack_200 != -4) && (iStack_214 != 0)" (parenthesized_expression "(iStack_200 != -4)" ( (binary_expression "iStack_200 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_214 != 0)" ( (binary_expression "iStack_214 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_214 + 100) == 0) {\n        *(int *)(iStack_214 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_214 + 100) = *(int *)(iStack_214 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_214 + 100) == 0) {\n        *(int *)(iStack_214 + 0x60) = iVar21 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_214 + 100) == 0)" ( (binary_expression "*(int *)(iStack_214 + 100) == 0" (pointer_expression "*(int *)(iStack_214 + 100)" * (cast_expression "(int *)(iStack_214 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_214 + 100)" ( (binary_expression "iStack_214 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_214 + 0x60) = iVar21 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_214 + 0x60) = iVar21 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_214 + 0x60) = iVar21 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_214 + 0x60)" * (cast_expression "(int *)(iStack_214 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_214 + 0x60)" ( (binary_expression "iStack_214 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar21 * -0x33333333 + -1" (binary_expression "iVar21 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_214 + 100) = *(int *)(iStack_214 + 100) + 1;" (assignment_expression "*(int *)(iStack_214 + 100) = *(int *)(iStack_214 + 100) + 1" (pointer_expression "*(int *)(iStack_214 + 100)" * (cast_expression "(int *)(iStack_214 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_214 + 100)" ( (binary_expression "iStack_214 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_214 + 100) + 1" (pointer_expression "*(int *)(iStack_214 + 100)" * (cast_expression "(int *)(iStack_214 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_214 + 100)" ( (binary_expression "iStack_214 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar30 = *(code **)(pcStack_220 + -0x7810);" (assignment_expression "pcVar30 = *(code **)(pcStack_220 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_220 + -0x7810)" * (cast_expression "(code **)(pcStack_220 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x7810)" ( (binary_expression "pcStack_220 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar31 = add_output_section_generic;" (assignment_expression "pcVar31 = add_output_section_generic" identifier = identifier) ;) (expression_statement "iVar21 = *(int *)(pcStack_220 + -0x7fc4) + 0x3574;" (assignment_expression "iVar21 = *(int *)(pcStack_220 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_220 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_220 + -0x7fc4)" * (cast_expression "(int *)(pcStack_220 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_220 + -0x7fc4)" ( (binary_expression "pcStack_220 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar30)(iVar21,0x231,*(int *)(pcStack_220 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar30)(iVar21,0x231,*(int *)(pcStack_220 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(iVar21,0x231,*(int *)(pcStack_220 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_220 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_220 + -0x7924)" * (cast_expression "(int *)(pcStack_220 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_220 + -0x7924)" ( (binary_expression "pcStack_220 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_288 = pcVar30 + 0x273594;" (assignment_expression "pcStack_288 = pcVar30 + 0x273594" identifier = (binary_expression "pcVar30 + 0x273594" identifier + number_literal)) ;) (expression_statement "uStack_298 = uStack_230;" (assignment_expression "uStack_298 = uStack_230" identifier = identifier) ;) (expression_statement "uStack_290 = 0;" (assignment_expression "uStack_290 = 0" identifier = number_literal) ;) (expression_statement "iStack_294 = iStack_22c;" (assignment_expression "iStack_294 = iStack_22c" identifier = identifier) ;) (expression_statement "uStack_2a0 = uStack_234;" (assignment_expression "uStack_2a0 = uStack_234" identifier = identifier) ;) (expression_statement "ppcStack_258 = &pcStack_218;" (assignment_expression "ppcStack_258 = &pcStack_218" identifier = (pointer_expression "&pcStack_218" & identifier)) ;) (expression_statement "iStack_254 = iVar24;" (assignment_expression "iStack_254 = iVar24" identifier = identifier) ;) (expression_statement "pcStack_250 = pcVar37;" (assignment_expression "pcStack_250 = pcVar37" identifier = identifier) ;) (expression_statement "pcStack_24c = pcVar31;" (assignment_expression "pcStack_24c = pcVar31" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar30 + 0x26c2f0))(&uStack_280);" (call_expression "(**(code **)(pcVar30 + 0x26c2f0))(&uStack_280)" (parenthesized_expression "(**(code **)(pcVar30 + 0x26c2f0))" ( (pointer_expression "**(code **)(pcVar30 + 0x26c2f0)" * (pointer_expression "*(code **)(pcVar30 + 0x26c2f0)" * (cast_expression "(code **)(pcVar30 + 0x26c2f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x26c2f0)" ( (binary_expression "pcVar30 + 0x26c2f0" identifier + number_literal) ))))) )) (argument_list "(&uStack_280)" ( (pointer_expression "&uStack_280" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar21 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar21 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar21 + 0x3c)" * (cast_expression "(undefined4 **)(iVar21 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iStack_25c = iStack_224;" (assignment_expression "iStack_25c = iStack_224" identifier = identifier) ;) (expression_statement "uStack_260 = uStack_228;" (assignment_expression "uStack_260 = uStack_228" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar21 + 0x40)) {\n    (**(code **)(pcStack_288 + -0x5cb0))(iVar21 + 0x38,puVar22,&uStack_280);\n    puVar22 = *(undefined4 **)(iVar21 + 0x3c);\n    iVar23 = iStack_224;\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_280;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_260);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar21 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar21 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar21 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar21 + 0x40)" * (cast_expression "(undefined4 **)(iVar21 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x40)" ( (binary_expression "iVar21 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_288 + -0x5cb0))(iVar21 + 0x38,puVar22,&uStack_280);\n    puVar22 = *(undefined4 **)(iVar21 + 0x3c);\n    iVar23 = iStack_224;\n  }" { (expression_statement "(**(code **)(pcStack_288 + -0x5cb0))(iVar21 + 0x38,puVar22,&uStack_280);" (call_expression "(**(code **)(pcStack_288 + -0x5cb0))(iVar21 + 0x38,puVar22,&uStack_280)" (parenthesized_expression "(**(code **)(pcStack_288 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_288 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_288 + -0x5cb0)" * (cast_expression "(code **)(pcStack_288 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_288 + -0x5cb0)" ( (binary_expression "pcStack_288 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar21 + 0x38,puVar22,&uStack_280)" ( (binary_expression "iVar21 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_280" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar21 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar21 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar21 + 0x3c)" * (cast_expression "(undefined4 **)(iVar21 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar23 = iStack_224;" (assignment_expression "iVar23 = iStack_224" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_280;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_260);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar21 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_280;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_260);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar21 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_280;" (assignment_expression "puVar12 = &uStack_280" identifier = (pointer_expression "&uStack_280" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_260);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "iVar23 = puVar17[1];" (assignment_expression "iVar23 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = iVar23;" (assignment_expression "puVar4[1] = iVar23" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_260)" ( (binary_expression "puVar12 != &uStack_260" identifier != (pointer_expression "&uStack_260" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar21 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar21 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar21 + 0x3c)" * (cast_expression "(undefined4 **)(iVar21 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x3c)" ( (binary_expression "iVar21 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar24 = (int)puVar22 - *(int *)(iVar21 + 0x38) >> 3;" (assignment_expression "iVar24 = (int)puVar22 - *(int *)(iVar21 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar21 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar21 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar21 + 0x38)" * (cast_expression "(int *)(iVar21 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x38)" ( (binary_expression "iVar21 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar21 + 0x20) << 1) {\n    *(int *)(iVar21 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar21 + 0x10) = 0;\n    pcVar38[0x20] = (code)((byte)pcVar38[0x20] & 0xf7 | 8);\n    if (iStack_26c << 0x1c < 0) {\n      *(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;\n    }\n    if ((iStack_268 != -4) && (iStack_27c != 0)) {\n      if (*(int *)(iStack_27c + 100) == 0) {\n        *(int *)(iStack_27c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_27c + 100) = *(int *)(iStack_27c + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar21 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar21 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar21 + 0x20) << 1" (pointer_expression "*(int *)(iVar21 + 0x20)" * (cast_expression "(int *)(iVar21 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar21 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar21 + 0x10) = 0;\n    pcVar38[0x20] = (code)((byte)pcVar38[0x20] & 0xf7 | 8);\n    if (iStack_26c << 0x1c < 0) {\n      *(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;\n    }\n    if ((iStack_268 != -4) && (iStack_27c != 0)) {\n      if (*(int *)(iStack_27c + 100) == 0) {\n        *(int *)(iStack_27c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_27c + 100) = *(int *)(iStack_27c + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar21 + 0x14) = iVar24 * 0x33333338;" (assignment_expression "*(int *)(iVar21 + 0x14) = iVar24 * 0x33333338" (pointer_expression "*(int *)(iVar21 + 0x14)" * (cast_expression "(int *)(iVar21 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x14)" ( (binary_expression "iVar21 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar24 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar21 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar21 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar21 + 0x10)" * (cast_expression "(undefined4 *)(iVar21 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x10)" ( (binary_expression "iVar21 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar38[0x20] = (code)((byte)pcVar38[0x20] & 0xf7 | 8);" (assignment_expression "pcVar38[0x20] = (code)((byte)pcVar38[0x20] & 0xf7 | 8)" (subscript_expression "pcVar38[0x20]" identifier [ number_literal ]) = (call_expression "(code)((byte)pcVar38[0x20] & 0xf7 | 8)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((byte)pcVar38[0x20] & 0xf7 | 8)" ( (binary_expression "(byte)pcVar38[0x20] & 0xf7 | 8" (binary_expression "(byte)pcVar38[0x20] & 0xf7" (cast_expression "(byte)pcVar38[0x20]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar38[0x20]" identifier [ number_literal ])) & number_literal) | number_literal) )))) ;) (if_statement "if (iStack_26c << 0x1c < 0) {\n      *(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_26c << 0x1c < 0)" ( (binary_expression "iStack_26c << 0x1c < 0" (binary_expression "iStack_26c << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1;" (assignment_expression "*(int *)(iVar21 + 0x30) = *(int *)(iVar21 + 0x30) + 1" (pointer_expression "*(int *)(iVar21 + 0x30)" * (cast_expression "(int *)(iVar21 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x30)" ( (binary_expression "iVar21 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar21 + 0x30) + 1" (pointer_expression "*(int *)(iVar21 + 0x30)" * (cast_expression "(int *)(iVar21 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x30)" ( (binary_expression "iVar21 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_268 != -4) && (iStack_27c != 0)) {\n      if (*(int *)(iStack_27c + 100) == 0) {\n        *(int *)(iStack_27c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_27c + 100) = *(int *)(iStack_27c + 100) + 1;\n    }" if (parenthesized_expression "((iStack_268 != -4) && (iStack_27c != 0))" ( (binary_expression "(iStack_268 != -4) && (iStack_27c != 0)" (parenthesized_expression "(iStack_268 != -4)" ( (binary_expression "iStack_268 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_27c != 0)" ( (binary_expression "iStack_27c != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_27c + 100) == 0) {\n        *(int *)(iStack_27c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_27c + 100) = *(int *)(iStack_27c + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_27c + 100) == 0) {\n        *(int *)(iStack_27c + 0x60) = iVar24 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_27c + 100) == 0)" ( (binary_expression "*(int *)(iStack_27c + 100) == 0" (pointer_expression "*(int *)(iStack_27c + 100)" * (cast_expression "(int *)(iStack_27c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_27c + 100)" ( (binary_expression "iStack_27c + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_27c + 0x60) = iVar24 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_27c + 0x60) = iVar24 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_27c + 0x60) = iVar24 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_27c + 0x60)" * (cast_expression "(int *)(iStack_27c + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_27c + 0x60)" ( (binary_expression "iStack_27c + 0x60" identifier + number_literal) )))) = (binary_expression "iVar24 * -0x33333333 + -1" (binary_expression "iVar24 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_27c + 100) = *(int *)(iStack_27c + 100) + 1;" (assignment_expression "*(int *)(iStack_27c + 100) = *(int *)(iStack_27c + 100) + 1" (pointer_expression "*(int *)(iStack_27c + 100)" * (cast_expression "(int *)(iStack_27c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_27c + 100)" ( (binary_expression "iStack_27c + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_27c + 100) + 1" (pointer_expression "*(int *)(iStack_27c + 100)" * (cast_expression "(int *)(iStack_27c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_27c + 100)" ( (binary_expression "iStack_27c + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_288 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcStack_288 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_288 + -0x7810)" * (cast_expression "(code **)(pcStack_288 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_288 + -0x7810)" ( (binary_expression "pcStack_288 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = add_output_section;" (assignment_expression "pcVar30 = add_output_section" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(pcStack_288 + -0x7fc4) + 0x3574;" (assignment_expression "iVar24 = *(int *)(pcStack_288 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_288 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_288 + -0x7fc4)" * (cast_expression "(int *)(pcStack_288 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_288 + -0x7fc4)" ( (binary_expression "pcStack_288 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_288 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_288 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar24,0x231,*(int *)(pcStack_288 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_288 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_288 + -0x7924)" * (cast_expression "(int *)(pcStack_288 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_288 + -0x7924)" ( (binary_expression "pcStack_288 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_2f0 = pcVar37 + 0x2733dc;" (assignment_expression "pcStack_2f0 = pcVar37 + 0x2733dc" identifier = (binary_expression "pcVar37 + 0x2733dc" identifier + number_literal)) ;) (expression_statement "uStack_300 = uStack_298;" (assignment_expression "uStack_300 = uStack_298" identifier = identifier) ;) (expression_statement "uStack_2f8 = 0;" (assignment_expression "uStack_2f8 = 0" identifier = number_literal) ;) (expression_statement "iStack_2fc = iStack_294;" (assignment_expression "iStack_2fc = iStack_294" identifier = identifier) ;) (expression_statement "uStack_308 = uStack_29c;" (assignment_expression "uStack_308 = uStack_29c" identifier = identifier) ;) (expression_statement "puStack_2c0 = &uStack_280;" (assignment_expression "puStack_2c0 = &uStack_280" identifier = (pointer_expression "&uStack_280" & identifier)) ;) (expression_statement "iStack_2bc = iVar21;" (assignment_expression "iStack_2bc = iVar21" identifier = identifier) ;) (expression_statement "pcStack_2b8 = pcVar38;" (assignment_expression "pcStack_2b8 = pcVar38" identifier = identifier) ;) (expression_statement "pcStack_2b4 = pcVar30;" (assignment_expression "pcStack_2b4 = pcVar30" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26c138))(&uStack_2e8);" (call_expression "(**(code **)(pcVar37 + 0x26c138))(&uStack_2e8)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26c138))" ( (pointer_expression "**(code **)(pcVar37 + 0x26c138)" * (pointer_expression "*(code **)(pcVar37 + 0x26c138)" * (cast_expression "(code **)(pcVar37 + 0x26c138)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26c138)" ( (binary_expression "pcVar37 + 0x26c138" identifier + number_literal) ))))) )) (argument_list "(&uStack_2e8)" ( (pointer_expression "&uStack_2e8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iStack_2c4 = iStack_28c;" (assignment_expression "iStack_2c4 = iStack_28c" identifier = identifier) ;) (expression_statement "uStack_2c8 = uStack_290;" (assignment_expression "uStack_2c8 = uStack_290" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_2f0 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_2e8);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n    iVar21 = iStack_28c;\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_2e8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_2c8);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar24 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar24 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar24 + 0x40)" * (cast_expression "(undefined4 **)(iVar24 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x40)" ( (binary_expression "iVar24 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_2f0 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_2e8);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n    iVar21 = iStack_28c;\n  }" { (expression_statement "(**(code **)(pcStack_2f0 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_2e8);" (call_expression "(**(code **)(pcStack_2f0 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_2e8)" (parenthesized_expression "(**(code **)(pcStack_2f0 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_2f0 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_2f0 + -0x5cb0)" * (cast_expression "(code **)(pcStack_2f0 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f0 + -0x5cb0)" ( (binary_expression "pcStack_2f0 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar24 + 0x38,puVar22,&uStack_2e8)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_2e8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = iStack_28c;" (assignment_expression "iVar21 = iStack_28c" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_2e8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_2c8);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_2e8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_2c8);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_2e8;" (assignment_expression "puVar12 = &uStack_2e8" identifier = (pointer_expression "&uStack_2e8" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_2c8);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "iVar21 = puVar17[1];" (assignment_expression "iVar21 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = iVar21;" (assignment_expression "puVar4[1] = iVar21" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_2c8)" ( (binary_expression "puVar12 != &uStack_2c8" identifier != (pointer_expression "&uStack_2c8" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar24 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar24 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar25 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;" (assignment_expression "iVar25 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_2d4 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_2d0 != -4) && (iStack_2e4 != 0)) {\n      if (*(int *)(iStack_2e4 + 100) == 0) {\n        *(int *)(iStack_2e4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_2e4 + 100) = *(int *)(iStack_2e4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar24 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar24 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar24 + 0x20) << 1" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_2d4 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_2d0 != -4) && (iStack_2e4 != 0)) {\n      if (*(int *)(iStack_2e4 + 100) == 0) {\n        *(int *)(iStack_2e4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_2e4 + 100) = *(int *)(iStack_2e4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;" (assignment_expression "*(int *)(iVar24 + 0x14) = iVar25 * 0x33333338" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar25 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar24 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar24 + 0x10)" * (cast_expression "(undefined4 *)(iVar24 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_2d4 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_2d4 << 0x1c < 0)" ( (binary_expression "iStack_2d4 << 0x1c < 0" (binary_expression "iStack_2d4 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;" (assignment_expression "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_2d0 != -4) && (iStack_2e4 != 0)) {\n      if (*(int *)(iStack_2e4 + 100) == 0) {\n        *(int *)(iStack_2e4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_2e4 + 100) = *(int *)(iStack_2e4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_2d0 != -4) && (iStack_2e4 != 0))" ( (binary_expression "(iStack_2d0 != -4) && (iStack_2e4 != 0)" (parenthesized_expression "(iStack_2d0 != -4)" ( (binary_expression "iStack_2d0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_2e4 != 0)" ( (binary_expression "iStack_2e4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_2e4 + 100) == 0) {\n        *(int *)(iStack_2e4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_2e4 + 100) = *(int *)(iStack_2e4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_2e4 + 100) == 0) {\n        *(int *)(iStack_2e4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_2e4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_2e4 + 100) == 0" (pointer_expression "*(int *)(iStack_2e4 + 100)" * (cast_expression "(int *)(iStack_2e4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_2e4 + 100)" ( (binary_expression "iStack_2e4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_2e4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_2e4 + 0x60) = iVar25 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_2e4 + 0x60) = iVar25 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_2e4 + 0x60)" * (cast_expression "(int *)(iStack_2e4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_2e4 + 0x60)" ( (binary_expression "iStack_2e4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar25 * -0x33333333 + -1" (binary_expression "iVar25 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_2e4 + 100) = *(int *)(iStack_2e4 + 100) + 1;" (assignment_expression "*(int *)(iStack_2e4 + 100) = *(int *)(iStack_2e4 + 100) + 1" (pointer_expression "*(int *)(iStack_2e4 + 100)" * (cast_expression "(int *)(iStack_2e4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_2e4 + 100)" ( (binary_expression "iStack_2e4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_2e4 + 100) + 1" (pointer_expression "*(int *)(iStack_2e4 + 100)" * (cast_expression "(int *)(iStack_2e4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_2e4 + 100)" ( (binary_expression "iStack_2e4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_2f0 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcStack_2f0 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_2f0 + -0x7810)" * (cast_expression "(code **)(pcStack_2f0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f0 + -0x7810)" ( (binary_expression "pcStack_2f0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = add_global;" (assignment_expression "pcVar38 = add_global" identifier = identifier) ;) (expression_statement "iVar25 = *(int *)(pcStack_2f0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar25 = *(int *)(pcStack_2f0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_2f0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_2f0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_2f0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_2f0 + -0x7fc4)" ( (binary_expression "pcStack_2f0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar25,0x231,*(int *)(pcStack_2f0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar37)(iVar25,0x231,*(int *)(pcStack_2f0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar25,0x231,*(int *)(pcStack_2f0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_2f0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_2f0 + -0x7924)" * (cast_expression "(int *)(pcStack_2f0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_2f0 + -0x7924)" ( (binary_expression "pcStack_2f0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_358 = pcVar37 + 0x273224;" (assignment_expression "pcStack_358 = pcVar37 + 0x273224" identifier = (binary_expression "pcVar37 + 0x273224" identifier + number_literal)) ;) (expression_statement "uStack_370 = uStack_308;" (assignment_expression "uStack_370 = uStack_308" identifier = identifier) ;) (expression_statement "uStack_360 = 0;" (assignment_expression "uStack_360 = 0" identifier = number_literal) ;) (expression_statement "iStack_364 = 0;" (assignment_expression "iStack_364 = 0" identifier = number_literal) ;) (expression_statement "uStack_368 = 0;" (assignment_expression "uStack_368 = 0" identifier = number_literal) ;) (expression_statement "uStack_36c = uStack_304;" (assignment_expression "uStack_36c = uStack_304" identifier = identifier) ;) (expression_statement "puStack_328 = &uStack_2e8;" (assignment_expression "puStack_328 = &uStack_2e8" identifier = (pointer_expression "&uStack_2e8" & identifier)) ;) (expression_statement "iStack_324 = iVar24;" (assignment_expression "iStack_324 = iVar24" identifier = identifier) ;) (expression_statement "iStack_320 = iVar23;" (assignment_expression "iStack_320 = iVar23" identifier = identifier) ;) (expression_statement "pcStack_31c = pcVar38;" (assignment_expression "pcStack_31c = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26bc34))(&uStack_350);" (call_expression "(**(code **)(pcVar37 + 0x26bc34))(&uStack_350)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26bc34))" ( (pointer_expression "**(code **)(pcVar37 + 0x26bc34)" * (pointer_expression "*(code **)(pcVar37 + 0x26bc34)" * (cast_expression "(code **)(pcVar37 + 0x26bc34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26bc34)" ( (binary_expression "pcVar37 + 0x26bc34" identifier + number_literal) ))))) )) (argument_list "(&uStack_350)" ( (pointer_expression "&uStack_350" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar25 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar25 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iStack_32c = iStack_2fc;" (assignment_expression "iStack_32c = iStack_2fc" identifier = identifier) ;) (expression_statement "uStack_330 = uStack_300;" (assignment_expression "uStack_330 = uStack_300" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {\n    iVar23 = iStack_2fc;\n    (**(code **)(pcStack_358 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_350);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_350;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_330);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar25 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar25 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar25 + 0x40)" * (cast_expression "(undefined4 **)(iVar25 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x40)" ( (binary_expression "iVar25 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar23 = iStack_2fc;\n    (**(code **)(pcStack_358 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_350);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }" { (expression_statement "iVar23 = iStack_2fc;" (assignment_expression "iVar23 = iStack_2fc" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_358 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_350);" (call_expression "(**(code **)(pcStack_358 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_350)" (parenthesized_expression "(**(code **)(pcStack_358 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_358 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_358 + -0x5cb0)" * (cast_expression "(code **)(pcStack_358 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_358 + -0x5cb0)" ( (binary_expression "pcStack_358 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar25 + 0x38,puVar22,&uStack_350)" ( (binary_expression "iVar25 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_350" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar25 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar25 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_350;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_330);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_350;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_330);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_350;" (assignment_expression "puVar12 = &uStack_350" identifier = (pointer_expression "&uStack_350" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_330);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "iVar23 = puVar17[1];" (assignment_expression "iVar23 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = iVar23;" (assignment_expression "puVar4[1] = iVar23" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_330)" ( (binary_expression "puVar12 != &uStack_330" identifier != (pointer_expression "&uStack_330" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar25 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar25 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar24 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;" (assignment_expression "iVar24 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar25 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar25 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar25 + 0x38)" * (cast_expression "(int *)(iVar25 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x38)" ( (binary_expression "iVar25 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar25 + 0x20) << 1) {\n    *(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_33c << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_338 != -4) && (iStack_34c != 0)) {\n      if (*(int *)(iStack_34c + 100) == 0) {\n        *(int *)(iStack_34c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_34c + 100) = *(int *)(iStack_34c + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar25 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar25 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar25 + 0x20) << 1" (pointer_expression "*(int *)(iVar25 + 0x20)" * (cast_expression "(int *)(iVar25 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x20)" ( (binary_expression "iVar25 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_33c << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_338 != -4) && (iStack_34c != 0)) {\n      if (*(int *)(iStack_34c + 100) == 0) {\n        *(int *)(iStack_34c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_34c + 100) = *(int *)(iStack_34c + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;" (assignment_expression "*(int *)(iVar25 + 0x14) = iVar24 * 0x33333338" (pointer_expression "*(int *)(iVar25 + 0x14)" * (cast_expression "(int *)(iVar25 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x14)" ( (binary_expression "iVar25 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar24 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar25 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar25 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar25 + 0x10)" * (cast_expression "(undefined4 *)(iVar25 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x10)" ( (binary_expression "iVar25 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar21 + 0x20)" * (cast_expression "(byte *)(iVar21 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar21 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar21 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar21 + 0x20)" * (cast_expression "(byte *)(iVar21 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_33c << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_33c << 0x1c < 0)" ( (binary_expression "iStack_33c << 0x1c < 0" (binary_expression "iStack_33c << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;" (assignment_expression "*(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1" (pointer_expression "*(int *)(iVar25 + 0x30)" * (cast_expression "(int *)(iVar25 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x30)" ( (binary_expression "iVar25 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar25 + 0x30) + 1" (pointer_expression "*(int *)(iVar25 + 0x30)" * (cast_expression "(int *)(iVar25 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x30)" ( (binary_expression "iVar25 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_338 != -4) && (iStack_34c != 0)) {\n      if (*(int *)(iStack_34c + 100) == 0) {\n        *(int *)(iStack_34c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_34c + 100) = *(int *)(iStack_34c + 100) + 1;\n    }" if (parenthesized_expression "((iStack_338 != -4) && (iStack_34c != 0))" ( (binary_expression "(iStack_338 != -4) && (iStack_34c != 0)" (parenthesized_expression "(iStack_338 != -4)" ( (binary_expression "iStack_338 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_34c != 0)" ( (binary_expression "iStack_34c != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_34c + 100) == 0) {\n        *(int *)(iStack_34c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_34c + 100) = *(int *)(iStack_34c + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_34c + 100) == 0) {\n        *(int *)(iStack_34c + 0x60) = iVar24 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_34c + 100) == 0)" ( (binary_expression "*(int *)(iStack_34c + 100) == 0" (pointer_expression "*(int *)(iStack_34c + 100)" * (cast_expression "(int *)(iStack_34c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_34c + 100)" ( (binary_expression "iStack_34c + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_34c + 0x60) = iVar24 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_34c + 0x60) = iVar24 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_34c + 0x60) = iVar24 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_34c + 0x60)" * (cast_expression "(int *)(iStack_34c + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_34c + 0x60)" ( (binary_expression "iStack_34c + 0x60" identifier + number_literal) )))) = (binary_expression "iVar24 * -0x33333333 + -1" (binary_expression "iVar24 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_34c + 100) = *(int *)(iStack_34c + 100) + 1;" (assignment_expression "*(int *)(iStack_34c + 100) = *(int *)(iStack_34c + 100) + 1" (pointer_expression "*(int *)(iStack_34c + 100)" * (cast_expression "(int *)(iStack_34c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_34c + 100)" ( (binary_expression "iStack_34c + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_34c + 100) + 1" (pointer_expression "*(int *)(iStack_34c + 100)" * (cast_expression "(int *)(iStack_34c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_34c + 100)" ( (binary_expression "iStack_34c + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_358 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcStack_358 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_358 + -0x7810)" * (cast_expression "(code **)(pcStack_358 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_358 + -0x7810)" ( (binary_expression "pcStack_358 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = add_global_relative;" (assignment_expression "pcVar38 = add_global_relative" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(pcStack_358 + -0x7fc4) + 0x3574;" (assignment_expression "iVar24 = *(int *)(pcStack_358 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_358 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_358 + -0x7fc4)" * (cast_expression "(int *)(pcStack_358 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_358 + -0x7fc4)" ( (binary_expression "pcStack_358 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_358 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_358 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar24,0x231,*(int *)(pcStack_358 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_358 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_358 + -0x7924)" * (cast_expression "(int *)(pcStack_358 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_358 + -0x7924)" ( (binary_expression "pcStack_358 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_3c0 = pcVar37 + 0x273070;" (assignment_expression "pcStack_3c0 = pcVar37 + 0x273070" identifier = (binary_expression "pcVar37 + 0x273070" identifier + number_literal)) ;) (expression_statement "uStack_3c8 = uStack_360 & 0xff;" (assignment_expression "uStack_3c8 = uStack_360 & 0xff" identifier = (binary_expression "uStack_360 & 0xff" identifier & number_literal)) ;) (expression_statement "iStack_3cc = 1;" (assignment_expression "iStack_3cc = 1" identifier = number_literal) ;) (expression_statement "uStack_3d0 = 1;" (assignment_expression "uStack_3d0 = 1" identifier = number_literal) ;) (expression_statement "uStack_3d8 = uStack_370;" (assignment_expression "uStack_3d8 = uStack_370" identifier = identifier) ;) (expression_statement "uStack_3d4 = uStack_36c;" (assignment_expression "uStack_3d4 = uStack_36c" identifier = identifier) ;) (expression_statement "puStack_390 = &uStack_350;" (assignment_expression "puStack_390 = &uStack_350" identifier = (pointer_expression "&uStack_350" & identifier)) ;) (expression_statement "iStack_38c = iVar25;" (assignment_expression "iStack_38c = iVar25" identifier = identifier) ;) (expression_statement "iStack_388 = iVar21;" (assignment_expression "iStack_388 = iVar21" identifier = identifier) ;) (expression_statement "pcStack_384 = pcVar38;" (assignment_expression "pcStack_384 = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26ba80))(&uStack_3b8);" (call_expression "(**(code **)(pcVar37 + 0x26ba80))(&uStack_3b8)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26ba80))" ( (pointer_expression "**(code **)(pcVar37 + 0x26ba80)" * (pointer_expression "*(code **)(pcVar37 + 0x26ba80)" * (cast_expression "(code **)(pcVar37 + 0x26ba80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26ba80)" ( (binary_expression "pcVar37 + 0x26ba80" identifier + number_literal) ))))) )) (argument_list "(&uStack_3b8)" ( (pointer_expression "&uStack_3b8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iStack_394 = iStack_364;" (assignment_expression "iStack_394 = iStack_364" identifier = identifier) ;) (expression_statement "uStack_398 = uStack_368;" (assignment_expression "uStack_398 = uStack_368" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    iVar21 = iStack_364;\n    (**(code **)(pcStack_3c0 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_3b8);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_3b8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_398);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar24 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar24 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar24 + 0x40)" * (cast_expression "(undefined4 **)(iVar24 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x40)" ( (binary_expression "iVar24 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar21 = iStack_364;\n    (**(code **)(pcStack_3c0 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_3b8);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }" { (expression_statement "iVar21 = iStack_364;" (assignment_expression "iVar21 = iStack_364" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_3c0 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_3b8);" (call_expression "(**(code **)(pcStack_3c0 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_3b8)" (parenthesized_expression "(**(code **)(pcStack_3c0 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_3c0 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_3c0 + -0x5cb0)" * (cast_expression "(code **)(pcStack_3c0 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3c0 + -0x5cb0)" ( (binary_expression "pcStack_3c0 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar24 + 0x38,puVar22,&uStack_3b8)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_3b8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_3b8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_398);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_3b8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_398);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_3b8;" (assignment_expression "puVar12 = &uStack_3b8" identifier = (pointer_expression "&uStack_3b8" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_398);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "iVar21 = puVar17[1];" (assignment_expression "iVar21 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = iVar21;" (assignment_expression "puVar4[1] = iVar21" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_398)" ( (binary_expression "puVar12 != &uStack_398" identifier != (pointer_expression "&uStack_398" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar24 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar24 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar25 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;" (assignment_expression "iVar25 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_3a4 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_3a0 != -4) && (iStack_3b4 != 0)) {\n      if (*(int *)(iStack_3b4 + 100) == 0) {\n        *(int *)(iStack_3b4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_3b4 + 100) = *(int *)(iStack_3b4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar24 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar24 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar24 + 0x20) << 1" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_3a4 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_3a0 != -4) && (iStack_3b4 != 0)) {\n      if (*(int *)(iStack_3b4 + 100) == 0) {\n        *(int *)(iStack_3b4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_3b4 + 100) = *(int *)(iStack_3b4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;" (assignment_expression "*(int *)(iVar24 + 0x14) = iVar25 * 0x33333338" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar25 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar24 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar24 + 0x10)" * (cast_expression "(undefined4 *)(iVar24 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_3a4 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_3a4 << 0x1c < 0)" ( (binary_expression "iStack_3a4 << 0x1c < 0" (binary_expression "iStack_3a4 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;" (assignment_expression "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_3a0 != -4) && (iStack_3b4 != 0)) {\n      if (*(int *)(iStack_3b4 + 100) == 0) {\n        *(int *)(iStack_3b4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_3b4 + 100) = *(int *)(iStack_3b4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_3a0 != -4) && (iStack_3b4 != 0))" ( (binary_expression "(iStack_3a0 != -4) && (iStack_3b4 != 0)" (parenthesized_expression "(iStack_3a0 != -4)" ( (binary_expression "iStack_3a0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_3b4 != 0)" ( (binary_expression "iStack_3b4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_3b4 + 100) == 0) {\n        *(int *)(iStack_3b4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_3b4 + 100) = *(int *)(iStack_3b4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_3b4 + 100) == 0) {\n        *(int *)(iStack_3b4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_3b4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_3b4 + 100) == 0" (pointer_expression "*(int *)(iStack_3b4 + 100)" * (cast_expression "(int *)(iStack_3b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_3b4 + 100)" ( (binary_expression "iStack_3b4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_3b4 + 0x60) = iVar25 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_3b4 + 0x60) = iVar25 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_3b4 + 0x60) = iVar25 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_3b4 + 0x60)" * (cast_expression "(int *)(iStack_3b4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_3b4 + 0x60)" ( (binary_expression "iStack_3b4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar25 * -0x33333333 + -1" (binary_expression "iVar25 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_3b4 + 100) = *(int *)(iStack_3b4 + 100) + 1;" (assignment_expression "*(int *)(iStack_3b4 + 100) = *(int *)(iStack_3b4 + 100) + 1" (pointer_expression "*(int *)(iStack_3b4 + 100)" * (cast_expression "(int *)(iStack_3b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_3b4 + 100)" ( (binary_expression "iStack_3b4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_3b4 + 100) + 1" (pointer_expression "*(int *)(iStack_3b4 + 100)" * (cast_expression "(int *)(iStack_3b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_3b4 + 100)" ( (binary_expression "iStack_3b4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_3c0 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcStack_3c0 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_3c0 + -0x7810)" * (cast_expression "(code **)(pcStack_3c0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3c0 + -0x7810)" ( (binary_expression "pcStack_3c0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = add_symbolless_global_addend;" (assignment_expression "pcVar38 = add_symbolless_global_addend" identifier = identifier) ;) (expression_statement "iVar25 = *(int *)(pcStack_3c0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar25 = *(int *)(pcStack_3c0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_3c0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_3c0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_3c0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3c0 + -0x7fc4)" ( (binary_expression "pcStack_3c0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar25,0x231,*(int *)(pcStack_3c0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar37)(iVar25,0x231,*(int *)(pcStack_3c0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar25,0x231,*(int *)(pcStack_3c0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_3c0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_3c0 + -0x7924)" * (cast_expression "(int *)(pcStack_3c0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3c0 + -0x7924)" ( (binary_expression "pcStack_3c0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_428 = pcVar37 + 0x272eb4;" (assignment_expression "pcStack_428 = pcVar37 + 0x272eb4" identifier = (binary_expression "pcVar37 + 0x272eb4" identifier + number_literal)) ;) (expression_statement "uStack_434 = 1;" (assignment_expression "uStack_434 = 1" identifier = number_literal) ;) (expression_statement "uStack_430 = 0;" (assignment_expression "uStack_430 = 0" identifier = number_literal) ;) (expression_statement "uStack_438 = 0;" (assignment_expression "uStack_438 = 0" identifier = number_literal) ;) (expression_statement "uStack_43c = uStack_3d4;" (assignment_expression "uStack_43c = uStack_3d4" identifier = identifier) ;) (expression_statement "uStack_440 = uStack_3d8;" (assignment_expression "uStack_440 = uStack_3d8" identifier = identifier) ;) (expression_statement "puStack_3f8 = &uStack_3b8;" (assignment_expression "puStack_3f8 = &uStack_3b8" identifier = (pointer_expression "&uStack_3b8" & identifier)) ;) (expression_statement "iStack_3f4 = iVar24;" (assignment_expression "iStack_3f4 = iVar24" identifier = identifier) ;) (expression_statement "iStack_3f0 = iVar23;" (assignment_expression "iStack_3f0 = iVar23" identifier = identifier) ;) (expression_statement "pcStack_3ec = pcVar38;" (assignment_expression "pcStack_3ec = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26b8c4))(&uStack_420);" (call_expression "(**(code **)(pcVar37 + 0x26b8c4))(&uStack_420)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26b8c4))" ( (pointer_expression "**(code **)(pcVar37 + 0x26b8c4)" * (pointer_expression "*(code **)(pcVar37 + 0x26b8c4)" * (cast_expression "(code **)(pcVar37 + 0x26b8c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26b8c4)" ( (binary_expression "pcVar37 + 0x26b8c4" identifier + number_literal) ))))) )) (argument_list "(&uStack_420)" ( (pointer_expression "&uStack_420" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar25 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar25 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iStack_3fc = iStack_3cc;" (assignment_expression "iStack_3fc = iStack_3cc" identifier = identifier) ;) (expression_statement "uStack_400 = uStack_3d0;" (assignment_expression "uStack_400 = uStack_3d0" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {\n    iVar23 = iStack_3cc;\n    (**(code **)(pcStack_428 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_420);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_420;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_400);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar25 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar25 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar25 + 0x40)" * (cast_expression "(undefined4 **)(iVar25 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x40)" ( (binary_expression "iVar25 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar23 = iStack_3cc;\n    (**(code **)(pcStack_428 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_420);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }" { (expression_statement "iVar23 = iStack_3cc;" (assignment_expression "iVar23 = iStack_3cc" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_428 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_420);" (call_expression "(**(code **)(pcStack_428 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_420)" (parenthesized_expression "(**(code **)(pcStack_428 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_428 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_428 + -0x5cb0)" * (cast_expression "(code **)(pcStack_428 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_428 + -0x5cb0)" ( (binary_expression "pcStack_428 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar25 + 0x38,puVar22,&uStack_420)" ( (binary_expression "iVar25 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_420" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar25 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar25 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_420;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_400);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_420;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_400);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_420;" (assignment_expression "puVar12 = &uStack_420" identifier = (pointer_expression "&uStack_420" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_400);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "iVar23 = puVar17[1];" (assignment_expression "iVar23 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = iVar23;" (assignment_expression "puVar4[1] = iVar23" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_400)" ( (binary_expression "puVar12 != &uStack_400" identifier != (pointer_expression "&uStack_400" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar25 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar25 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar24 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;" (assignment_expression "iVar24 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar25 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar25 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar25 + 0x38)" * (cast_expression "(int *)(iVar25 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x38)" ( (binary_expression "iVar25 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar25 + 0x20) << 1) {\n    *(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_40c << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_408 != -4) && (iStack_41c != 0)) {\n      if (*(int *)(iStack_41c + 100) == 0) {\n        *(int *)(iStack_41c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_41c + 100) = *(int *)(iStack_41c + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar25 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar25 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar25 + 0x20) << 1" (pointer_expression "*(int *)(iVar25 + 0x20)" * (cast_expression "(int *)(iVar25 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x20)" ( (binary_expression "iVar25 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_40c << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_408 != -4) && (iStack_41c != 0)) {\n      if (*(int *)(iStack_41c + 100) == 0) {\n        *(int *)(iStack_41c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_41c + 100) = *(int *)(iStack_41c + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;" (assignment_expression "*(int *)(iVar25 + 0x14) = iVar24 * 0x33333338" (pointer_expression "*(int *)(iVar25 + 0x14)" * (cast_expression "(int *)(iVar25 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x14)" ( (binary_expression "iVar25 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar24 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar25 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar25 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar25 + 0x10)" * (cast_expression "(undefined4 *)(iVar25 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x10)" ( (binary_expression "iVar25 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar21 + 0x20)" * (cast_expression "(byte *)(iVar21 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar21 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar21 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar21 + 0x20)" * (cast_expression "(byte *)(iVar21 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_40c << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_40c << 0x1c < 0)" ( (binary_expression "iStack_40c << 0x1c < 0" (binary_expression "iStack_40c << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;" (assignment_expression "*(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1" (pointer_expression "*(int *)(iVar25 + 0x30)" * (cast_expression "(int *)(iVar25 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x30)" ( (binary_expression "iVar25 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar25 + 0x30) + 1" (pointer_expression "*(int *)(iVar25 + 0x30)" * (cast_expression "(int *)(iVar25 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x30)" ( (binary_expression "iVar25 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_408 != -4) && (iStack_41c != 0)) {\n      if (*(int *)(iStack_41c + 100) == 0) {\n        *(int *)(iStack_41c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_41c + 100) = *(int *)(iStack_41c + 100) + 1;\n    }" if (parenthesized_expression "((iStack_408 != -4) && (iStack_41c != 0))" ( (binary_expression "(iStack_408 != -4) && (iStack_41c != 0)" (parenthesized_expression "(iStack_408 != -4)" ( (binary_expression "iStack_408 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_41c != 0)" ( (binary_expression "iStack_41c != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_41c + 100) == 0) {\n        *(int *)(iStack_41c + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_41c + 100) = *(int *)(iStack_41c + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_41c + 100) == 0) {\n        *(int *)(iStack_41c + 0x60) = iVar24 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_41c + 100) == 0)" ( (binary_expression "*(int *)(iStack_41c + 100) == 0" (pointer_expression "*(int *)(iStack_41c + 100)" * (cast_expression "(int *)(iStack_41c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_41c + 100)" ( (binary_expression "iStack_41c + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_41c + 0x60) = iVar24 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_41c + 0x60) = iVar24 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_41c + 0x60) = iVar24 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_41c + 0x60)" * (cast_expression "(int *)(iStack_41c + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_41c + 0x60)" ( (binary_expression "iStack_41c + 0x60" identifier + number_literal) )))) = (binary_expression "iVar24 * -0x33333333 + -1" (binary_expression "iVar24 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_41c + 100) = *(int *)(iStack_41c + 100) + 1;" (assignment_expression "*(int *)(iStack_41c + 100) = *(int *)(iStack_41c + 100) + 1" (pointer_expression "*(int *)(iStack_41c + 100)" * (cast_expression "(int *)(iStack_41c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_41c + 100)" ( (binary_expression "iStack_41c + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_41c + 100) + 1" (pointer_expression "*(int *)(iStack_41c + 100)" * (cast_expression "(int *)(iStack_41c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_41c + 100)" ( (binary_expression "iStack_41c + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_428 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcStack_428 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_428 + -0x7810)" * (cast_expression "(code **)(pcStack_428 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_428 + -0x7810)" ( (binary_expression "pcStack_428 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = add_global;" (assignment_expression "pcVar38 = add_global" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(pcStack_428 + -0x7fc4) + 0x3574;" (assignment_expression "iVar24 = *(int *)(pcStack_428 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_428 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_428 + -0x7fc4)" * (cast_expression "(int *)(pcStack_428 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_428 + -0x7fc4)" ( (binary_expression "pcStack_428 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_428 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_428 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar24,0x231,*(int *)(pcStack_428 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_428 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_428 + -0x7924)" * (cast_expression "(int *)(pcStack_428 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_428 + -0x7924)" ( (binary_expression "pcStack_428 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_490 = pcVar37 + 0x272cfc;" (assignment_expression "pcStack_490 = pcVar37 + 0x272cfc" identifier = (binary_expression "pcVar37 + 0x272cfc" identifier + number_literal)) ;) (expression_statement "uStack_4a8 = uStack_438;" (assignment_expression "uStack_4a8 = uStack_438" identifier = identifier) ;) (expression_statement "uStack_498 = 0;" (assignment_expression "uStack_498 = 0" identifier = number_literal) ;) (expression_statement "iStack_49c = 0;" (assignment_expression "iStack_49c = 0" identifier = number_literal) ;) (expression_statement "uStack_4a0 = 0;" (assignment_expression "uStack_4a0 = 0" identifier = number_literal) ;) (expression_statement "uStack_4a4 = uStack_434;" (assignment_expression "uStack_4a4 = uStack_434" identifier = identifier) ;) (expression_statement "uStack_4b0 = uStack_43c;" (assignment_expression "uStack_4b0 = uStack_43c" identifier = identifier) ;) (expression_statement "puStack_460 = &uStack_420;" (assignment_expression "puStack_460 = &uStack_420" identifier = (pointer_expression "&uStack_420" & identifier)) ;) (expression_statement "iStack_45c = iVar25;" (assignment_expression "iStack_45c = iVar25" identifier = identifier) ;) (expression_statement "iStack_458 = iVar21;" (assignment_expression "iStack_458 = iVar21" identifier = identifier) ;) (expression_statement "pcStack_454 = pcVar38;" (assignment_expression "pcStack_454 = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26b910))(&uStack_488);" (call_expression "(**(code **)(pcVar37 + 0x26b910))(&uStack_488)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26b910))" ( (pointer_expression "**(code **)(pcVar37 + 0x26b910)" * (pointer_expression "*(code **)(pcVar37 + 0x26b910)" * (cast_expression "(code **)(pcVar37 + 0x26b910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26b910)" ( (binary_expression "pcVar37 + 0x26b910" identifier + number_literal) ))))) )) (argument_list "(&uStack_488)" ( (pointer_expression "&uStack_488" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iStack_464 = iStack_42c;" (assignment_expression "iStack_464 = iStack_42c" identifier = identifier) ;) (expression_statement "uStack_468 = uStack_430;" (assignment_expression "uStack_468 = uStack_430" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_490 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_488);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n    iVar21 = iStack_42c;\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_488;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_468);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar24 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar24 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar24 + 0x40)" * (cast_expression "(undefined4 **)(iVar24 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x40)" ( (binary_expression "iVar24 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_490 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_488);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n    iVar21 = iStack_42c;\n  }" { (expression_statement "(**(code **)(pcStack_490 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_488);" (call_expression "(**(code **)(pcStack_490 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_488)" (parenthesized_expression "(**(code **)(pcStack_490 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_490 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_490 + -0x5cb0)" * (cast_expression "(code **)(pcStack_490 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_490 + -0x5cb0)" ( (binary_expression "pcStack_490 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar24 + 0x38,puVar22,&uStack_488)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_488" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = iStack_42c;" (assignment_expression "iVar21 = iStack_42c" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_488;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_468);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_488;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_468);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_488;" (assignment_expression "puVar12 = &uStack_488" identifier = (pointer_expression "&uStack_488" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_468);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar21 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar21;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "iVar21 = puVar17[1];" (assignment_expression "iVar21 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = iVar21;" (assignment_expression "puVar4[1] = iVar21" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_468)" ( (binary_expression "puVar12 != &uStack_468" identifier != (pointer_expression "&uStack_468" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar24 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar24 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar25 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;" (assignment_expression "iVar25 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_474 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_470 != -4) && (iStack_484 != 0)) {\n      if (*(int *)(iStack_484 + 100) == 0) {\n        *(int *)(iStack_484 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_484 + 100) = *(int *)(iStack_484 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar24 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar24 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar24 + 0x20) << 1" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_474 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_470 != -4) && (iStack_484 != 0)) {\n      if (*(int *)(iStack_484 + 100) == 0) {\n        *(int *)(iStack_484 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_484 + 100) = *(int *)(iStack_484 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar24 + 0x14) = iVar25 * 0x33333338;" (assignment_expression "*(int *)(iVar24 + 0x14) = iVar25 * 0x33333338" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar25 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar24 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar24 + 0x10)" * (cast_expression "(undefined4 *)(iVar24 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_474 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_474 << 0x1c < 0)" ( (binary_expression "iStack_474 << 0x1c < 0" (binary_expression "iStack_474 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;" (assignment_expression "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_470 != -4) && (iStack_484 != 0)) {\n      if (*(int *)(iStack_484 + 100) == 0) {\n        *(int *)(iStack_484 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_484 + 100) = *(int *)(iStack_484 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_470 != -4) && (iStack_484 != 0))" ( (binary_expression "(iStack_470 != -4) && (iStack_484 != 0)" (parenthesized_expression "(iStack_470 != -4)" ( (binary_expression "iStack_470 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_484 != 0)" ( (binary_expression "iStack_484 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_484 + 100) == 0) {\n        *(int *)(iStack_484 + 0x60) = iVar25 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_484 + 100) = *(int *)(iStack_484 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_484 + 100) == 0) {\n        *(int *)(iStack_484 + 0x60) = iVar25 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_484 + 100) == 0)" ( (binary_expression "*(int *)(iStack_484 + 100) == 0" (pointer_expression "*(int *)(iStack_484 + 100)" * (cast_expression "(int *)(iStack_484 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_484 + 100)" ( (binary_expression "iStack_484 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_484 + 0x60) = iVar25 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_484 + 0x60) = iVar25 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_484 + 0x60) = iVar25 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_484 + 0x60)" * (cast_expression "(int *)(iStack_484 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_484 + 0x60)" ( (binary_expression "iStack_484 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar25 * -0x33333333 + -1" (binary_expression "iVar25 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_484 + 100) = *(int *)(iStack_484 + 100) + 1;" (assignment_expression "*(int *)(iStack_484 + 100) = *(int *)(iStack_484 + 100) + 1" (pointer_expression "*(int *)(iStack_484 + 100)" * (cast_expression "(int *)(iStack_484 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_484 + 100)" ( (binary_expression "iStack_484 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_484 + 100) + 1" (pointer_expression "*(int *)(iStack_484 + 100)" * (cast_expression "(int *)(iStack_484 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_484 + 100)" ( (binary_expression "iStack_484 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_490 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcStack_490 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_490 + -0x7810)" * (cast_expression "(code **)(pcStack_490 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_490 + -0x7810)" ( (binary_expression "pcStack_490 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = add_symbolless_global_addend;" (assignment_expression "pcVar38 = add_symbolless_global_addend" identifier = identifier) ;) (expression_statement "iVar25 = *(int *)(pcStack_490 + -0x7fc4) + 0x3574;" (assignment_expression "iVar25 = *(int *)(pcStack_490 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_490 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_490 + -0x7fc4)" * (cast_expression "(int *)(pcStack_490 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_490 + -0x7fc4)" ( (binary_expression "pcStack_490 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar25,0x231,*(int *)(pcStack_490 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar37)(iVar25,0x231,*(int *)(pcStack_490 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar25,0x231,*(int *)(pcStack_490 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_490 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_490 + -0x7924)" * (cast_expression "(int *)(pcStack_490 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_490 + -0x7924)" ( (binary_expression "pcStack_490 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_500 = pcVar37 + 0x272b3c;" (assignment_expression "pcStack_500 = pcVar37 + 0x272b3c" identifier = (binary_expression "pcVar37 + 0x272b3c" identifier + number_literal)) ;) (expression_statement "uStack_50c = 1;" (assignment_expression "uStack_50c = 1" identifier = number_literal) ;) (expression_statement "uStack_518 = uStack_4a8;" (assignment_expression "uStack_518 = uStack_4a8" identifier = identifier) ;) (expression_statement "uStack_508 = 0;" (assignment_expression "uStack_508 = 0" identifier = number_literal) ;) (expression_statement "uStack_510 = 0;" (assignment_expression "uStack_510 = 0" identifier = number_literal) ;) (expression_statement "uStack_514 = uStack_4a4;" (assignment_expression "uStack_514 = uStack_4a4" identifier = identifier) ;) (expression_statement "uStack_520 = uStack_4ac;" (assignment_expression "uStack_520 = uStack_4ac" identifier = identifier) ;) (expression_statement "puStack_4d0 = &uStack_488;" (assignment_expression "puStack_4d0 = &uStack_488" identifier = (pointer_expression "&uStack_488" & identifier)) ;) (expression_statement "iStack_4cc = iVar24;" (assignment_expression "iStack_4cc = iVar24" identifier = identifier) ;) (expression_statement "iStack_4c8 = iVar23;" (assignment_expression "iStack_4c8 = iVar23" identifier = identifier) ;) (expression_statement "pcStack_4c4 = pcVar38;" (assignment_expression "pcStack_4c4 = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26b750))(&uStack_4f8);" (call_expression "(**(code **)(pcVar37 + 0x26b750))(&uStack_4f8)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26b750))" ( (pointer_expression "**(code **)(pcVar37 + 0x26b750)" * (pointer_expression "*(code **)(pcVar37 + 0x26b750)" * (cast_expression "(code **)(pcVar37 + 0x26b750)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26b750)" ( (binary_expression "pcVar37 + 0x26b750" identifier + number_literal) ))))) )) (argument_list "(&uStack_4f8)" ( (pointer_expression "&uStack_4f8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar25 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar25 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iStack_4d4 = iStack_49c;" (assignment_expression "iStack_4d4 = iStack_49c" identifier = identifier) ;) (expression_statement "uStack_4d8 = uStack_4a0;" (assignment_expression "uStack_4d8 = uStack_4a0" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {\n    iVar23 = iStack_49c;\n    (**(code **)(pcStack_500 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_4f8);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_4f8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_4d8);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar25 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar25 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar25 + 0x40)" * (cast_expression "(undefined4 **)(iVar25 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x40)" ( (binary_expression "iVar25 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar23 = iStack_49c;\n    (**(code **)(pcStack_500 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_4f8);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }" { (expression_statement "iVar23 = iStack_49c;" (assignment_expression "iVar23 = iStack_49c" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_500 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_4f8);" (call_expression "(**(code **)(pcStack_500 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_4f8)" (parenthesized_expression "(**(code **)(pcStack_500 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_500 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_500 + -0x5cb0)" * (cast_expression "(code **)(pcStack_500 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_500 + -0x5cb0)" ( (binary_expression "pcStack_500 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar25 + 0x38,puVar22,&uStack_4f8)" ( (binary_expression "iVar25 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_4f8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar25 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar25 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_4f8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_4d8);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_4f8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_4d8);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_4f8;" (assignment_expression "puVar12 = &uStack_4f8" identifier = (pointer_expression "&uStack_4f8" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_4d8);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      iVar23 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = iVar23;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "iVar23 = puVar17[1];" (assignment_expression "iVar23 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = iVar23;" (assignment_expression "puVar4[1] = iVar23" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_4d8)" ( (binary_expression "puVar12 != &uStack_4d8" identifier != (pointer_expression "&uStack_4d8" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar25 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar25 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar24 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;" (assignment_expression "iVar24 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar25 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar25 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar25 + 0x38)" * (cast_expression "(int *)(iVar25 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x38)" ( (binary_expression "iVar25 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar25 + 0x20) << 1) {\n    *(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_4e4 << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_4e0 != -4) && (iStack_4f4 != 0)) {\n      if (*(int *)(iStack_4f4 + 100) == 0) {\n        *(int *)(iStack_4f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_4f4 + 100) = *(int *)(iStack_4f4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar25 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar25 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar25 + 0x20) << 1" (pointer_expression "*(int *)(iVar25 + 0x20)" * (cast_expression "(int *)(iVar25 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x20)" ( (binary_expression "iVar25 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_4e4 << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_4e0 != -4) && (iStack_4f4 != 0)) {\n      if (*(int *)(iStack_4f4 + 100) == 0) {\n        *(int *)(iStack_4f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_4f4 + 100) = *(int *)(iStack_4f4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar25 + 0x14) = iVar24 * 0x33333338;" (assignment_expression "*(int *)(iVar25 + 0x14) = iVar24 * 0x33333338" (pointer_expression "*(int *)(iVar25 + 0x14)" * (cast_expression "(int *)(iVar25 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x14)" ( (binary_expression "iVar25 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar24 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar25 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar25 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar25 + 0x10)" * (cast_expression "(undefined4 *)(iVar25 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x10)" ( (binary_expression "iVar25 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar21 + 0x20)" * (cast_expression "(byte *)(iVar21 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar21 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar21 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar21 + 0x20)" * (cast_expression "(byte *)(iVar21 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_4e4 << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_4e4 << 0x1c < 0)" ( (binary_expression "iStack_4e4 << 0x1c < 0" (binary_expression "iStack_4e4 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;" (assignment_expression "*(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1" (pointer_expression "*(int *)(iVar25 + 0x30)" * (cast_expression "(int *)(iVar25 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x30)" ( (binary_expression "iVar25 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar25 + 0x30) + 1" (pointer_expression "*(int *)(iVar25 + 0x30)" * (cast_expression "(int *)(iVar25 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x30)" ( (binary_expression "iVar25 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_4e0 != -4) && (iStack_4f4 != 0)) {\n      if (*(int *)(iStack_4f4 + 100) == 0) {\n        *(int *)(iStack_4f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_4f4 + 100) = *(int *)(iStack_4f4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_4e0 != -4) && (iStack_4f4 != 0))" ( (binary_expression "(iStack_4e0 != -4) && (iStack_4f4 != 0)" (parenthesized_expression "(iStack_4e0 != -4)" ( (binary_expression "iStack_4e0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_4f4 != 0)" ( (binary_expression "iStack_4f4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_4f4 + 100) == 0) {\n        *(int *)(iStack_4f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_4f4 + 100) = *(int *)(iStack_4f4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_4f4 + 100) == 0) {\n        *(int *)(iStack_4f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_4f4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_4f4 + 100) == 0" (pointer_expression "*(int *)(iStack_4f4 + 100)" * (cast_expression "(int *)(iStack_4f4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_4f4 + 100)" ( (binary_expression "iStack_4f4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_4f4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_4f4 + 0x60) = iVar24 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_4f4 + 0x60) = iVar24 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_4f4 + 0x60)" * (cast_expression "(int *)(iStack_4f4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_4f4 + 0x60)" ( (binary_expression "iStack_4f4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar24 * -0x33333333 + -1" (binary_expression "iVar24 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_4f4 + 100) = *(int *)(iStack_4f4 + 100) + 1;" (assignment_expression "*(int *)(iStack_4f4 + 100) = *(int *)(iStack_4f4 + 100) + 1" (pointer_expression "*(int *)(iStack_4f4 + 100)" * (cast_expression "(int *)(iStack_4f4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_4f4 + 100)" ( (binary_expression "iStack_4f4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_4f4 + 100) + 1" (pointer_expression "*(int *)(iStack_4f4 + 100)" * (cast_expression "(int *)(iStack_4f4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_4f4 + 100)" ( (binary_expression "iStack_4f4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_500 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcStack_500 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_500 + -0x7810)" * (cast_expression "(code **)(pcStack_500 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_500 + -0x7810)" ( (binary_expression "pcStack_500 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = add_global_relative;" (assignment_expression "pcVar38 = add_global_relative" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(pcStack_500 + -0x7fc4) + 0x3574;" (assignment_expression "iVar24 = *(int *)(pcStack_500 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_500 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_500 + -0x7fc4)" * (cast_expression "(int *)(pcStack_500 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_500 + -0x7fc4)" ( (binary_expression "pcStack_500 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_500 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_500 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar24,0x231,*(int *)(pcStack_500 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_500 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_500 + -0x7924)" * (cast_expression "(int *)(pcStack_500 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_500 + -0x7924)" ( (binary_expression "pcStack_500 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_570 = pcVar37 + 0x272978;" (assignment_expression "pcStack_570 = pcVar37 + 0x272978" identifier = (binary_expression "pcVar37 + 0x272978" identifier + number_literal)) ;) (expression_statement "uStack_578 = uStack_508 & 0xff;" (assignment_expression "uStack_578 = uStack_508 & 0xff" identifier = (binary_expression "uStack_508 & 0xff" identifier & number_literal)) ;) (expression_statement "uStack_57c = 1;" (assignment_expression "uStack_57c = 1" identifier = number_literal) ;) (expression_statement "uStack_580 = 1;" (assignment_expression "uStack_580 = 1" identifier = number_literal) ;) (expression_statement "uStack_588 = uStack_518;" (assignment_expression "uStack_588 = uStack_518" identifier = identifier) ;) (expression_statement "uStack_584 = uStack_514;" (assignment_expression "uStack_584 = uStack_514" identifier = identifier) ;) (expression_statement "iStack_590 = iStack_51c;" (assignment_expression "iStack_590 = iStack_51c" identifier = identifier) ;) (expression_statement "puStack_540 = &uStack_4f8;" (assignment_expression "puStack_540 = &uStack_4f8" identifier = (pointer_expression "&uStack_4f8" & identifier)) ;) (expression_statement "iStack_53c = iVar25;" (assignment_expression "iStack_53c = iVar25" identifier = identifier) ;) (expression_statement "iStack_538 = iVar21;" (assignment_expression "iStack_538 = iVar21" identifier = identifier) ;) (expression_statement "pcStack_534 = pcVar38;" (assignment_expression "pcStack_534 = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26b58c))(&uStack_568);" (call_expression "(**(code **)(pcVar37 + 0x26b58c))(&uStack_568)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26b58c))" ( (pointer_expression "**(code **)(pcVar37 + 0x26b58c)" * (pointer_expression "*(code **)(pcVar37 + 0x26b58c)" * (cast_expression "(code **)(pcVar37 + 0x26b58c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26b58c)" ( (binary_expression "pcVar37 + 0x26b58c" identifier + number_literal) ))))) )) (argument_list "(&uStack_568)" ( (pointer_expression "&uStack_568" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_544 = uStack_50c;" (assignment_expression "uStack_544 = uStack_50c" identifier = identifier) ;) (expression_statement "uStack_548 = uStack_510;" (assignment_expression "uStack_548 = uStack_510" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_570 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_568);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_568;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_548);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar24 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar24 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar24 + 0x40)" * (cast_expression "(undefined4 **)(iVar24 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x40)" ( (binary_expression "iVar24 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_570 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_568);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_570 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_568);" (call_expression "(**(code **)(pcStack_570 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_568)" (parenthesized_expression "(**(code **)(pcStack_570 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_570 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_570 + -0x5cb0)" * (cast_expression "(code **)(pcStack_570 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_570 + -0x5cb0)" ( (binary_expression "pcStack_570 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar24 + 0x38,puVar22,&uStack_568)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_568" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_568;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_548);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_568;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_548);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_568;" (assignment_expression "puVar12 = &uStack_568" identifier = (pointer_expression "&uStack_568" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_548);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "uVar35 = puVar17[1];" (assignment_expression "uVar35 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = uVar35;" (assignment_expression "puVar4[1] = uVar35" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_548)" ( (binary_expression "puVar12 != &uStack_548" identifier != (pointer_expression "&uStack_548" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar24 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar24 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;" (assignment_expression "iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_554 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_550 != -4) && (iStack_564 != 0)) {\n      if (*(int *)(iStack_564 + 100) == 0) {\n        *(int *)(iStack_564 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_564 + 100) = *(int *)(iStack_564 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar24 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar24 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar24 + 0x20) << 1" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_554 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_550 != -4) && (iStack_564 != 0)) {\n      if (*(int *)(iStack_564 + 100) == 0) {\n        *(int *)(iStack_564 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_564 + 100) = *(int *)(iStack_564 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;" (assignment_expression "*(int *)(iVar24 + 0x14) = iVar21 * 0x33333338" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar21 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar24 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar24 + 0x10)" * (cast_expression "(undefined4 *)(iVar24 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_554 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_554 << 0x1c < 0)" ( (binary_expression "iStack_554 << 0x1c < 0" (binary_expression "iStack_554 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;" (assignment_expression "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_550 != -4) && (iStack_564 != 0)) {\n      if (*(int *)(iStack_564 + 100) == 0) {\n        *(int *)(iStack_564 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_564 + 100) = *(int *)(iStack_564 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_550 != -4) && (iStack_564 != 0))" ( (binary_expression "(iStack_550 != -4) && (iStack_564 != 0)" (parenthesized_expression "(iStack_550 != -4)" ( (binary_expression "iStack_550 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_564 != 0)" ( (binary_expression "iStack_564 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_564 + 100) == 0) {\n        *(int *)(iStack_564 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_564 + 100) = *(int *)(iStack_564 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_564 + 100) == 0) {\n        *(int *)(iStack_564 + 0x60) = iVar21 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_564 + 100) == 0)" ( (binary_expression "*(int *)(iStack_564 + 100) == 0" (pointer_expression "*(int *)(iStack_564 + 100)" * (cast_expression "(int *)(iStack_564 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_564 + 100)" ( (binary_expression "iStack_564 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_564 + 0x60) = iVar21 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_564 + 0x60) = iVar21 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_564 + 0x60) = iVar21 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_564 + 0x60)" * (cast_expression "(int *)(iStack_564 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_564 + 0x60)" ( (binary_expression "iStack_564 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar21 * -0x33333333 + -1" (binary_expression "iVar21 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_564 + 100) = *(int *)(iStack_564 + 100) + 1;" (assignment_expression "*(int *)(iStack_564 + 100) = *(int *)(iStack_564 + 100) + 1" (pointer_expression "*(int *)(iStack_564 + 100)" * (cast_expression "(int *)(iStack_564 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_564 + 100)" ( (binary_expression "iStack_564 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_564 + 100) + 1" (pointer_expression "*(int *)(iStack_564 + 100)" * (cast_expression "(int *)(iStack_564 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_564 + 100)" ( (binary_expression "iStack_564 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_570 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcStack_570 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_570 + -0x7810)" * (cast_expression "(code **)(pcStack_570 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_570 + -0x7810)" ( (binary_expression "pcStack_570 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = add_local_section;" (assignment_expression "pcVar38 = add_local_section" identifier = identifier) ;) (expression_statement "iVar25 = *(int *)(pcStack_570 + -0x7fc4) + 0x3574;" (assignment_expression "iVar25 = *(int *)(pcStack_570 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_570 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_570 + -0x7fc4)" * (cast_expression "(int *)(pcStack_570 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_570 + -0x7fc4)" ( (binary_expression "pcStack_570 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar25,0x231,*(int *)(pcStack_570 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar37)(iVar25,0x231,*(int *)(pcStack_570 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar25,0x231,*(int *)(pcStack_570 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_570 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_570 + -0x7924)" * (cast_expression "(int *)(pcStack_570 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_570 + -0x7924)" ( (binary_expression "pcStack_570 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar21 = iStack_590;" (assignment_expression "iVar21 = iStack_590" identifier = identifier) ;) (expression_statement "pcStack_5e0 = pcVar37 + 0x2727b0;" (assignment_expression "pcStack_5e0 = pcVar37 + 0x2727b0" identifier = (binary_expression "pcVar37 + 0x2727b0" identifier + number_literal)) ;) (expression_statement "uStack_5e8 = 1;" (assignment_expression "uStack_5e8 = 1" identifier = number_literal) ;) (expression_statement "uStack_5f8 = uStack_588;" (assignment_expression "uStack_5f8 = uStack_588" identifier = identifier) ;) (expression_statement "uStack_5e4 = 0;" (assignment_expression "uStack_5e4 = 0" identifier = number_literal) ;) (expression_statement "uStack_5ec = 0;" (assignment_expression "uStack_5ec = 0" identifier = number_literal) ;) (expression_statement "uStack_5f0 = 0;" (assignment_expression "uStack_5f0 = 0" identifier = number_literal) ;) (expression_statement "uStack_5f4 = uStack_584;" (assignment_expression "uStack_5f4 = uStack_584" identifier = identifier) ;) (expression_statement "iStack_600 = iStack_58c;" (assignment_expression "iStack_600 = iStack_58c" identifier = identifier) ;) (expression_statement "puStack_5b0 = &uStack_568;" (assignment_expression "puStack_5b0 = &uStack_568" identifier = (pointer_expression "&uStack_568" & identifier)) ;) (expression_statement "iStack_5ac = iVar24;" (assignment_expression "iStack_5ac = iVar24" identifier = identifier) ;) (expression_statement "iStack_5a8 = iVar23;" (assignment_expression "iStack_5a8 = iVar23" identifier = identifier) ;) (expression_statement "pcStack_5a4 = pcVar38;" (assignment_expression "pcStack_5a4 = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26b1f8))(&uStack_5d8);" (call_expression "(**(code **)(pcVar37 + 0x26b1f8))(&uStack_5d8)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26b1f8))" ( (pointer_expression "**(code **)(pcVar37 + 0x26b1f8)" * (pointer_expression "*(code **)(pcVar37 + 0x26b1f8)" * (cast_expression "(code **)(pcVar37 + 0x26b1f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26b1f8)" ( (binary_expression "pcVar37 + 0x26b1f8" identifier + number_literal) ))))) )) (argument_list "(&uStack_5d8)" ( (pointer_expression "&uStack_5d8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar25 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar25 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_5b4 = uStack_57c;" (assignment_expression "uStack_5b4 = uStack_57c" identifier = identifier) ;) (expression_statement "uStack_5b8 = uStack_580;" (assignment_expression "uStack_5b8 = uStack_580" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {\n    (**(code **)(pcStack_5e0 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_5d8);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_5d8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_5b8);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar25 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar25 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar25 + 0x40)" * (cast_expression "(undefined4 **)(iVar25 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x40)" ( (binary_expression "iVar25 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_5e0 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_5d8);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_5e0 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_5d8);" (call_expression "(**(code **)(pcStack_5e0 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_5d8)" (parenthesized_expression "(**(code **)(pcStack_5e0 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_5e0 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_5e0 + -0x5cb0)" * (cast_expression "(code **)(pcStack_5e0 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5e0 + -0x5cb0)" ( (binary_expression "pcStack_5e0 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar25 + 0x38,puVar22,&uStack_5d8)" ( (binary_expression "iVar25 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_5d8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar25 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar25 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_5d8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_5b8);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_5d8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_5b8);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_5d8;" (assignment_expression "puVar12 = &uStack_5d8" identifier = (pointer_expression "&uStack_5d8" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_5b8);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "uVar35 = puVar17[1];" (assignment_expression "uVar35 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = uVar35;" (assignment_expression "puVar4[1] = uVar35" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_5b8)" ( (binary_expression "puVar12 != &uStack_5b8" identifier != (pointer_expression "&uStack_5b8" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar25 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar25 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar23 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;" (assignment_expression "iVar23 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar25 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar25 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar25 + 0x38)" * (cast_expression "(int *)(iVar25 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x38)" ( (binary_expression "iVar25 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar25 + 0x20) << 1) {\n    *(int *)(iVar25 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_5c4 << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_5c0 != -4) && (iStack_5d4 != 0)) {\n      if (*(int *)(iStack_5d4 + 100) == 0) {\n        *(int *)(iStack_5d4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_5d4 + 100) = *(int *)(iStack_5d4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar25 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar25 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar25 + 0x20) << 1" (pointer_expression "*(int *)(iVar25 + 0x20)" * (cast_expression "(int *)(iVar25 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x20)" ( (binary_expression "iVar25 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar25 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_5c4 << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_5c0 != -4) && (iStack_5d4 != 0)) {\n      if (*(int *)(iStack_5d4 + 100) == 0) {\n        *(int *)(iStack_5d4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_5d4 + 100) = *(int *)(iStack_5d4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar25 + 0x14) = iVar23 * 0x33333338;" (assignment_expression "*(int *)(iVar25 + 0x14) = iVar23 * 0x33333338" (pointer_expression "*(int *)(iVar25 + 0x14)" * (cast_expression "(int *)(iVar25 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x14)" ( (binary_expression "iVar25 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar23 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar25 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar25 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar25 + 0x10)" * (cast_expression "(undefined4 *)(iVar25 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x10)" ( (binary_expression "iVar25 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar21 + 0x20)" * (cast_expression "(byte *)(iVar21 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar21 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar21 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar21 + 0x20)" * (cast_expression "(byte *)(iVar21 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_5c4 << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_5c4 << 0x1c < 0)" ( (binary_expression "iStack_5c4 << 0x1c < 0" (binary_expression "iStack_5c4 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;" (assignment_expression "*(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1" (pointer_expression "*(int *)(iVar25 + 0x30)" * (cast_expression "(int *)(iVar25 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x30)" ( (binary_expression "iVar25 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar25 + 0x30) + 1" (pointer_expression "*(int *)(iVar25 + 0x30)" * (cast_expression "(int *)(iVar25 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x30)" ( (binary_expression "iVar25 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_5c0 != -4) && (iStack_5d4 != 0)) {\n      if (*(int *)(iStack_5d4 + 100) == 0) {\n        *(int *)(iStack_5d4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_5d4 + 100) = *(int *)(iStack_5d4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_5c0 != -4) && (iStack_5d4 != 0))" ( (binary_expression "(iStack_5c0 != -4) && (iStack_5d4 != 0)" (parenthesized_expression "(iStack_5c0 != -4)" ( (binary_expression "iStack_5c0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_5d4 != 0)" ( (binary_expression "iStack_5d4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_5d4 + 100) == 0) {\n        *(int *)(iStack_5d4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_5d4 + 100) = *(int *)(iStack_5d4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_5d4 + 100) == 0) {\n        *(int *)(iStack_5d4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_5d4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_5d4 + 100) == 0" (pointer_expression "*(int *)(iStack_5d4 + 100)" * (cast_expression "(int *)(iStack_5d4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_5d4 + 100)" ( (binary_expression "iStack_5d4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_5d4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_5d4 + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_5d4 + 0x60) = iVar23 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_5d4 + 0x60)" * (cast_expression "(int *)(iStack_5d4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_5d4 + 0x60)" ( (binary_expression "iStack_5d4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_5d4 + 100) = *(int *)(iStack_5d4 + 100) + 1;" (assignment_expression "*(int *)(iStack_5d4 + 100) = *(int *)(iStack_5d4 + 100) + 1" (pointer_expression "*(int *)(iStack_5d4 + 100)" * (cast_expression "(int *)(iStack_5d4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_5d4 + 100)" ( (binary_expression "iStack_5d4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_5d4 + 100) + 1" (pointer_expression "*(int *)(iStack_5d4 + 100)" * (cast_expression "(int *)(iStack_5d4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_5d4 + 100)" ( (binary_expression "iStack_5d4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_5e0 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcStack_5e0 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_5e0 + -0x7810)" * (cast_expression "(code **)(pcStack_5e0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5e0 + -0x7810)" ( (binary_expression "pcStack_5e0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = add_local_section;" (assignment_expression "pcVar38 = add_local_section" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(pcStack_5e0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar24 = *(int *)(pcStack_5e0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_5e0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_5e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_5e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5e0 + -0x7fc4)" ( (binary_expression "pcStack_5e0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_5e0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_5e0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar24,0x231,*(int *)(pcStack_5e0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_5e0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_5e0 + -0x7924)" * (cast_expression "(int *)(pcStack_5e0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5e0 + -0x7924)" ( (binary_expression "pcStack_5e0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar23 = iStack_600;" (assignment_expression "iVar23 = iStack_600" identifier = identifier) ;) (expression_statement "pcStack_650 = pcVar37 + 0x2725ec;" (assignment_expression "pcStack_650 = pcVar37 + 0x2725ec" identifier = (binary_expression "pcVar37 + 0x2725ec" identifier + number_literal)) ;) (expression_statement "iStack_618 = iVar21;" (assignment_expression "iStack_618 = iVar21" identifier = identifier) ;) (expression_statement "uStack_658 = 1;" (assignment_expression "uStack_658 = 1" identifier = number_literal) ;) (expression_statement "uStack_654 = 0;" (assignment_expression "uStack_654 = 0" identifier = number_literal) ;) (expression_statement "uStack_65c = 0;" (assignment_expression "uStack_65c = 0" identifier = number_literal) ;) (expression_statement "uStack_660 = 0;" (assignment_expression "uStack_660 = 0" identifier = number_literal) ;) (expression_statement "uStack_664 = uStack_5f4;" (assignment_expression "uStack_664 = uStack_5f4" identifier = identifier) ;) (expression_statement "uStack_668 = uStack_5f8;" (assignment_expression "uStack_668 = uStack_5f8" identifier = identifier) ;) (expression_statement "iStack_670 = iStack_600;" (assignment_expression "iStack_670 = iStack_600" identifier = identifier) ;) (expression_statement "puStack_620 = &uStack_5d8;" (assignment_expression "puStack_620 = &uStack_5d8" identifier = (pointer_expression "&uStack_5d8" & identifier)) ;) (expression_statement "iStack_61c = iVar25;" (assignment_expression "iStack_61c = iVar25" identifier = identifier) ;) (expression_statement "pcStack_614 = pcVar38;" (assignment_expression "pcStack_614 = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26b198))(&uStack_648);" (call_expression "(**(code **)(pcVar37 + 0x26b198))(&uStack_648)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26b198))" ( (pointer_expression "**(code **)(pcVar37 + 0x26b198)" * (pointer_expression "*(code **)(pcVar37 + 0x26b198)" * (cast_expression "(code **)(pcVar37 + 0x26b198)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26b198)" ( (binary_expression "pcVar37 + 0x26b198" identifier + number_literal) ))))) )) (argument_list "(&uStack_648)" ( (pointer_expression "&uStack_648" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_624 = uStack_5ec;" (assignment_expression "uStack_624 = uStack_5ec" identifier = identifier) ;) (expression_statement "uStack_628 = uStack_5f0;" (assignment_expression "uStack_628 = uStack_5f0" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_650 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_648);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_648;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_628);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar24 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar24 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar24 + 0x40)" * (cast_expression "(undefined4 **)(iVar24 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x40)" ( (binary_expression "iVar24 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_650 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_648);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_650 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_648);" (call_expression "(**(code **)(pcStack_650 + -0x5cb0))(iVar24 + 0x38,puVar22,&uStack_648)" (parenthesized_expression "(**(code **)(pcStack_650 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_650 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_650 + -0x5cb0)" * (cast_expression "(code **)(pcStack_650 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_650 + -0x5cb0)" ( (binary_expression "pcStack_650 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar24 + 0x38,puVar22,&uStack_648)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_648" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_648;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_628);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_648;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_628);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_648;" (assignment_expression "puVar12 = &uStack_648" identifier = (pointer_expression "&uStack_648" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_628);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "uVar35 = puVar17[1];" (assignment_expression "uVar35 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = uVar35;" (assignment_expression "puVar4[1] = uVar35" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_628)" ( (binary_expression "puVar12 != &uStack_628" identifier != (pointer_expression "&uStack_628" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar24 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar24 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;" (assignment_expression "iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_634 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_630 != -4) && (iStack_644 != 0)) {\n      if (*(int *)(iStack_644 + 100) == 0) {\n        *(int *)(iStack_644 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_644 + 100) = *(int *)(iStack_644 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar24 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar24 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar24 + 0x20) << 1" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_634 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_630 != -4) && (iStack_644 != 0)) {\n      if (*(int *)(iStack_644 + 100) == 0) {\n        *(int *)(iStack_644 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_644 + 100) = *(int *)(iStack_644 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;" (assignment_expression "*(int *)(iVar24 + 0x14) = iVar21 * 0x33333338" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar21 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar24 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar24 + 0x10)" * (cast_expression "(undefined4 *)(iVar24 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_634 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_634 << 0x1c < 0)" ( (binary_expression "iStack_634 << 0x1c < 0" (binary_expression "iStack_634 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;" (assignment_expression "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_630 != -4) && (iStack_644 != 0)) {\n      if (*(int *)(iStack_644 + 100) == 0) {\n        *(int *)(iStack_644 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_644 + 100) = *(int *)(iStack_644 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_630 != -4) && (iStack_644 != 0))" ( (binary_expression "(iStack_630 != -4) && (iStack_644 != 0)" (parenthesized_expression "(iStack_630 != -4)" ( (binary_expression "iStack_630 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_644 != 0)" ( (binary_expression "iStack_644 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_644 + 100) == 0) {\n        *(int *)(iStack_644 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_644 + 100) = *(int *)(iStack_644 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_644 + 100) == 0) {\n        *(int *)(iStack_644 + 0x60) = iVar21 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_644 + 100) == 0)" ( (binary_expression "*(int *)(iStack_644 + 100) == 0" (pointer_expression "*(int *)(iStack_644 + 100)" * (cast_expression "(int *)(iStack_644 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_644 + 100)" ( (binary_expression "iStack_644 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_644 + 0x60) = iVar21 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_644 + 0x60) = iVar21 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_644 + 0x60) = iVar21 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_644 + 0x60)" * (cast_expression "(int *)(iStack_644 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_644 + 0x60)" ( (binary_expression "iStack_644 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar21 * -0x33333333 + -1" (binary_expression "iVar21 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_644 + 100) = *(int *)(iStack_644 + 100) + 1;" (assignment_expression "*(int *)(iStack_644 + 100) = *(int *)(iStack_644 + 100) + 1" (pointer_expression "*(int *)(iStack_644 + 100)" * (cast_expression "(int *)(iStack_644 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_644 + 100)" ( (binary_expression "iStack_644 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_644 + 100) + 1" (pointer_expression "*(int *)(iStack_644 + 100)" * (cast_expression "(int *)(iStack_644 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_644 + 100)" ( (binary_expression "iStack_644 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_650 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcStack_650 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_650 + -0x7810)" * (cast_expression "(code **)(pcStack_650 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_650 + -0x7810)" ( (binary_expression "pcStack_650 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = add_local;" (assignment_expression "pcVar38 = add_local" identifier = identifier) ;) (expression_statement "iVar25 = *(int *)(pcStack_650 + -0x7fc4) + 0x3574;" (assignment_expression "iVar25 = *(int *)(pcStack_650 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_650 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_650 + -0x7fc4)" * (cast_expression "(int *)(pcStack_650 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_650 + -0x7fc4)" ( (binary_expression "pcStack_650 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar25,0x231,*(int *)(pcStack_650 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar37)(iVar25,0x231,*(int *)(pcStack_650 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar25,0x231,*(int *)(pcStack_650 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_650 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_650 + -0x7924)" * (cast_expression "(int *)(pcStack_650 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_650 + -0x7924)" ( (binary_expression "pcStack_650 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar21 = iStack_670;" (assignment_expression "iVar21 = iStack_670" identifier = identifier) ;) (expression_statement "pcStack_6c0 = pcVar37 + 0x27242c;" (assignment_expression "pcStack_6c0 = pcVar37 + 0x27242c" identifier = (binary_expression "pcVar37 + 0x27242c" identifier + number_literal)) ;) (expression_statement "iStack_688 = iVar23;" (assignment_expression "iStack_688 = iVar23" identifier = identifier) ;) (expression_statement "uStack_6d8 = uStack_668;" (assignment_expression "uStack_6d8 = uStack_668" identifier = identifier) ;) (expression_statement "uStack_6c4 = 0;" (assignment_expression "uStack_6c4 = 0" identifier = number_literal) ;) (expression_statement "uStack_6c8 = 0;" (assignment_expression "uStack_6c8 = 0" identifier = number_literal) ;) (expression_statement "uStack_6cc = 0;" (assignment_expression "uStack_6cc = 0" identifier = number_literal) ;) (expression_statement "uStack_6d0 = 0;" (assignment_expression "uStack_6d0 = 0" identifier = number_literal) ;) (expression_statement "uStack_6d4 = uStack_664;" (assignment_expression "uStack_6d4 = uStack_664" identifier = identifier) ;) (expression_statement "iStack_6e0 = iStack_670;" (assignment_expression "iStack_6e0 = iStack_670" identifier = identifier) ;) (expression_statement "puStack_690 = &uStack_648;" (assignment_expression "puStack_690 = &uStack_648" identifier = (pointer_expression "&uStack_648" & identifier)) ;) (expression_statement "iStack_68c = iVar24;" (assignment_expression "iStack_68c = iVar24" identifier = identifier) ;) (expression_statement "pcStack_684 = pcVar38;" (assignment_expression "pcStack_684 = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26afd8))(&uStack_6b8);" (call_expression "(**(code **)(pcVar37 + 0x26afd8))(&uStack_6b8)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26afd8))" ( (pointer_expression "**(code **)(pcVar37 + 0x26afd8)" * (pointer_expression "*(code **)(pcVar37 + 0x26afd8)" * (cast_expression "(code **)(pcVar37 + 0x26afd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26afd8)" ( (binary_expression "pcVar37 + 0x26afd8" identifier + number_literal) ))))) )) (argument_list "(&uStack_6b8)" ( (pointer_expression "&uStack_6b8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar25 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar25 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_694 = uStack_65c;" (assignment_expression "uStack_694 = uStack_65c" identifier = identifier) ;) (expression_statement "uStack_698 = uStack_660;" (assignment_expression "uStack_698 = uStack_660" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar25 + 0x40)) {\n    (**(code **)(pcStack_6c0 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_6b8);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_6b8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_698);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar25 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar25 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar25 + 0x40)" * (cast_expression "(undefined4 **)(iVar25 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x40)" ( (binary_expression "iVar25 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_6c0 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_6b8);\n    puVar22 = *(undefined4 **)(iVar25 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_6c0 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_6b8);" (call_expression "(**(code **)(pcStack_6c0 + -0x5cb0))(iVar25 + 0x38,puVar22,&uStack_6b8)" (parenthesized_expression "(**(code **)(pcStack_6c0 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_6c0 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_6c0 + -0x5cb0)" * (cast_expression "(code **)(pcStack_6c0 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_6c0 + -0x5cb0)" ( (binary_expression "pcStack_6c0 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar25 + 0x38,puVar22,&uStack_6b8)" ( (binary_expression "iVar25 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_6b8" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar25 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar25 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_6b8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_698);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_6b8;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_698);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar25 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_6b8;" (assignment_expression "puVar12 = &uStack_6b8" identifier = (pointer_expression "&uStack_6b8" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_698);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "uVar35 = puVar17[1];" (assignment_expression "uVar35 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = uVar35;" (assignment_expression "puVar4[1] = uVar35" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_698)" ( (binary_expression "puVar12 != &uStack_698" identifier != (pointer_expression "&uStack_698" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar25 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar25 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar25 + 0x3c)" * (cast_expression "(undefined4 **)(iVar25 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x3c)" ( (binary_expression "iVar25 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar23 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3;" (assignment_expression "iVar23 = (int)puVar22 - *(int *)(iVar25 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar25 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar25 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar25 + 0x38)" * (cast_expression "(int *)(iVar25 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x38)" ( (binary_expression "iVar25 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar25 + 0x20) << 1) {\n    *(int *)(iVar25 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_6a4 << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_6a0 != -4) && (iStack_6b4 != 0)) {\n      if (*(int *)(iStack_6b4 + 100) == 0) {\n        *(int *)(iStack_6b4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_6b4 + 100) = *(int *)(iStack_6b4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar25 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar25 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar25 + 0x20) << 1" (pointer_expression "*(int *)(iVar25 + 0x20)" * (cast_expression "(int *)(iVar25 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x20)" ( (binary_expression "iVar25 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar25 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar25 + 0x10) = 0;\n    *(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;\n    if (iStack_6a4 << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }\n    if ((iStack_6a0 != -4) && (iStack_6b4 != 0)) {\n      if (*(int *)(iStack_6b4 + 100) == 0) {\n        *(int *)(iStack_6b4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_6b4 + 100) = *(int *)(iStack_6b4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar25 + 0x14) = iVar23 * 0x33333338;" (assignment_expression "*(int *)(iVar25 + 0x14) = iVar23 * 0x33333338" (pointer_expression "*(int *)(iVar25 + 0x14)" * (cast_expression "(int *)(iVar25 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x14)" ( (binary_expression "iVar25 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar23 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar25 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar25 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar25 + 0x10)" * (cast_expression "(undefined4 *)(iVar25 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x10)" ( (binary_expression "iVar25 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar21 + 0x20) = *(byte *)(iVar21 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar21 + 0x20)" * (cast_expression "(byte *)(iVar21 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar21 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar21 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar21 + 0x20)" * (cast_expression "(byte *)(iVar21 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_6a4 << 0x1c < 0) {\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_6a4 << 0x1c < 0)" ( (binary_expression "iStack_6a4 << 0x1c < 0" (binary_expression "iStack_6a4 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1;" (assignment_expression "*(int *)(iVar25 + 0x30) = *(int *)(iVar25 + 0x30) + 1" (pointer_expression "*(int *)(iVar25 + 0x30)" * (cast_expression "(int *)(iVar25 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x30)" ( (binary_expression "iVar25 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar25 + 0x30) + 1" (pointer_expression "*(int *)(iVar25 + 0x30)" * (cast_expression "(int *)(iVar25 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x30)" ( (binary_expression "iVar25 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_6a0 != -4) && (iStack_6b4 != 0)) {\n      if (*(int *)(iStack_6b4 + 100) == 0) {\n        *(int *)(iStack_6b4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_6b4 + 100) = *(int *)(iStack_6b4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_6a0 != -4) && (iStack_6b4 != 0))" ( (binary_expression "(iStack_6a0 != -4) && (iStack_6b4 != 0)" (parenthesized_expression "(iStack_6a0 != -4)" ( (binary_expression "iStack_6a0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_6b4 != 0)" ( (binary_expression "iStack_6b4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_6b4 + 100) == 0) {\n        *(int *)(iStack_6b4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_6b4 + 100) = *(int *)(iStack_6b4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_6b4 + 100) == 0) {\n        *(int *)(iStack_6b4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_6b4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_6b4 + 100) == 0" (pointer_expression "*(int *)(iStack_6b4 + 100)" * (cast_expression "(int *)(iStack_6b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_6b4 + 100)" ( (binary_expression "iStack_6b4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_6b4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_6b4 + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_6b4 + 0x60) = iVar23 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_6b4 + 0x60)" * (cast_expression "(int *)(iStack_6b4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_6b4 + 0x60)" ( (binary_expression "iStack_6b4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_6b4 + 100) = *(int *)(iStack_6b4 + 100) + 1;" (assignment_expression "*(int *)(iStack_6b4 + 100) = *(int *)(iStack_6b4 + 100) + 1" (pointer_expression "*(int *)(iStack_6b4 + 100)" * (cast_expression "(int *)(iStack_6b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_6b4 + 100)" ( (binary_expression "iStack_6b4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_6b4 + 100) + 1" (pointer_expression "*(int *)(iStack_6b4 + 100)" * (cast_expression "(int *)(iStack_6b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_6b4 + 100)" ( (binary_expression "iStack_6b4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_6c0 + -0x7810);" (assignment_expression "pcVar37 = *(code **)(pcStack_6c0 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_6c0 + -0x7810)" * (cast_expression "(code **)(pcStack_6c0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_6c0 + -0x7810)" ( (binary_expression "pcStack_6c0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = add_local_relative;" (assignment_expression "pcVar38 = add_local_relative" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(pcStack_6c0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar24 = *(int *)(pcStack_6c0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_6c0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_6c0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_6c0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_6c0 + -0x7fc4)" ( (binary_expression "pcStack_6c0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_6c0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar37)(iVar24,0x231,*(int *)(pcStack_6c0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar24,0x231,*(int *)(pcStack_6c0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_6c0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_6c0 + -0x7924)" * (cast_expression "(int *)(pcStack_6c0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_6c0 + -0x7924)" ( (binary_expression "pcStack_6c0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar23 = iStack_6e0;" (assignment_expression "iVar23 = iStack_6e0" identifier = identifier) ;) (expression_statement "iStack_6f8 = iVar21;" (assignment_expression "iStack_6f8 = iVar21" identifier = identifier) ;) (expression_statement "iVar21 = iStack_6e0;" (assignment_expression "iVar21 = iStack_6e0" identifier = identifier) ;) (expression_statement "puStack_700 = &uStack_6b8;" (assignment_expression "puStack_700 = &uStack_6b8" identifier = (pointer_expression "&uStack_6b8" & identifier)) ;) (expression_statement "iStack_6fc = iVar25;" (assignment_expression "iStack_6fc = iVar25" identifier = identifier) ;) (expression_statement "pcStack_6f4 = pcVar38;" (assignment_expression "pcStack_6f4 = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x26ae1c))(&uStack_728);" (call_expression "(**(code **)(pcVar37 + 0x26ae1c))(&uStack_728)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26ae1c))" ( (pointer_expression "**(code **)(pcVar37 + 0x26ae1c)" * (pointer_expression "*(code **)(pcVar37 + 0x26ae1c)" * (cast_expression "(code **)(pcVar37 + 0x26ae1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26ae1c)" ( (binary_expression "pcVar37 + 0x26ae1c" identifier + number_literal) ))))) )) (argument_list "(&uStack_728)" ( (pointer_expression "&uStack_728" & identifier) ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_704 = uStack_6cc;" (assignment_expression "uStack_704 = uStack_6cc" identifier = identifier) ;) (expression_statement "uStack_708 = uStack_6d0;" (assignment_expression "uStack_708 = uStack_6d0" identifier = identifier) ;) (if_statement "if (puVar22 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcVar37 + 0x26c5c0))(iVar24 + 0x38,puVar22,&uStack_728,uStack_6cc,iVar21);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_728;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_708);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" if (parenthesized_expression "(puVar22 == *(undefined4 **)(iVar24 + 0x40))" ( (binary_expression "puVar22 == *(undefined4 **)(iVar24 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar24 + 0x40)" * (cast_expression "(undefined4 **)(iVar24 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x40)" ( (binary_expression "iVar24 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x26c5c0))(iVar24 + 0x38,puVar22,&uStack_728,uStack_6cc,iVar21);\n    puVar22 = *(undefined4 **)(iVar24 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x26c5c0))(iVar24 + 0x38,puVar22,&uStack_728,uStack_6cc,iVar21);" (call_expression "(**(code **)(pcVar37 + 0x26c5c0))(iVar24 + 0x38,puVar22,&uStack_728,uStack_6cc,iVar21)" (parenthesized_expression "(**(code **)(pcVar37 + 0x26c5c0))" ( (pointer_expression "**(code **)(pcVar37 + 0x26c5c0)" * (pointer_expression "*(code **)(pcVar37 + 0x26c5c0)" * (cast_expression "(code **)(pcVar37 + 0x26c5c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26c5c0)" ( (binary_expression "pcVar37 + 0x26c5c0" identifier + number_literal) ))))) )) (argument_list "(iVar24 + 0x38,puVar22,&uStack_728,uStack_6cc,iVar21)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_728" & identifier) , identifier , identifier ))) ;) (expression_statement "puVar22 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar22 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar22;\n    puVar12 = &uStack_728;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_708);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" else (compound_statement "{\n    puVar1 = puVar22;\n    puVar12 = &uStack_728;\n    do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_708);\n    puVar22 = puVar22 + 10;\n    uVar7 = puVar17[5];\n    puVar4[4] = *puVar12;\n    puVar4[5] = uVar7;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar22;\n  }" { (expression_statement "puVar1 = puVar22;" (assignment_expression "puVar1 = puVar22" identifier = identifier) ;) (expression_statement "puVar12 = &uStack_728;" (assignment_expression "puVar12 = &uStack_728" identifier = (pointer_expression "&uStack_728" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    } while (puVar12 != &uStack_708);" do (compound_statement "{\n      puVar17 = puVar12;\n      puVar4 = puVar1;\n      puVar12 = puVar17 + 4;\n      uVar35 = puVar17[1];\n      uVar28 = puVar17[2];\n      uVar7 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar35;\n      puVar4[2] = uVar28;\n      puVar4[3] = uVar7;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar12 = puVar17 + 4;" (assignment_expression "puVar12 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "uVar35 = puVar17[1];" (assignment_expression "uVar35 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar17[2];" (assignment_expression "uVar28 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[3];" (assignment_expression "uVar7 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = uVar35;" (assignment_expression "puVar4[1] = uVar35" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar28;" (assignment_expression "puVar4[2] = uVar28" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar7;" (assignment_expression "puVar4[3] = uVar7" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != &uStack_708)" ( (binary_expression "puVar12 != &uStack_708" identifier != (pointer_expression "&uStack_708" & identifier)) )) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "uVar7 = puVar17[5];" (assignment_expression "uVar7 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar12;" (assignment_expression "puVar4[4] = *puVar12" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar4[5] = uVar7;" (assignment_expression "puVar4[5] = uVar7" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar24 + 0x3c) = puVar22;" (assignment_expression "*(undefined4 **)(iVar24 + 0x3c) = puVar22" (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3;" (assignment_expression "iVar21 = (int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" identifier = (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38) >> 3" (binary_expression "(int)puVar22 - *(int *)(iVar24 + 0x38)" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_714 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_710 != -4) && (iStack_724 != 0)) {\n      if (*(int *)(iStack_724 + 100) == 0) {\n        *(int *)(iStack_724 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_724 + 100) = *(int *)(iStack_724 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar24 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar24 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar24 + 0x20) << 1" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_714 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_710 != -4) && (iStack_724 != 0)) {\n      if (*(int *)(iStack_724 + 100) == 0) {\n        *(int *)(iStack_724 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_724 + 100) = *(int *)(iStack_724 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar24 + 0x14) = iVar21 * 0x33333338;" (assignment_expression "*(int *)(iVar24 + 0x14) = iVar21 * 0x33333338" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar21 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar24 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar24 + 0x10)" * (cast_expression "(undefined4 *)(iVar24 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_714 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_714 << 0x1c < 0)" ( (binary_expression "iStack_714 << 0x1c < 0" (binary_expression "iStack_714 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;" (assignment_expression "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_710 != -4) && (iStack_724 != 0)) {\n      if (*(int *)(iStack_724 + 100) == 0) {\n        *(int *)(iStack_724 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_724 + 100) = *(int *)(iStack_724 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_710 != -4) && (iStack_724 != 0))" ( (binary_expression "(iStack_710 != -4) && (iStack_724 != 0)" (parenthesized_expression "(iStack_710 != -4)" ( (binary_expression "iStack_710 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_724 != 0)" ( (binary_expression "iStack_724 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_724 + 100) == 0) {\n        *(int *)(iStack_724 + 0x60) = iVar21 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_724 + 100) = *(int *)(iStack_724 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_724 + 100) == 0) {\n        *(int *)(iStack_724 + 0x60) = iVar21 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_724 + 100) == 0)" ( (binary_expression "*(int *)(iStack_724 + 100) == 0" (pointer_expression "*(int *)(iStack_724 + 100)" * (cast_expression "(int *)(iStack_724 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_724 + 100)" ( (binary_expression "iStack_724 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_724 + 0x60) = iVar21 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_724 + 0x60) = iVar21 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_724 + 0x60) = iVar21 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_724 + 0x60)" * (cast_expression "(int *)(iStack_724 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_724 + 0x60)" ( (binary_expression "iStack_724 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar21 * -0x33333333 + -1" (binary_expression "iVar21 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_724 + 100) = *(int *)(iStack_724 + 100) + 1;" (assignment_expression "*(int *)(iStack_724 + 100) = *(int *)(iStack_724 + 100) + 1" (pointer_expression "*(int *)(iStack_724 + 100)" * (cast_expression "(int *)(iStack_724 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_724 + 100)" ( (binary_expression "iStack_724 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_724 + 100) + 1" (pointer_expression "*(int *)(iStack_724 + 100)" * (cast_expression "(int *)(iStack_724 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_724 + 100)" ( (binary_expression "iStack_724 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "uVar26 = 0x231;" (assignment_expression "uVar26 = 0x231" identifier = number_literal) ;) (expression_statement "pcVar38 = *(code **)(pcVar37 + 0x26aa60);" (assignment_expression "pcVar38 = *(code **)(pcVar37 + 0x26aa60)" identifier = (pointer_expression "*(code **)(pcVar37 + 0x26aa60)" * (cast_expression "(code **)(pcVar37 + 0x26aa60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x26aa60)" ( (binary_expression "pcVar37 + 0x26aa60" identifier + number_literal) ))))) ;) (expression_statement "piVar18 = (int *)(*(int *)(pcVar37 + 0x26a2ac) + 0x3574);" (assignment_expression "piVar18 = (int *)(*(int *)(pcVar37 + 0x26a2ac) + 0x3574)" identifier = (cast_expression "(int *)(*(int *)(pcVar37 + 0x26a2ac) + 0x3574)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x26a2ac) + 0x3574)" ( (binary_expression "*(int *)(pcVar37 + 0x26a2ac) + 0x3574" (pointer_expression "*(int *)(pcVar37 + 0x26a2ac)" * (cast_expression "(int *)(pcVar37 + 0x26a2ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x26a2ac)" ( (binary_expression "pcVar37 + 0x26a2ac" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar38)(piVar18,0x231,*(int *)(pcVar37 + 0x26a94c) + -0x2b1c);" (call_expression "(*pcVar38)(piVar18,0x231,*(int *)(pcVar37 + 0x26a94c) + -0x2b1c)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(piVar18,0x231,*(int *)(pcVar37 + 0x26a94c) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar37 + 0x26a94c) + -0x2b1c" (pointer_expression "*(int *)(pcVar37 + 0x26a94c)" * (cast_expression "(int *)(pcVar37 + 0x26a94c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x26a94c)" ( (binary_expression "pcVar37 + 0x26a94c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar26 == 1) {\n    piVar5 = piVar18 + 6;\n    piVar18[6] = 0;\n  }\n  else {\n    piVar5 = (int *)(*(code *)(*(int *)(pcVar38 + 0x26cd70) + 0x341c))(uVar26);\n  }" if (parenthesized_expression "(uVar26 == 1)" ( (binary_expression "uVar26 == 1" identifier == number_literal) )) (compound_statement "{\n    piVar5 = piVar18 + 6;\n    piVar18[6] = 0;\n  }" { (expression_statement "piVar5 = piVar18 + 6;" (assignment_expression "piVar5 = piVar18 + 6" identifier = (binary_expression "piVar18 + 6" identifier + number_literal)) ;) (expression_statement "piVar18[6] = 0;" (assignment_expression "piVar18[6] = 0" (subscript_expression "piVar18[6]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    piVar5 = (int *)(*(code *)(*(int *)(pcVar38 + 0x26cd70) + 0x341c))(uVar26);\n  }" else (compound_statement "{\n    piVar5 = (int *)(*(code *)(*(int *)(pcVar38 + 0x26cd70) + 0x341c))(uVar26);\n  }" { (expression_statement "piVar5 = (int *)(*(code *)(*(int *)(pcVar38 + 0x26cd70) + 0x341c))(uVar26);" (assignment_expression "piVar5 = (int *)(*(code *)(*(int *)(pcVar38 + 0x26cd70) + 0x341c))(uVar26)" identifier = (cast_expression "(int *)(*(code *)(*(int *)(pcVar38 + 0x26cd70) + 0x341c))(uVar26)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(*(int *)(pcVar38 + 0x26cd70) + 0x341c))(uVar26)" (parenthesized_expression "(*(code *)(*(int *)(pcVar38 + 0x26cd70) + 0x341c))" ( (pointer_expression "*(code *)(*(int *)(pcVar38 + 0x26cd70) + 0x341c)" * (cast_expression "(code *)(*(int *)(pcVar38 + 0x26cd70) + 0x341c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar38 + 0x26cd70) + 0x341c)" ( (binary_expression "*(int *)(pcVar38 + 0x26cd70) + 0x341c" (pointer_expression "*(int *)(pcVar38 + 0x26cd70)" * (cast_expression "(int *)(pcVar38 + 0x26cd70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar38 + 0x26cd70)" ( (binary_expression "pcVar38 + 0x26cd70" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar26)" ( identifier ))))) ;) }))) (expression_statement "piVar8 = (int *)piVar18[2];" (assignment_expression "piVar8 = (int *)piVar18[2]" identifier = (cast_expression "(int *)piVar18[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar18[2]" identifier [ number_literal ]))) ;) (expression_statement "piVar18[2] = 0;" (assignment_expression "piVar18[2] = 0" (subscript_expression "piVar18[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar8 != (int *)0x0) {\n    uVar32 = 0;\n    do {\n      while( true ) {\n        if (uVar26 == 0) {\n          trap(7);\n        }\n        uVar39 = (uint)piVar8[10] % uVar26;\n        piVar19 = piVar5 + uVar39;\n        piVar36 = (int *)*piVar8;\n        if ((int *)*piVar19 == (int *)0x0) break;\n        *piVar8 = *(int *)*piVar19;\n        *(int **)*piVar19 = piVar8;\n        uVar39 = uVar32;\nLAB_00257210:\n        piVar8 = piVar36;\n        uVar32 = uVar39;\n        if (piVar36 == (int *)0x0) goto LAB_0025726c;\n      }\n      *piVar8 = piVar18[2];\n      piVar18[2] = (int)piVar8;\n      *piVar19 = (int)(piVar18 + 2);\n      if (*piVar8 == 0) goto LAB_00257210;\n      piVar5[uVar32] = (int)piVar8;\n      piVar8 = piVar36;\n      uVar32 = uVar39;\n    } while (piVar36 != (int *)0x0);\n  }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar32 = 0;\n    do {\n      while( true ) {\n        if (uVar26 == 0) {\n          trap(7);\n        }\n        uVar39 = (uint)piVar8[10] % uVar26;\n        piVar19 = piVar5 + uVar39;\n        piVar36 = (int *)*piVar8;\n        if ((int *)*piVar19 == (int *)0x0) break;\n        *piVar8 = *(int *)*piVar19;\n        *(int **)*piVar19 = piVar8;\n        uVar39 = uVar32;\nLAB_00257210:\n        piVar8 = piVar36;\n        uVar32 = uVar39;\n        if (piVar36 == (int *)0x0) goto LAB_0025726c;\n      }\n      *piVar8 = piVar18[2];\n      piVar18[2] = (int)piVar8;\n      *piVar19 = (int)(piVar18 + 2);\n      if (*piVar8 == 0) goto LAB_00257210;\n      piVar5[uVar32] = (int)piVar8;\n      piVar8 = piVar36;\n      uVar32 = uVar39;\n    } while (piVar36 != (int *)0x0);\n  }" { (expression_statement "uVar32 = 0;" (assignment_expression "uVar32 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        if (uVar26 == 0) {\n          trap(7);\n        }\n        uVar39 = (uint)piVar8[10] % uVar26;\n        piVar19 = piVar5 + uVar39;\n        piVar36 = (int *)*piVar8;\n        if ((int *)*piVar19 == (int *)0x0) break;\n        *piVar8 = *(int *)*piVar19;\n        *(int **)*piVar19 = piVar8;\n        uVar39 = uVar32;\nLAB_00257210:\n        piVar8 = piVar36;\n        uVar32 = uVar39;\n        if (piVar36 == (int *)0x0) goto LAB_0025726c;\n      }\n      *piVar8 = piVar18[2];\n      piVar18[2] = (int)piVar8;\n      *piVar19 = (int)(piVar18 + 2);\n      if (*piVar8 == 0) goto LAB_00257210;\n      piVar5[uVar32] = (int)piVar8;\n      piVar8 = piVar36;\n      uVar32 = uVar39;\n    } while (piVar36 != (int *)0x0);" do (compound_statement "{\n      while( true ) {\n        if (uVar26 == 0) {\n          trap(7);\n        }\n        uVar39 = (uint)piVar8[10] % uVar26;\n        piVar19 = piVar5 + uVar39;\n        piVar36 = (int *)*piVar8;\n        if ((int *)*piVar19 == (int *)0x0) break;\n        *piVar8 = *(int *)*piVar19;\n        *(int **)*piVar19 = piVar8;\n        uVar39 = uVar32;\nLAB_00257210:\n        piVar8 = piVar36;\n        uVar32 = uVar39;\n        if (piVar36 == (int *)0x0) goto LAB_0025726c;\n      }\n      *piVar8 = piVar18[2];\n      piVar18[2] = (int)piVar8;\n      *piVar19 = (int)(piVar18 + 2);\n      if (*piVar8 == 0) goto LAB_00257210;\n      piVar5[uVar32] = (int)piVar8;\n      piVar8 = piVar36;\n      uVar32 = uVar39;\n    }" { (while_statement "while( true ) {\n        if (uVar26 == 0) {\n          trap(7);\n        }\n        uVar39 = (uint)piVar8[10] % uVar26;\n        piVar19 = piVar5 + uVar39;\n        piVar36 = (int *)*piVar8;\n        if ((int *)*piVar19 == (int *)0x0) break;\n        *piVar8 = *(int *)*piVar19;\n        *(int **)*piVar19 = piVar8;\n        uVar39 = uVar32;\nLAB_00257210:\n        piVar8 = piVar36;\n        uVar32 = uVar39;\n        if (piVar36 == (int *)0x0) goto LAB_0025726c;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (uVar26 == 0) {\n          trap(7);\n        }\n        uVar39 = (uint)piVar8[10] % uVar26;\n        piVar19 = piVar5 + uVar39;\n        piVar36 = (int *)*piVar8;\n        if ((int *)*piVar19 == (int *)0x0) break;\n        *piVar8 = *(int *)*piVar19;\n        *(int **)*piVar19 = piVar8;\n        uVar39 = uVar32;\nLAB_00257210:\n        piVar8 = piVar36;\n        uVar32 = uVar39;\n        if (piVar36 == (int *)0x0) goto LAB_0025726c;\n      }" { (if_statement "if (uVar26 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n          trap(7);\n        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar39 = (uint)piVar8[10] % uVar26;" (assignment_expression "uVar39 = (uint)piVar8[10] % uVar26" identifier = (binary_expression "(uint)piVar8[10] % uVar26" (cast_expression "(uint)piVar8[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar8[10]" identifier [ number_literal ])) % identifier)) ;) (expression_statement "piVar19 = piVar5 + uVar39;" (assignment_expression "piVar19 = piVar5 + uVar39" identifier = (binary_expression "piVar5 + uVar39" identifier + identifier)) ;) (expression_statement "piVar36 = (int *)*piVar8;" (assignment_expression "piVar36 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if ((int *)*piVar19 == (int *)0x0) break;" if (parenthesized_expression "((int *)*piVar19 == (int *)0x0)" ( (binary_expression "(int *)*piVar19 == (int *)0x0" (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier)) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*piVar8 = *(int *)*piVar19;" (assignment_expression "*piVar8 = *(int *)*piVar19" (pointer_expression "*piVar8" * identifier) = (pointer_expression "*(int *)*piVar19" * (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier)))) ;) (expression_statement "*(int **)*piVar19 = piVar8;" (assignment_expression "*(int **)*piVar19 = piVar8" (pointer_expression "*(int **)*piVar19" * (cast_expression "(int **)*piVar19" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*piVar19" * identifier))) = identifier) ;) (expression_statement "uVar39 = uVar32;" (assignment_expression "uVar39 = uVar32" identifier = identifier) ;) (labeled_statement "LAB_00257210:\n        piVar8 = piVar36;" statement_identifier : (expression_statement "piVar8 = piVar36;" (assignment_expression "piVar8 = piVar36" identifier = identifier) ;)) (expression_statement "uVar32 = uVar39;" (assignment_expression "uVar32 = uVar39" identifier = identifier) ;) (if_statement "if (piVar36 == (int *)0x0) goto LAB_0025726c;" if (parenthesized_expression "(piVar36 == (int *)0x0)" ( (binary_expression "piVar36 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025726c;" goto statement_identifier ;)) })) (expression_statement "*piVar8 = piVar18[2];" (assignment_expression "*piVar8 = piVar18[2]" (pointer_expression "*piVar8" * identifier) = (subscript_expression "piVar18[2]" identifier [ number_literal ])) ;) (expression_statement "piVar18[2] = (int)piVar8;" (assignment_expression "piVar18[2] = (int)piVar8" (subscript_expression "piVar18[2]" identifier [ number_literal ]) = (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar19 = (int)(piVar18 + 2);" (assignment_expression "*piVar19 = (int)(piVar18 + 2)" (pointer_expression "*piVar19" * identifier) = (cast_expression "(int)(piVar18 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar18 + 2)" ( (binary_expression "piVar18 + 2" identifier + number_literal) )))) ;) (if_statement "if (*piVar8 == 0) goto LAB_00257210;" if (parenthesized_expression "(*piVar8 == 0)" ( (binary_expression "*piVar8 == 0" (pointer_expression "*piVar8" * identifier) == number_literal) )) (goto_statement "goto LAB_00257210;" goto statement_identifier ;)) (expression_statement "piVar5[uVar32] = (int)piVar8;" (assignment_expression "piVar5[uVar32] = (int)piVar8" (subscript_expression "piVar5[uVar32]" identifier [ identifier ]) = (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar8 = piVar36;" (assignment_expression "piVar8 = piVar36" identifier = identifier) ;) (expression_statement "uVar32 = uVar39;" (assignment_expression "uVar32 = uVar39" identifier = identifier) ;) }) while (parenthesized_expression "(piVar36 != (int *)0x0)" ( (binary_expression "piVar36 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_0025726c:\n  if (piVar18 + 6 != (int *)*piVar18) {\n    (**(code **)(pcVar38 + 0x26a168))();\n  }" statement_identifier : (if_statement "if (piVar18 + 6 != (int *)*piVar18) {\n    (**(code **)(pcVar38 + 0x26a168))();\n  }" if (parenthesized_expression "(piVar18 + 6 != (int *)*piVar18)" ( (binary_expression "piVar18 + 6 != (int *)*piVar18" (binary_expression "piVar18 + 6" identifier + number_literal) != (cast_expression "(int *)*piVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier))) )) (compound_statement "{\n    (**(code **)(pcVar38 + 0x26a168))();\n  }" { (expression_statement "(**(code **)(pcVar38 + 0x26a168))();" (call_expression "(**(code **)(pcVar38 + 0x26a168))()" (parenthesized_expression "(**(code **)(pcVar38 + 0x26a168))" ( (pointer_expression "**(code **)(pcVar38 + 0x26a168)" * (pointer_expression "*(code **)(pcVar38 + 0x26a168)" * (cast_expression "(code **)(pcVar38 + 0x26a168)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar38 + 0x26a168)" ( (binary_expression "pcVar38 + 0x26a168" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "piVar18[1] = uVar26;" (assignment_expression "piVar18[1] = uVar26" (subscript_expression "piVar18[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar18 = (int)piVar5;" (assignment_expression "*piVar18 = (int)piVar5" (pointer_expression "*piVar18" * identifier) = (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00255270(int param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 int param_10)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined *puVar5;\n  undefined **ppuVar6;\n  undefined **ppuVar7;\n  undefined4 *puVar8;\n  code **ppcVar9;\n  code **ppcVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  undefined4 uVar19;\n  code *pcVar20;\n  code *pcVar21;\n  code *pcVar22;\n  code *pcStack_1b8;\n  int iStack_1b4;\n  int iStack_1a4;\n  int iStack_1a0;\n  code *pcStack_198;\n  undefined4 uStack_194;\n  undefined4 *puStack_190;\n  int iStack_18c;\n  undefined *puStack_188;\n  code *pcStack_184;\n  undefined4 uStack_170;\n  undefined4 uStack_16c;\n  undefined4 uStack_168;\n  undefined4 uStack_164;\n  code *pcStack_160;\n  undefined4 uStack_15c;\n  undefined4 uStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined **ppuStack_130;\n  int iStack_12c;\n  int iStack_128;\n  code *pcStack_124;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  code *pcStack_100;\n  undefined *puStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined *puStack_d8;\n  undefined *puStack_d4;\n  undefined4 *puStack_d0;\n  undefined *puStack_cc;\n  int iStack_c8;\n  code *pcStack_c4;\n  undefined4 uStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  undefined4 uStack_a4;\n  undefined *puStack_a0;\n  undefined *puStack_9c;\n  undefined4 uStack_98;\n  int iStack_94;\n  int iStack_84;\n  int iStack_80;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 *puStack_70;\n  int iStack_6c;\n  int iStack_68;\n  code *pcStack_64;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int iStack_44;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  int local_14;\n  \n  local_48 = 1;\n  local_4c = param_8;\n  local_50 = param_7;\n  (*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5);\n  puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar11 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = FUN_0025542c;\n  puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  puStack_a0 = puVar18 + 0x273e14;\n  uStack_b0 = local_50;\n  uStack_a8 = 0;\n  uStack_ac = local_4c;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar21;\n  (**(code **)(puVar18 + 0x26cb6c))(&uStack_98);\n  puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar11 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }\n  iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(puStack_a0 + -0x7810);\n  pcVar22 = FUN_002555d8;\n  iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar21 + 0x273c68;\n  uStack_108 = uStack_a8;\n  uStack_104 = uStack_a4;\n  uStack_110 = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar22;\n  (**(code **)(pcVar21 + 0x26ebac))(&puStack_f8);\n  puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n  puStack_d4 = puStack_9c;\n  puStack_d8 = puStack_a0;\n  if (puVar11 == *(undefined4 **)(iVar13 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }\n  else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar13 + 0x20) << 1) {\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_100 + -0x7810);\n  pcVar22 = FUN_0025578c;\n  iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);\n  pcStack_160 = pcVar21 + 0x273ab4;\n  uStack_170 = uStack_110;\n  uStack_168 = 0;\n  uStack_16c = uStack_10c;\n  ppuStack_130 = &puStack_f8;\n  iStack_12c = iVar13;\n  iStack_128 = iVar12;\n  pcStack_124 = pcVar22;\n  (**(code **)(pcVar21 + 0x26c80c))(&uStack_158);\n  puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  uStack_134 = uStack_104;\n  uStack_138 = uStack_108;\n  if (puVar11 == *(undefined4 **)(iVar14 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar14 + 0x20) << 1) {\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_160 + -0x7810);\n  iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;\n  pcVar22 = FUN_00255938;\n  iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar12,0x231);\n  uVar15 = 0;\n  uVar3 = uStack_168;\n  puStack_190 = &uStack_158;\n  iStack_18c = iVar14;\n  puStack_188 = puVar18;\n  pcStack_184 = pcVar22;\n  (**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8);\n  puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_194 = uStack_15c;\n  pcStack_198 = pcStack_160;\n  if (puVar11 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c);\n  return;\n}\n\n" (function_definition "void FUN_00255270(int param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 int param_10)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined *puVar5;\n  undefined **ppuVar6;\n  undefined **ppuVar7;\n  undefined4 *puVar8;\n  code **ppcVar9;\n  code **ppcVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  undefined4 uVar19;\n  code *pcVar20;\n  code *pcVar21;\n  code *pcVar22;\n  code *pcStack_1b8;\n  int iStack_1b4;\n  int iStack_1a4;\n  int iStack_1a0;\n  code *pcStack_198;\n  undefined4 uStack_194;\n  undefined4 *puStack_190;\n  int iStack_18c;\n  undefined *puStack_188;\n  code *pcStack_184;\n  undefined4 uStack_170;\n  undefined4 uStack_16c;\n  undefined4 uStack_168;\n  undefined4 uStack_164;\n  code *pcStack_160;\n  undefined4 uStack_15c;\n  undefined4 uStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined **ppuStack_130;\n  int iStack_12c;\n  int iStack_128;\n  code *pcStack_124;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  code *pcStack_100;\n  undefined *puStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined *puStack_d8;\n  undefined *puStack_d4;\n  undefined4 *puStack_d0;\n  undefined *puStack_cc;\n  int iStack_c8;\n  code *pcStack_c4;\n  undefined4 uStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  undefined4 uStack_a4;\n  undefined *puStack_a0;\n  undefined *puStack_9c;\n  undefined4 uStack_98;\n  int iStack_94;\n  int iStack_84;\n  int iStack_80;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 *puStack_70;\n  int iStack_6c;\n  int iStack_68;\n  code *pcStack_64;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int iStack_44;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  int local_14;\n  \n  local_48 = 1;\n  local_4c = param_8;\n  local_50 = param_7;\n  (*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5);\n  puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar11 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = FUN_0025542c;\n  puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  puStack_a0 = puVar18 + 0x273e14;\n  uStack_b0 = local_50;\n  uStack_a8 = 0;\n  uStack_ac = local_4c;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar21;\n  (**(code **)(puVar18 + 0x26cb6c))(&uStack_98);\n  puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar11 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }\n  iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(puStack_a0 + -0x7810);\n  pcVar22 = FUN_002555d8;\n  iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar21 + 0x273c68;\n  uStack_108 = uStack_a8;\n  uStack_104 = uStack_a4;\n  uStack_110 = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar22;\n  (**(code **)(pcVar21 + 0x26ebac))(&puStack_f8);\n  puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n  puStack_d4 = puStack_9c;\n  puStack_d8 = puStack_a0;\n  if (puVar11 == *(undefined4 **)(iVar13 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }\n  else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar13 + 0x20) << 1) {\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_100 + -0x7810);\n  pcVar22 = FUN_0025578c;\n  iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);\n  pcStack_160 = pcVar21 + 0x273ab4;\n  uStack_170 = uStack_110;\n  uStack_168 = 0;\n  uStack_16c = uStack_10c;\n  ppuStack_130 = &puStack_f8;\n  iStack_12c = iVar13;\n  iStack_128 = iVar12;\n  pcStack_124 = pcVar22;\n  (**(code **)(pcVar21 + 0x26c80c))(&uStack_158);\n  puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  uStack_134 = uStack_104;\n  uStack_138 = uStack_108;\n  if (puVar11 == *(undefined4 **)(iVar14 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar14 + 0x20) << 1) {\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_160 + -0x7810);\n  iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;\n  pcVar22 = FUN_00255938;\n  iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar12,0x231);\n  uVar15 = 0;\n  uVar3 = uStack_168;\n  puStack_190 = &uStack_158;\n  iStack_18c = iVar14;\n  puStack_188 = puVar18;\n  pcStack_184 = pcVar22;\n  (**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8);\n  puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_194 = uStack_15c;\n  pcStack_198 = pcStack_160;\n  if (puVar11 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c);\n  return;\n}" primitive_type (function_declarator "FUN_00255270(int param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 int param_10)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 int param_10)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "int param_10" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined *puVar5;\n  undefined **ppuVar6;\n  undefined **ppuVar7;\n  undefined4 *puVar8;\n  code **ppcVar9;\n  code **ppcVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  undefined4 uVar19;\n  code *pcVar20;\n  code *pcVar21;\n  code *pcVar22;\n  code *pcStack_1b8;\n  int iStack_1b4;\n  int iStack_1a4;\n  int iStack_1a0;\n  code *pcStack_198;\n  undefined4 uStack_194;\n  undefined4 *puStack_190;\n  int iStack_18c;\n  undefined *puStack_188;\n  code *pcStack_184;\n  undefined4 uStack_170;\n  undefined4 uStack_16c;\n  undefined4 uStack_168;\n  undefined4 uStack_164;\n  code *pcStack_160;\n  undefined4 uStack_15c;\n  undefined4 uStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined **ppuStack_130;\n  int iStack_12c;\n  int iStack_128;\n  code *pcStack_124;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  code *pcStack_100;\n  undefined *puStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined *puStack_d8;\n  undefined *puStack_d4;\n  undefined4 *puStack_d0;\n  undefined *puStack_cc;\n  int iStack_c8;\n  code *pcStack_c4;\n  undefined4 uStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  undefined4 uStack_a4;\n  undefined *puStack_a0;\n  undefined *puStack_9c;\n  undefined4 uStack_98;\n  int iStack_94;\n  int iStack_84;\n  int iStack_80;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 *puStack_70;\n  int iStack_6c;\n  int iStack_68;\n  code *pcStack_64;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int iStack_44;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  int local_14;\n  \n  local_48 = 1;\n  local_4c = param_8;\n  local_50 = param_7;\n  (*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5);\n  puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar11 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = FUN_0025542c;\n  puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  puStack_a0 = puVar18 + 0x273e14;\n  uStack_b0 = local_50;\n  uStack_a8 = 0;\n  uStack_ac = local_4c;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar21;\n  (**(code **)(puVar18 + 0x26cb6c))(&uStack_98);\n  puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar11 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }\n  iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(puStack_a0 + -0x7810);\n  pcVar22 = FUN_002555d8;\n  iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar21 + 0x273c68;\n  uStack_108 = uStack_a8;\n  uStack_104 = uStack_a4;\n  uStack_110 = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar22;\n  (**(code **)(pcVar21 + 0x26ebac))(&puStack_f8);\n  puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n  puStack_d4 = puStack_9c;\n  puStack_d8 = puStack_a0;\n  if (puVar11 == *(undefined4 **)(iVar13 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }\n  else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar13 + 0x20) << 1) {\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_100 + -0x7810);\n  pcVar22 = FUN_0025578c;\n  iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);\n  pcStack_160 = pcVar21 + 0x273ab4;\n  uStack_170 = uStack_110;\n  uStack_168 = 0;\n  uStack_16c = uStack_10c;\n  ppuStack_130 = &puStack_f8;\n  iStack_12c = iVar13;\n  iStack_128 = iVar12;\n  pcStack_124 = pcVar22;\n  (**(code **)(pcVar21 + 0x26c80c))(&uStack_158);\n  puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  uStack_134 = uStack_104;\n  uStack_138 = uStack_108;\n  if (puVar11 == *(undefined4 **)(iVar14 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar14 + 0x20) << 1) {\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_160 + -0x7810);\n  iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;\n  pcVar22 = FUN_00255938;\n  iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar12,0x231);\n  uVar15 = 0;\n  uVar3 = uStack_168;\n  puStack_190 = &uStack_158;\n  iStack_18c = iVar14;\n  puStack_188 = puVar18;\n  pcStack_184 = pcVar22;\n  (**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8);\n  puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_194 = uStack_15c;\n  pcStack_198 = pcStack_160;\n  if (puVar11 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c);\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "undefined **ppuVar7;" type_identifier (pointer_declarator "**ppuVar7" * (pointer_declarator "*ppuVar7" * identifier)) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "code **ppcVar9;" type_identifier (pointer_declarator "**ppcVar9" * (pointer_declarator "*ppcVar9" * identifier)) ;) (declaration "code **ppcVar10;" type_identifier (pointer_declarator "**ppcVar10" * (pointer_declarator "*ppcVar10" * identifier)) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "code *pcStack_1b8;" type_identifier (pointer_declarator "*pcStack_1b8" * identifier) ;) (declaration "int iStack_1b4;" primitive_type identifier ;) (declaration "int iStack_1a4;" primitive_type identifier ;) (declaration "int iStack_1a0;" primitive_type identifier ;) (declaration "code *pcStack_198;" type_identifier (pointer_declarator "*pcStack_198" * identifier) ;) (declaration "undefined4 uStack_194;" type_identifier identifier ;) (declaration "undefined4 *puStack_190;" type_identifier (pointer_declarator "*puStack_190" * identifier) ;) (declaration "int iStack_18c;" primitive_type identifier ;) (declaration "undefined *puStack_188;" type_identifier (pointer_declarator "*puStack_188" * identifier) ;) (declaration "code *pcStack_184;" type_identifier (pointer_declarator "*pcStack_184" * identifier) ;) (declaration "undefined4 uStack_170;" type_identifier identifier ;) (declaration "undefined4 uStack_16c;" type_identifier identifier ;) (declaration "undefined4 uStack_168;" type_identifier identifier ;) (declaration "undefined4 uStack_164;" type_identifier identifier ;) (declaration "code *pcStack_160;" type_identifier (pointer_declarator "*pcStack_160" * identifier) ;) (declaration "undefined4 uStack_15c;" type_identifier identifier ;) (declaration "undefined4 uStack_158;" type_identifier identifier ;) (declaration "int iStack_154;" primitive_type identifier ;) (declaration "int iStack_144;" primitive_type identifier ;) (declaration "int iStack_140;" primitive_type identifier ;) (declaration "undefined4 uStack_138;" type_identifier identifier ;) (declaration "undefined4 uStack_134;" type_identifier identifier ;) (declaration "undefined **ppuStack_130;" type_identifier (pointer_declarator "**ppuStack_130" * (pointer_declarator "*ppuStack_130" * identifier)) ;) (declaration "int iStack_12c;" primitive_type identifier ;) (declaration "int iStack_128;" primitive_type identifier ;) (declaration "code *pcStack_124;" type_identifier (pointer_declarator "*pcStack_124" * identifier) ;) (declaration "undefined4 uStack_110;" type_identifier identifier ;) (declaration "undefined4 uStack_10c;" type_identifier identifier ;) (declaration "undefined4 uStack_108;" type_identifier identifier ;) (declaration "undefined4 uStack_104;" type_identifier identifier ;) (declaration "code *pcStack_100;" type_identifier (pointer_declarator "*pcStack_100" * identifier) ;) (declaration "undefined *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int iStack_e0;" primitive_type identifier ;) (declaration "undefined *puStack_d8;" type_identifier (pointer_declarator "*puStack_d8" * identifier) ;) (declaration "undefined *puStack_d4;" type_identifier (pointer_declarator "*puStack_d4" * identifier) ;) (declaration "undefined4 *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "undefined *puStack_cc;" type_identifier (pointer_declarator "*puStack_cc" * identifier) ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "code *pcStack_c4;" type_identifier (pointer_declarator "*pcStack_c4" * identifier) ;) (declaration "undefined4 uStack_b0;" type_identifier identifier ;) (declaration "undefined4 uStack_ac;" type_identifier identifier ;) (declaration "undefined4 uStack_a8;" type_identifier identifier ;) (declaration "undefined4 uStack_a4;" type_identifier identifier ;) (declaration "undefined *puStack_a0;" type_identifier (pointer_declarator "*puStack_a0" * identifier) ;) (declaration "undefined *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "undefined4 uStack_98;" type_identifier identifier ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "int iStack_80;" primitive_type identifier ;) (declaration "undefined4 uStack_78;" type_identifier identifier ;) (declaration "int iStack_74;" primitive_type identifier ;) (declaration "undefined4 *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "int iStack_6c;" primitive_type identifier ;) (declaration "int iStack_68;" primitive_type identifier ;) (declaration "code *pcStack_64;" type_identifier (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int iStack_44;" primitive_type identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 local_18;" type_identifier identifier ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "local_4c = param_8;" (assignment_expression "local_4c = param_8" identifier = identifier) ;) (expression_statement "local_50 = param_7;" (assignment_expression "local_50 = param_7" identifier = identifier) ;) (expression_statement "(*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5);" (call_expression "(*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5)" (parenthesized_expression "(*(code *)PTR_Output_reloc_004c417c)" ( (pointer_expression "*(code *)PTR_Output_reloc_004c417c" * (cast_expression "(code *)PTR_Output_reloc_004c417c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_38,param_2,param_4,param_5)" ( (pointer_expression "&local_38" & identifier) , identifier , identifier , identifier ))) ;) (expression_statement "puVar11 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(param_1 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "local_14 = param_10;" (assignment_expression "local_14 = param_10" identifier = identifier) ;) (expression_statement "local_18 = param_9;" (assignment_expression "local_18 = param_9" identifier = identifier) ;) (if_statement "if (puVar11 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }" if (parenthesized_expression "(puVar11 == *(undefined4 **)(param_1 + 0x40))" ( (binary_expression "puVar11 == *(undefined4 **)(param_1 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(param_1 + 0x40)" * (cast_expression "(undefined4 **)(param_1 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }" { (expression_statement "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);" (call_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38)" (parenthesized_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)" ( (comma_expression "*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590" (binary_expression "*(code *)PTR__M_realloc_insert<gold_Output_reloc<4" (binary_expression "*(code *)PTR__M_realloc_insert<gold_Output_reloc" (pointer_expression "*(code *)PTR__M_realloc_insert" * (cast_expression "(code *)PTR__M_realloc_insert" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) < number_literal) , (comma_expression "true,64,true>const&>_004c3590" true , (comma_expression "64,true>const&>_004c3590" number_literal , (binary_expression "true>const&>_004c3590" (binary_expression "true>const" true > identifier) (ERROR "&" &) > identifier)))) )) (argument_list "(param_1 + 0x38,puVar11,&local_38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(param_1 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }" else (compound_statement "{\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }" { (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" identifier = identifier) ;) (expression_statement "puVar4 = &local_38;" (assignment_expression "puVar4 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (do_statement "do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);" do (compound_statement "{\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar4 = puVar8 + 4;" (assignment_expression "puVar4 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) (expression_statement "param_10 = puVar8[1];" (assignment_expression "param_10 = puVar8[1]" identifier = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar8[2];" (assignment_expression "uVar15 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar8[3];" (assignment_expression "uVar3 = puVar8[3]" identifier = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar2[1] = param_10;" (assignment_expression "puVar2[1] = param_10" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar15;" (assignment_expression "puVar2[2] = uVar15" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[3] = uVar3;" (assignment_expression "puVar2[3] = uVar3" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar2 + 4;" (assignment_expression "puVar1 = puVar2 + 4" identifier = (binary_expression "puVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar4 != &local_18)" ( (binary_expression "puVar4 != &local_18" identifier != (pointer_expression "&local_18" & identifier)) )) ;) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" identifier = (binary_expression "puVar11 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar8[5];" (assignment_expression "uVar3 = puVar8[5]" identifier = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = *puVar4;" (assignment_expression "puVar2[4] = *puVar4" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar2[5] = uVar3;" (assignment_expression "puVar2[5] = uVar3" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(param_1 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3;" (assignment_expression "iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3" identifier = (binary_expression "(int)puVar11 - *(int *)(param_1 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(param_1 + 0x38)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(param_1 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(param_1 + 0x20) << 1" number_literal < (binary_expression "*(int *)(param_1 + 0x20) << 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(param_1 + 0x14) = iVar12 * 0x33333338;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar12 * 0x33333338" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar12 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(param_3 + 0x20)" * (cast_expression "(byte *)(param_3 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_3 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(param_3 + 0x20) & 0xf7" (pointer_expression "*(byte *)(param_3 + 0x20)" * (cast_expression "(byte *)(param_3 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }" if (parenthesized_expression "(local_24 << 0x1c < 0)" ( (binary_expression "local_24 << 0x1c < 0" (binary_expression "local_24 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;" (assignment_expression "*(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x30) + 1" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }" if (parenthesized_expression "((local_20 != -4) && (local_34 != 0))" ( (binary_expression "(local_20 != -4) && (local_34 != 0)" (parenthesized_expression "(local_20 != -4)" ( (binary_expression "local_20 != -4" identifier != number_literal) )) && (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }" { (if_statement "if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(local_34 + 100) == 0)" ( (binary_expression "*(int *)(local_34 + 100) == 0" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1" (pointer_expression "*(int *)(local_34 + 0x60)" * (cast_expression "(int *)(local_34 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x60)" ( (binary_expression "local_34 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar12 * -0x33333333 + -1" (binary_expression "iVar12 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;" (assignment_expression "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar21 = FUN_0025542c;" (assignment_expression "pcVar21 = FUN_0025542c" identifier = identifier) ;) (expression_statement "puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;" (assignment_expression "puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier = (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal)) ;) (expression_statement "puVar18 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar18 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c)" (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 "(puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2b1c" identifier + number_literal) ))) ;) (expression_statement "puStack_a0 = puVar18 + 0x273e14;" (assignment_expression "puStack_a0 = puVar18 + 0x273e14" identifier = (binary_expression "puVar18 + 0x273e14" identifier + number_literal)) ;) (expression_statement "uStack_b0 = local_50;" (assignment_expression "uStack_b0 = local_50" identifier = identifier) ;) (expression_statement "uStack_a8 = 0;" (assignment_expression "uStack_a8 = 0" identifier = number_literal) ;) (expression_statement "uStack_ac = local_4c;" (assignment_expression "uStack_ac = local_4c" identifier = identifier) ;) (expression_statement "puStack_70 = &local_38;" (assignment_expression "puStack_70 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "iStack_6c = param_1;" (assignment_expression "iStack_6c = param_1" identifier = identifier) ;) (expression_statement "iStack_68 = param_3;" (assignment_expression "iStack_68 = param_3" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar21;" (assignment_expression "pcStack_64 = pcVar21" identifier = identifier) ;) (expression_statement "(**(code **)(puVar18 + 0x26cb6c))(&uStack_98);" (call_expression "(**(code **)(puVar18 + 0x26cb6c))(&uStack_98)" (parenthesized_expression "(**(code **)(puVar18 + 0x26cb6c))" ( (pointer_expression "**(code **)(puVar18 + 0x26cb6c)" * (pointer_expression "*(code **)(puVar18 + 0x26cb6c)" * (cast_expression "(code **)(puVar18 + 0x26cb6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x26cb6c)" ( (binary_expression "puVar18 + 0x26cb6c" identifier + number_literal) ))))) )) (argument_list "(&uStack_98)" ( (pointer_expression "&uStack_98" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(puVar5 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(puVar5 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(puVar5 + 0x3c)" * (cast_expression "(undefined4 **)(puVar5 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x3c)" ( (binary_expression "puVar5 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iStack_74 = iStack_44;" (assignment_expression "iStack_74 = iStack_44" identifier = identifier) ;) (expression_statement "uStack_78 = local_48;" (assignment_expression "uStack_78 = local_48" identifier = identifier) ;) (if_statement "if (puVar11 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }" if (parenthesized_expression "(puVar11 == *(undefined4 **)(puVar5 + 0x40))" ( (binary_expression "puVar11 == *(undefined4 **)(puVar5 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(puVar5 + 0x40)" * (cast_expression "(undefined4 **)(puVar5 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x40)" ( (binary_expression "puVar5 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }" { (expression_statement "(**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);" (call_expression "(**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98)" (parenthesized_expression "(**(code **)(puStack_a0 + -0x5cb0))" ( (pointer_expression "**(code **)(puStack_a0 + -0x5cb0)" * (pointer_expression "*(code **)(puStack_a0 + -0x5cb0)" * (cast_expression "(code **)(puStack_a0 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a0 + -0x5cb0)" ( (binary_expression "puStack_a0 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(puVar5 + 0x38,puVar11,&uStack_98)" ( (binary_expression "puVar5 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_98" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(puVar5 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(puVar5 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(puVar5 + 0x3c)" * (cast_expression "(undefined4 **)(puVar5 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x3c)" ( (binary_expression "puVar5 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iStack_44;" (assignment_expression "iVar12 = iStack_44" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }" else (compound_statement "{\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }" { (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" identifier = identifier) ;) (expression_statement "puVar4 = &uStack_98;" (assignment_expression "puVar4 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (do_statement "do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);" do (compound_statement "{\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar4 = puVar8 + 4;" (assignment_expression "puVar4 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) (expression_statement "iVar12 = puVar8[1];" (assignment_expression "iVar12 = puVar8[1]" identifier = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar8[2];" (assignment_expression "uVar15 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar8[3];" (assignment_expression "uVar3 = puVar8[3]" identifier = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar2[1] = iVar12;" (assignment_expression "puVar2[1] = iVar12" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar15;" (assignment_expression "puVar2[2] = uVar15" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[3] = uVar3;" (assignment_expression "puVar2[3] = uVar3" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar2 + 4;" (assignment_expression "puVar1 = puVar2 + 4" identifier = (binary_expression "puVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar4 != &uStack_78)" ( (binary_expression "puVar4 != &uStack_78" identifier != (pointer_expression "&uStack_78" & identifier)) )) ;) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" identifier = (binary_expression "puVar11 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar8[5];" (assignment_expression "uVar3 = puVar8[5]" identifier = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = *puVar4;" (assignment_expression "puVar2[4] = *puVar4" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar2[5] = uVar3;" (assignment_expression "puVar2[5] = uVar3" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(puVar5 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(puVar5 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(puVar5 + 0x3c)" * (cast_expression "(undefined4 **)(puVar5 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x3c)" ( (binary_expression "puVar5 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3;" (assignment_expression "iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3" identifier = (binary_expression "(int)puVar11 - *(int *)(puVar5 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(puVar5 + 0x38)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(puVar5 + 0x38)" * (cast_expression "(int *)(puVar5 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x38)" ( (binary_expression "puVar5 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(puVar5 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(puVar5 + 0x20) << 1" number_literal < (binary_expression "*(int *)(puVar5 + 0x20) << 1" (pointer_expression "*(int *)(puVar5 + 0x20)" * (cast_expression "(int *)(puVar5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x20)" ( (binary_expression "puVar5 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;" (assignment_expression "*(int *)(puVar5 + 0x14) = iVar13 * 0x33333338" (pointer_expression "*(int *)(puVar5 + 0x14)" * (cast_expression "(int *)(puVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x14)" ( (binary_expression "puVar5 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar13 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" * (cast_expression "(undefined4 *)(puVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x10)" ( (binary_expression "puVar5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(param_10 + 0x20)" * (cast_expression "(byte *)(param_10 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x20)" ( (binary_expression "param_10 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_10 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(param_10 + 0x20) & 0xf7" (pointer_expression "*(byte *)(param_10 + 0x20)" * (cast_expression "(byte *)(param_10 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_10 + 0x20)" ( (binary_expression "param_10 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_84 << 0x1c < 0)" ( (binary_expression "iStack_84 << 0x1c < 0" (binary_expression "iStack_84 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;" (assignment_expression "*(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1" (pointer_expression "*(int *)(puVar5 + 0x30)" * (cast_expression "(int *)(puVar5 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x30)" ( (binary_expression "puVar5 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar5 + 0x30) + 1" (pointer_expression "*(int *)(puVar5 + 0x30)" * (cast_expression "(int *)(puVar5 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x30)" ( (binary_expression "puVar5 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_80 != -4) && (iStack_94 != 0))" ( (binary_expression "(iStack_80 != -4) && (iStack_94 != 0)" (parenthesized_expression "(iStack_80 != -4)" ( (binary_expression "iStack_80 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_94 != 0)" ( (binary_expression "iStack_94 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_94 + 100) == 0)" ( (binary_expression "*(int *)(iStack_94 + 100) == 0" (pointer_expression "*(int *)(iStack_94 + 100)" * (cast_expression "(int *)(iStack_94 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_94 + 100)" ( (binary_expression "iStack_94 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_94 + 0x60)" * (cast_expression "(int *)(iStack_94 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_94 + 0x60)" ( (binary_expression "iStack_94 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar13 * -0x33333333 + -1" (binary_expression "iVar13 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;" (assignment_expression "*(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1" (pointer_expression "*(int *)(iStack_94 + 100)" * (cast_expression "(int *)(iStack_94 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_94 + 100)" ( (binary_expression "iStack_94 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_94 + 100) + 1" (pointer_expression "*(int *)(iStack_94 + 100)" * (cast_expression "(int *)(iStack_94 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_94 + 100)" ( (binary_expression "iStack_94 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar21 = *(code **)(puStack_a0 + -0x7810);" (assignment_expression "pcVar21 = *(code **)(puStack_a0 + -0x7810)" identifier = (pointer_expression "*(code **)(puStack_a0 + -0x7810)" * (cast_expression "(code **)(puStack_a0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a0 + -0x7810)" ( (binary_expression "puStack_a0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = FUN_002555d8;" (assignment_expression "pcVar22 = FUN_002555d8" identifier = identifier) ;) (expression_statement "iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(puStack_a0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(puStack_a0 + -0x7fc4)" * (cast_expression "(int *)(puStack_a0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_a0 + -0x7fc4)" ( (binary_expression "puStack_a0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(puStack_a0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(puStack_a0 + -0x7924)" * (cast_expression "(int *)(puStack_a0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_a0 + -0x7924)" ( (binary_expression "puStack_a0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_100 = pcVar21 + 0x273c68;" (assignment_expression "pcStack_100 = pcVar21 + 0x273c68" identifier = (binary_expression "pcVar21 + 0x273c68" identifier + number_literal)) ;) (expression_statement "uStack_108 = uStack_a8;" (assignment_expression "uStack_108 = uStack_a8" identifier = identifier) ;) (expression_statement "uStack_104 = uStack_a4;" (assignment_expression "uStack_104 = uStack_a4" identifier = identifier) ;) (expression_statement "uStack_110 = uStack_ac;" (assignment_expression "uStack_110 = uStack_ac" identifier = identifier) ;) (expression_statement "puStack_d0 = &uStack_98;" (assignment_expression "puStack_d0 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (expression_statement "puStack_cc = puVar5;" (assignment_expression "puStack_cc = puVar5" identifier = identifier) ;) (expression_statement "iStack_c8 = param_10;" (assignment_expression "iStack_c8 = param_10" identifier = identifier) ;) (expression_statement "pcStack_c4 = pcVar22;" (assignment_expression "pcStack_c4 = pcVar22" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar21 + 0x26ebac))(&puStack_f8);" (call_expression "(**(code **)(pcVar21 + 0x26ebac))(&puStack_f8)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26ebac))" ( (pointer_expression "**(code **)(pcVar21 + 0x26ebac)" * (pointer_expression "*(code **)(pcVar21 + 0x26ebac)" * (cast_expression "(code **)(pcVar21 + 0x26ebac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x26ebac)" ( (binary_expression "pcVar21 + 0x26ebac" identifier + number_literal) ))))) )) (argument_list "(&puStack_f8)" ( (pointer_expression "&puStack_f8" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(iVar13 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar13 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar13 + 0x3c)" * (cast_expression "(undefined4 **)(iVar13 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x3c)" ( (binary_expression "iVar13 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "puStack_d4 = puStack_9c;" (assignment_expression "puStack_d4 = puStack_9c" identifier = identifier) ;) (expression_statement "puStack_d8 = puStack_a0;" (assignment_expression "puStack_d8 = puStack_a0" identifier = identifier) ;) (if_statement "if (puVar11 == *(undefined4 **)(iVar13 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }\n  else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }" if (parenthesized_expression "(puVar11 == *(undefined4 **)(iVar13 + 0x40))" ( (binary_expression "puVar11 == *(undefined4 **)(iVar13 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar13 + 0x40)" * (cast_expression "(undefined4 **)(iVar13 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x40)" ( (binary_expression "iVar13 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }" { (expression_statement "(**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);" (call_expression "(**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8)" (parenthesized_expression "(**(code **)(pcStack_100 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_100 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_100 + -0x5cb0)" * (cast_expression "(code **)(pcStack_100 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_100 + -0x5cb0)" ( (binary_expression "pcStack_100 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar13 + 0x38,puVar11,&puStack_f8)" ( (binary_expression "iVar13 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&puStack_f8" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(iVar13 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar13 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar13 + 0x3c)" * (cast_expression "(undefined4 **)(iVar13 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x3c)" ( (binary_expression "iVar13 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "puVar18 = puStack_9c;" (assignment_expression "puVar18 = puStack_9c" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }" else (compound_statement "{\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }" { (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" identifier = identifier) ;) (expression_statement "ppuVar7 = &puStack_f8;" (assignment_expression "ppuVar7 = &puStack_f8" identifier = (pointer_expression "&puStack_f8" & identifier)) ;) (do_statement "do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);" do (compound_statement "{\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "ppuVar6 = ppuVar7;" (assignment_expression "ppuVar6 = ppuVar7" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "ppuVar7 = ppuVar6 + 4;" (assignment_expression "ppuVar7 = ppuVar6 + 4" identifier = (binary_expression "ppuVar6 + 4" identifier + number_literal)) ;) (expression_statement "puVar18 = ppuVar6[1];" (assignment_expression "puVar18 = ppuVar6[1]" identifier = (subscript_expression "ppuVar6[1]" identifier [ number_literal ])) ;) (expression_statement "puVar16 = ppuVar6[2];" (assignment_expression "puVar16 = ppuVar6[2]" identifier = (subscript_expression "ppuVar6[2]" identifier [ number_literal ])) ;) (expression_statement "puVar5 = ppuVar6[3];" (assignment_expression "puVar5 = ppuVar6[3]" identifier = (subscript_expression "ppuVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *ppuVar6;" (assignment_expression "*puVar4 = *ppuVar6" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*ppuVar6" * identifier)) ;) (expression_statement "puVar4[1] = puVar18;" (assignment_expression "puVar4[1] = puVar18" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = puVar16;" (assignment_expression "puVar4[2] = puVar16" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = puVar5;" (assignment_expression "puVar4[3] = puVar5" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppuVar7 != &puStack_d8)" ( (binary_expression "ppuVar7 != &puStack_d8" identifier != (pointer_expression "&puStack_d8" & identifier)) )) ;) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" identifier = (binary_expression "puVar11 + 10" identifier + number_literal)) ;) (expression_statement "puVar5 = ppuVar6[5];" (assignment_expression "puVar5 = ppuVar6[5]" identifier = (subscript_expression "ppuVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *ppuVar7;" (assignment_expression "puVar4[4] = *ppuVar7" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*ppuVar7" * identifier)) ;) (expression_statement "puVar4[5] = puVar5;" (assignment_expression "puVar4[5] = puVar5" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar13 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(iVar13 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(iVar13 + 0x3c)" * (cast_expression "(undefined4 **)(iVar13 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x3c)" ( (binary_expression "iVar13 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3;" (assignment_expression "iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3" identifier = (binary_expression "(int)puVar11 - *(int *)(iVar13 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(iVar13 + 0x38)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar13 + 0x38)" * (cast_expression "(int *)(iVar13 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x38)" ( (binary_expression "iVar13 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar13 + 0x20) << 1) {\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar13 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar13 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar13 + 0x20) << 1" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;" (assignment_expression "*(int *)(iVar13 + 0x14) = iVar14 * 0x33333338" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar14 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar13 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar13 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar13 + 0x10)" * (cast_expression "(undefined4 *)(iVar13 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar12 + 0x20)" * (cast_expression "(byte *)(iVar12 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar12 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar12 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar12 + 0x20)" * (cast_expression "(byte *)(iVar12 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_e4 << 0x1c < 0)" ( (binary_expression "iStack_e4 << 0x1c < 0" (binary_expression "iStack_e4 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;" (assignment_expression "*(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1" (pointer_expression "*(int *)(iVar13 + 0x30)" * (cast_expression "(int *)(iVar13 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x30)" ( (binary_expression "iVar13 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar13 + 0x30) + 1" (pointer_expression "*(int *)(iVar13 + 0x30)" * (cast_expression "(int *)(iVar13 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x30)" ( (binary_expression "iVar13 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_e0 != -4) && (iStack_f4 != 0))" ( (binary_expression "(iStack_e0 != -4) && (iStack_f4 != 0)" (parenthesized_expression "(iStack_e0 != -4)" ( (binary_expression "iStack_e0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_f4 != 0)" ( (binary_expression "iStack_f4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_f4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_f4 + 100) == 0" (pointer_expression "*(int *)(iStack_f4 + 100)" * (cast_expression "(int *)(iStack_f4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_f4 + 100)" ( (binary_expression "iStack_f4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_f4 + 0x60)" * (cast_expression "(int *)(iStack_f4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_f4 + 0x60)" ( (binary_expression "iStack_f4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar14 * -0x33333333 + -1" (binary_expression "iVar14 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;" (assignment_expression "*(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1" (pointer_expression "*(int *)(iStack_f4 + 100)" * (cast_expression "(int *)(iStack_f4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_f4 + 100)" ( (binary_expression "iStack_f4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_f4 + 100) + 1" (pointer_expression "*(int *)(iStack_f4 + 100)" * (cast_expression "(int *)(iStack_f4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_f4 + 100)" ( (binary_expression "iStack_f4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar21 = *(code **)(pcStack_100 + -0x7810);" (assignment_expression "pcVar21 = *(code **)(pcStack_100 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_100 + -0x7810)" * (cast_expression "(code **)(pcStack_100 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_100 + -0x7810)" ( (binary_expression "pcStack_100 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = FUN_0025578c;" (assignment_expression "pcVar22 = FUN_0025578c" identifier = identifier) ;) (expression_statement "iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;" (assignment_expression "iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_100 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_100 + -0x7fc4)" * (cast_expression "(int *)(pcStack_100 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_100 + -0x7fc4)" ( (binary_expression "pcStack_100 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_100 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_100 + -0x7924)" * (cast_expression "(int *)(pcStack_100 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_100 + -0x7924)" ( (binary_expression "pcStack_100 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_160 = pcVar21 + 0x273ab4;" (assignment_expression "pcStack_160 = pcVar21 + 0x273ab4" identifier = (binary_expression "pcVar21 + 0x273ab4" identifier + number_literal)) ;) (expression_statement "uStack_170 = uStack_110;" (assignment_expression "uStack_170 = uStack_110" identifier = identifier) ;) (expression_statement "uStack_168 = 0;" (assignment_expression "uStack_168 = 0" identifier = number_literal) ;) (expression_statement "uStack_16c = uStack_10c;" (assignment_expression "uStack_16c = uStack_10c" identifier = identifier) ;) (expression_statement "ppuStack_130 = &puStack_f8;" (assignment_expression "ppuStack_130 = &puStack_f8" identifier = (pointer_expression "&puStack_f8" & identifier)) ;) (expression_statement "iStack_12c = iVar13;" (assignment_expression "iStack_12c = iVar13" identifier = identifier) ;) (expression_statement "iStack_128 = iVar12;" (assignment_expression "iStack_128 = iVar12" identifier = identifier) ;) (expression_statement "pcStack_124 = pcVar22;" (assignment_expression "pcStack_124 = pcVar22" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar21 + 0x26c80c))(&uStack_158);" (call_expression "(**(code **)(pcVar21 + 0x26c80c))(&uStack_158)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26c80c))" ( (pointer_expression "**(code **)(pcVar21 + 0x26c80c)" * (pointer_expression "*(code **)(pcVar21 + 0x26c80c)" * (cast_expression "(code **)(pcVar21 + 0x26c80c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x26c80c)" ( (binary_expression "pcVar21 + 0x26c80c" identifier + number_literal) ))))) )) (argument_list "(&uStack_158)" ( (pointer_expression "&uStack_158" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(iVar14 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar14 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar14 + 0x3c)" * (cast_expression "(undefined4 **)(iVar14 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x3c)" ( (binary_expression "iVar14 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_134 = uStack_104;" (assignment_expression "uStack_134 = uStack_104" identifier = identifier) ;) (expression_statement "uStack_138 = uStack_108;" (assignment_expression "uStack_138 = uStack_108" identifier = identifier) ;) (if_statement "if (puVar11 == *(undefined4 **)(iVar14 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }" if (parenthesized_expression "(puVar11 == *(undefined4 **)(iVar14 + 0x40))" ( (binary_expression "puVar11 == *(undefined4 **)(iVar14 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar14 + 0x40)" * (cast_expression "(undefined4 **)(iVar14 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);" (call_expression "(**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158)" (parenthesized_expression "(**(code **)(pcStack_160 + -0x5cb0))" ( (pointer_expression "**(code **)(pcStack_160 + -0x5cb0)" * (pointer_expression "*(code **)(pcStack_160 + -0x5cb0)" * (cast_expression "(code **)(pcStack_160 + -0x5cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_160 + -0x5cb0)" ( (binary_expression "pcStack_160 + -0x5cb0" identifier + number_literal) ))))) )) (argument_list "(iVar14 + 0x38,puVar11,&uStack_158)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_158" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(iVar14 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar14 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar14 + 0x3c)" * (cast_expression "(undefined4 **)(iVar14 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x3c)" ( (binary_expression "iVar14 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }" else (compound_statement "{\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }" { (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" identifier = identifier) ;) (expression_statement "puVar4 = &uStack_158;" (assignment_expression "puVar4 = &uStack_158" identifier = (pointer_expression "&uStack_158" & identifier)) ;) (do_statement "do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);" do (compound_statement "{\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar4 = puVar8 + 4;" (assignment_expression "puVar4 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) (expression_statement "uVar19 = puVar8[1];" (assignment_expression "uVar19 = puVar8[1]" identifier = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar8[2];" (assignment_expression "uVar15 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar8[3];" (assignment_expression "uVar3 = puVar8[3]" identifier = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar2[1] = uVar19;" (assignment_expression "puVar2[1] = uVar19" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar15;" (assignment_expression "puVar2[2] = uVar15" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[3] = uVar3;" (assignment_expression "puVar2[3] = uVar3" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar2 + 4;" (assignment_expression "puVar1 = puVar2 + 4" identifier = (binary_expression "puVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar4 != &uStack_138)" ( (binary_expression "puVar4 != &uStack_138" identifier != (pointer_expression "&uStack_138" & identifier)) )) ;) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" identifier = (binary_expression "puVar11 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar8[5];" (assignment_expression "uVar3 = puVar8[5]" identifier = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = *puVar4;" (assignment_expression "puVar2[4] = *puVar4" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar2[5] = uVar3;" (assignment_expression "puVar2[5] = uVar3" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar14 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(iVar14 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(iVar14 + 0x3c)" * (cast_expression "(undefined4 **)(iVar14 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x3c)" ( (binary_expression "iVar14 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3;" (assignment_expression "iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3" identifier = (binary_expression "(int)puVar11 - *(int *)(iVar14 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(iVar14 + 0x38)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar14 + 0x38)" * (cast_expression "(int *)(iVar14 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar14 + 0x20) << 1) {\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar14 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar14 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar14 + 0x20) << 1" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;" (assignment_expression "*(int *)(iVar14 + 0x14) = iVar12 * 0x33333338" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar12 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar14 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar14 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar14 + 0x10)" * (cast_expression "(undefined4 *)(iVar14 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;" (assignment_expression "puVar18[0x20] = puVar18[0x20] & 0xf7 | 8" (subscript_expression "puVar18[0x20]" identifier [ number_literal ]) = (binary_expression "puVar18[0x20] & 0xf7 | 8" (binary_expression "puVar18[0x20] & 0xf7" (subscript_expression "puVar18[0x20]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) (if_statement "if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_144 << 0x1c < 0)" ( (binary_expression "iStack_144 << 0x1c < 0" (binary_expression "iStack_144 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;" (assignment_expression "*(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1" (pointer_expression "*(int *)(iVar14 + 0x30)" * (cast_expression "(int *)(iVar14 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x30)" ( (binary_expression "iVar14 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar14 + 0x30) + 1" (pointer_expression "*(int *)(iVar14 + 0x30)" * (cast_expression "(int *)(iVar14 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x30)" ( (binary_expression "iVar14 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_140 != -4) && (iStack_154 != 0))" ( (binary_expression "(iStack_140 != -4) && (iStack_154 != 0)" (parenthesized_expression "(iStack_140 != -4)" ( (binary_expression "iStack_140 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_154 != 0)" ( (binary_expression "iStack_154 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_154 + 100) == 0)" ( (binary_expression "*(int *)(iStack_154 + 100) == 0" (pointer_expression "*(int *)(iStack_154 + 100)" * (cast_expression "(int *)(iStack_154 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_154 + 100)" ( (binary_expression "iStack_154 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_154 + 0x60)" * (cast_expression "(int *)(iStack_154 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_154 + 0x60)" ( (binary_expression "iStack_154 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar12 * -0x33333333 + -1" (binary_expression "iVar12 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;" (assignment_expression "*(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1" (pointer_expression "*(int *)(iStack_154 + 100)" * (cast_expression "(int *)(iStack_154 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_154 + 100)" ( (binary_expression "iStack_154 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_154 + 100) + 1" (pointer_expression "*(int *)(iStack_154 + 100)" * (cast_expression "(int *)(iStack_154 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_154 + 100)" ( (binary_expression "iStack_154 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar21 = *(code **)(pcStack_160 + -0x7810);" (assignment_expression "pcVar21 = *(code **)(pcStack_160 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_160 + -0x7810)" * (cast_expression "(code **)(pcStack_160 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_160 + -0x7810)" ( (binary_expression "pcStack_160 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;" (assignment_expression "iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c" identifier = (binary_expression "*(int *)(pcStack_160 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_160 + -0x7924)" * (cast_expression "(int *)(pcStack_160 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_160 + -0x7924)" ( (binary_expression "pcStack_160 + -0x7924" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar22 = FUN_00255938;" (assignment_expression "pcVar22 = FUN_00255938" identifier = identifier) ;) (expression_statement "iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;" (assignment_expression "iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_160 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_160 + -0x7fc4)" * (cast_expression "(int *)(pcStack_160 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_160 + -0x7fc4)" ( (binary_expression "pcStack_160 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar21)(iVar12,0x231);" (call_expression "(*pcVar21)(iVar12,0x231)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(iVar12,0x231)" ( identifier , number_literal ))) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = uStack_168;" (assignment_expression "uVar3 = uStack_168" identifier = identifier) ;) (expression_statement "puStack_190 = &uStack_158;" (assignment_expression "puStack_190 = &uStack_158" identifier = (pointer_expression "&uStack_158" & identifier)) ;) (expression_statement "iStack_18c = iVar14;" (assignment_expression "iStack_18c = iVar14" identifier = identifier) ;) (expression_statement "puStack_188 = puVar18;" (assignment_expression "puStack_188 = puVar18" identifier = identifier) ;) (expression_statement "pcStack_184 = pcVar22;" (assignment_expression "pcStack_184 = pcVar22" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8);" (call_expression "(**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26e844))" ( (pointer_expression "**(code **)(pcVar21 + 0x26e844)" * (pointer_expression "*(code **)(pcVar21 + 0x26e844)" * (cast_expression "(code **)(pcVar21 + 0x26e844)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x26e844)" ( (binary_expression "pcVar21 + 0x26e844" identifier + number_literal) ))))) )) (argument_list "(&pcStack_1b8)" ( (pointer_expression "&pcStack_1b8" & identifier) ))) ;) (expression_statement "puVar11 = *(undefined4 **)(iVar12 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar12 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar12 + 0x3c)" * (cast_expression "(undefined4 **)(iVar12 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_194 = uStack_15c;" (assignment_expression "uStack_194 = uStack_15c" identifier = identifier) ;) (expression_statement "pcStack_198 = pcStack_160;" (assignment_expression "pcStack_198 = pcStack_160" identifier = identifier) ;) (if_statement "if (puVar11 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }" if (parenthesized_expression "(puVar11 == *(undefined4 **)(iVar12 + 0x40))" ( (binary_expression "puVar11 == *(undefined4 **)(iVar12 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar12 + 0x40)" * (cast_expression "(undefined4 **)(iVar12 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);" (call_expression "(**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26dc58))" ( (pointer_expression "**(code **)(pcVar21 + 0x26dc58)" * (pointer_expression "*(code **)(pcVar21 + 0x26dc58)" * (cast_expression "(code **)(pcVar21 + 0x26dc58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x26dc58)" ( (binary_expression "pcVar21 + 0x26dc58" identifier + number_literal) ))))) )) (argument_list "(iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15)" ( (binary_expression "iVar12 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&pcStack_1b8" & identifier) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar11 = *(undefined4 **)(iVar12 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar12 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar12 + 0x3c)" * (cast_expression "(undefined4 **)(iVar12 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }" else (compound_statement "{\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }" { (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" identifier = identifier) ;) (expression_statement "ppcVar10 = &pcStack_1b8;" (assignment_expression "ppcVar10 = &pcStack_1b8" identifier = (pointer_expression "&pcStack_1b8" & identifier)) ;) (do_statement "do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);" do (compound_statement "{\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "ppcVar9 = ppcVar10;" (assignment_expression "ppcVar9 = ppcVar10" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "ppcVar10 = ppcVar9 + 4;" (assignment_expression "ppcVar10 = ppcVar9 + 4" identifier = (binary_expression "ppcVar9 + 4" identifier + number_literal)) ;) (expression_statement "pcVar20 = ppcVar9[1];" (assignment_expression "pcVar20 = ppcVar9[1]" identifier = (subscript_expression "ppcVar9[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar17 = ppcVar9[2];" (assignment_expression "pcVar17 = ppcVar9[2]" identifier = (subscript_expression "ppcVar9[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar22 = ppcVar9[3];" (assignment_expression "pcVar22 = ppcVar9[3]" identifier = (subscript_expression "ppcVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *ppcVar9;" (assignment_expression "*puVar4 = *ppcVar9" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*ppcVar9" * identifier)) ;) (expression_statement "puVar4[1] = pcVar20;" (assignment_expression "puVar4[1] = pcVar20" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = pcVar17;" (assignment_expression "puVar4[2] = pcVar17" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = pcVar22;" (assignment_expression "puVar4[3] = pcVar22" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppcVar10 != &pcStack_198)" ( (binary_expression "ppcVar10 != &pcStack_198" identifier != (pointer_expression "&pcStack_198" & identifier)) )) ;) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" identifier = (binary_expression "puVar11 + 10" identifier + number_literal)) ;) (expression_statement "pcVar22 = ppcVar9[5];" (assignment_expression "pcVar22 = ppcVar9[5]" identifier = (subscript_expression "ppcVar9[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *ppcVar10;" (assignment_expression "puVar4[4] = *ppcVar10" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*ppcVar10" * identifier)) ;) (expression_statement "puVar4[5] = pcVar22;" (assignment_expression "puVar4[5] = pcVar22" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar12 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(iVar12 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(iVar12 + 0x3c)" * (cast_expression "(undefined4 **)(iVar12 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3;" (assignment_expression "iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3" identifier = (binary_expression "(int)puVar11 - *(int *)(iVar12 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(iVar12 + 0x38)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar12 + 0x38)" * (cast_expression "(int *)(iVar12 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x38)" ( (binary_expression "iVar12 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar12 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar12 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar12 + 0x20) << 1" (pointer_expression "*(int *)(iVar12 + 0x20)" * (cast_expression "(int *)(iVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;" (assignment_expression "*(int *)(iVar12 + 0x14) = iVar14 * 0x33333338" (pointer_expression "*(int *)(iVar12 + 0x14)" * (cast_expression "(int *)(iVar12 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar14 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0x10)" * (cast_expression "(undefined4 *)(iVar12 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar13 + 0x20)" * (cast_expression "(byte *)(iVar13 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar13 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar13 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar13 + 0x20)" * (cast_expression "(byte *)(iVar13 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_1a4 << 0x1c < 0)" ( (binary_expression "iStack_1a4 << 0x1c < 0" (binary_expression "iStack_1a4 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;" (assignment_expression "*(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar12 + 0x30) + 1" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_1a0 != -4) && (iStack_1b4 != 0))" ( (binary_expression "(iStack_1a0 != -4) && (iStack_1b4 != 0)" (parenthesized_expression "(iStack_1a0 != -4)" ( (binary_expression "iStack_1a0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_1b4 != 0)" ( (binary_expression "iStack_1b4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_1b4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_1b4 + 100) == 0" (pointer_expression "*(int *)(iStack_1b4 + 100)" * (cast_expression "(int *)(iStack_1b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b4 + 100)" ( (binary_expression "iStack_1b4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_1b4 + 0x60)" * (cast_expression "(int *)(iStack_1b4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b4 + 0x60)" ( (binary_expression "iStack_1b4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar14 * -0x33333333 + -1" (binary_expression "iVar14 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;" (assignment_expression "*(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1" (pointer_expression "*(int *)(iStack_1b4 + 100)" * (cast_expression "(int *)(iStack_1b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b4 + 100)" ( (binary_expression "iStack_1b4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_1b4 + 100) + 1" (pointer_expression "*(int *)(iStack_1b4 + 100)" * (cast_expression "(int *)(iStack_1b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1b4 + 100)" ( (binary_expression "iStack_1b4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c);" (call_expression "(**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26c0f8))" ( (pointer_expression "**(code **)(pcVar21 + 0x26c0f8)" * (pointer_expression "*(code **)(pcVar21 + 0x26c0f8)" * (cast_expression "(code **)(pcVar21 + 0x26c0f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x26c0f8)" ( (binary_expression "pcVar21 + 0x26c0f8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c)" ( (binary_expression "*(int *)(pcVar21 + 0x26b944) + 0x3574" (pointer_expression "*(int *)(pcVar21 + 0x26b944)" * (cast_expression "(int *)(pcVar21 + 0x26b944)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x26b944)" ( (binary_expression "pcVar21 + 0x26b944" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c" (pointer_expression "*(int *)(pcVar21 + 0x26bfe4)" * (cast_expression "(int *)(pcVar21 + 0x26bfe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x26bfe4)" ( (binary_expression "pcVar21 + 0x26bfe4" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (comma_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < IDENT) < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression (binary_expression BOOL > IDENT) (ERROR &) > IDENT)))) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (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 (binary_expression IDENT << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (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 (binary_expression IDENT << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (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 (binary_expression IDENT << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (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 (binary_expression IDENT << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00255270(int param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 int param_10)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined *puVar5;\n  undefined **ppuVar6;\n  undefined **ppuVar7;\n  undefined4 *puVar8;\n  code **ppcVar9;\n  code **ppcVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  undefined4 uVar19;\n  code *pcVar20;\n  code *pcVar21;\n  code *pcVar22;\n  code *pcStack_1b8;\n  int iStack_1b4;\n  int iStack_1a4;\n  int iStack_1a0;\n  code *pcStack_198;\n  undefined4 uStack_194;\n  undefined4 *puStack_190;\n  int iStack_18c;\n  undefined *puStack_188;\n  code *pcStack_184;\n  undefined4 uStack_170;\n  undefined4 uStack_16c;\n  undefined4 uStack_168;\n  undefined4 uStack_164;\n  code *pcStack_160;\n  undefined4 uStack_15c;\n  undefined4 uStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined **ppuStack_130;\n  int iStack_12c;\n  int iStack_128;\n  code *pcStack_124;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  code *pcStack_100;\n  undefined *puStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined *puStack_d8;\n  undefined *puStack_d4;\n  undefined4 *puStack_d0;\n  undefined *puStack_cc;\n  int iStack_c8;\n  code *pcStack_c4;\n  undefined4 uStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  undefined4 uStack_a4;\n  undefined *puStack_a0;\n  undefined *puStack_9c;\n  undefined4 uStack_98;\n  int iStack_94;\n  int iStack_84;\n  int iStack_80;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 *puStack_70;\n  int iStack_6c;\n  int iStack_68;\n  code *pcStack_64;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int iStack_44;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  int local_14;\n  \n  local_48 = 1;\n  local_4c = param_8;\n  local_50 = param_7;\n  (*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5);\n  puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar11 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = FUN_0025542c;\n  puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  puStack_a0 = puVar18 + 0x273e14;\n  uStack_b0 = local_50;\n  uStack_a8 = 0;\n  uStack_ac = local_4c;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar21;\n  (**(code **)(puVar18 + 0x26cb6c))(&uStack_98);\n  puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar11 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }\n  iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(puStack_a0 + -0x7810);\n  pcVar22 = FUN_002555d8;\n  iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar21 + 0x273c68;\n  uStack_108 = uStack_a8;\n  uStack_104 = uStack_a4;\n  uStack_110 = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar22;\n  (**(code **)(pcVar21 + 0x26ebac))(&puStack_f8);\n  puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n  puStack_d4 = puStack_9c;\n  puStack_d8 = puStack_a0;\n  if (puVar11 == *(undefined4 **)(iVar13 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }\n  else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar13 + 0x20) << 1) {\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_100 + -0x7810);\n  pcVar22 = FUN_0025578c;\n  iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);\n  pcStack_160 = pcVar21 + 0x273ab4;\n  uStack_170 = uStack_110;\n  uStack_168 = 0;\n  uStack_16c = uStack_10c;\n  ppuStack_130 = &puStack_f8;\n  iStack_12c = iVar13;\n  iStack_128 = iVar12;\n  pcStack_124 = pcVar22;\n  (**(code **)(pcVar21 + 0x26c80c))(&uStack_158);\n  puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  uStack_134 = uStack_104;\n  uStack_138 = uStack_108;\n  if (puVar11 == *(undefined4 **)(iVar14 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar14 + 0x20) << 1) {\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_160 + -0x7810);\n  iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;\n  pcVar22 = FUN_00255938;\n  iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar12,0x231);\n  uVar15 = 0;\n  uVar3 = uStack_168;\n  puStack_190 = &uStack_158;\n  iStack_18c = iVar14;\n  puStack_188 = puVar18;\n  pcStack_184 = pcVar22;\n  (**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8);\n  puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_194 = uStack_15c;\n  pcStack_198 = pcStack_160;\n  if (puVar11 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00255270(int param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 int param_10)" (identifier "FUN_00255270") (parameter_list "(int param_1,undefined4 param_2,int param_3,undefined4 param_4,undefined4 param_5,\n                 undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9,\n                 int param_10)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) (, ",") (parameter_declaration "undefined4 param_9" (type_identifier "undefined4") (identifier "param_9")) (, ",") (parameter_declaration "int param_10" (primitive_type "int") (identifier "param_10")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined *puVar5;\n  undefined **ppuVar6;\n  undefined **ppuVar7;\n  undefined4 *puVar8;\n  code **ppcVar9;\n  code **ppcVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  undefined4 uVar19;\n  code *pcVar20;\n  code *pcVar21;\n  code *pcVar22;\n  code *pcStack_1b8;\n  int iStack_1b4;\n  int iStack_1a4;\n  int iStack_1a0;\n  code *pcStack_198;\n  undefined4 uStack_194;\n  undefined4 *puStack_190;\n  int iStack_18c;\n  undefined *puStack_188;\n  code *pcStack_184;\n  undefined4 uStack_170;\n  undefined4 uStack_16c;\n  undefined4 uStack_168;\n  undefined4 uStack_164;\n  code *pcStack_160;\n  undefined4 uStack_15c;\n  undefined4 uStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  undefined4 uStack_138;\n  undefined4 uStack_134;\n  undefined **ppuStack_130;\n  int iStack_12c;\n  int iStack_128;\n  code *pcStack_124;\n  undefined4 uStack_110;\n  undefined4 uStack_10c;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  code *pcStack_100;\n  undefined *puStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined *puStack_d8;\n  undefined *puStack_d4;\n  undefined4 *puStack_d0;\n  undefined *puStack_cc;\n  int iStack_c8;\n  code *pcStack_c4;\n  undefined4 uStack_b0;\n  undefined4 uStack_ac;\n  undefined4 uStack_a8;\n  undefined4 uStack_a4;\n  undefined *puStack_a0;\n  undefined *puStack_9c;\n  undefined4 uStack_98;\n  int iStack_94;\n  int iStack_84;\n  int iStack_80;\n  undefined4 uStack_78;\n  int iStack_74;\n  undefined4 *puStack_70;\n  int iStack_6c;\n  int iStack_68;\n  code *pcStack_64;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int iStack_44;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  int local_14;\n  \n  local_48 = 1;\n  local_4c = param_8;\n  local_50 = param_7;\n  (*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5);\n  puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar11 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = FUN_0025542c;\n  puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n  puVar18 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  puStack_a0 = puVar18 + 0x273e14;\n  uStack_b0 = local_50;\n  uStack_a8 = 0;\n  uStack_ac = local_4c;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar21;\n  (**(code **)(puVar18 + 0x26cb6c))(&uStack_98);\n  puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar11 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }\n  iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(puStack_a0 + -0x7810);\n  pcVar22 = FUN_002555d8;\n  iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar21 + 0x273c68;\n  uStack_108 = uStack_a8;\n  uStack_104 = uStack_a4;\n  uStack_110 = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar22;\n  (**(code **)(pcVar21 + 0x26ebac))(&puStack_f8);\n  puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n  puStack_d4 = puStack_9c;\n  puStack_d8 = puStack_a0;\n  if (puVar11 == *(undefined4 **)(iVar13 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }\n  else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar13 + 0x20) << 1) {\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_100 + -0x7810);\n  pcVar22 = FUN_0025578c;\n  iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);\n  pcStack_160 = pcVar21 + 0x273ab4;\n  uStack_170 = uStack_110;\n  uStack_168 = 0;\n  uStack_16c = uStack_10c;\n  ppuStack_130 = &puStack_f8;\n  iStack_12c = iVar13;\n  iStack_128 = iVar12;\n  pcStack_124 = pcVar22;\n  (**(code **)(pcVar21 + 0x26c80c))(&uStack_158);\n  puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  uStack_134 = uStack_104;\n  uStack_138 = uStack_108;\n  if (puVar11 == *(undefined4 **)(iVar14 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }\n  iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar14 + 0x20) << 1) {\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  pcVar21 = *(code **)(pcStack_160 + -0x7810);\n  iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;\n  pcVar22 = FUN_00255938;\n  iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;\n  (*pcVar21)(iVar12,0x231);\n  uVar15 = 0;\n  uVar3 = uStack_168;\n  puStack_190 = &uStack_158;\n  iStack_18c = iVar14;\n  puStack_188 = puVar18;\n  pcStack_184 = pcVar22;\n  (**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8);\n  puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_194 = uStack_15c;\n  pcStack_198 = pcStack_160;\n  if (puVar11 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }\n  iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c);\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined **ppuVar6;" (type_identifier "undefined") (pointer_declarator "**ppuVar6" (* "*") (pointer_declarator "*ppuVar6" (* "*") (identifier "ppuVar6"))) (; ";")) (declaration "undefined **ppuVar7;" (type_identifier "undefined") (pointer_declarator "**ppuVar7" (* "*") (pointer_declarator "*ppuVar7" (* "*") (identifier "ppuVar7"))) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "code **ppcVar9;" (type_identifier "code") (pointer_declarator "**ppcVar9" (* "*") (pointer_declarator "*ppcVar9" (* "*") (identifier "ppcVar9"))) (; ";")) (declaration "code **ppcVar10;" (type_identifier "code") (pointer_declarator "**ppcVar10" (* "*") (pointer_declarator "*ppcVar10" (* "*") (identifier "ppcVar10"))) (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "undefined *puVar16;" (type_identifier "undefined") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "code *pcVar17;" (type_identifier "code") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "undefined *puVar18;" (type_identifier "undefined") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "undefined4 uVar19;" (type_identifier "undefined4") (identifier "uVar19") (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "code *pcVar21;" (type_identifier "code") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "code *pcVar22;" (type_identifier "code") (pointer_declarator "*pcVar22" (* "*") (identifier "pcVar22")) (; ";")) (declaration "code *pcStack_1b8;" (type_identifier "code") (pointer_declarator "*pcStack_1b8" (* "*") (identifier "pcStack_1b8")) (; ";")) (declaration "int iStack_1b4;" (primitive_type "int") (identifier "iStack_1b4") (; ";")) (declaration "int iStack_1a4;" (primitive_type "int") (identifier "iStack_1a4") (; ";")) (declaration "int iStack_1a0;" (primitive_type "int") (identifier "iStack_1a0") (; ";")) (declaration "code *pcStack_198;" (type_identifier "code") (pointer_declarator "*pcStack_198" (* "*") (identifier "pcStack_198")) (; ";")) (declaration "undefined4 uStack_194;" (type_identifier "undefined4") (identifier "uStack_194") (; ";")) (declaration "undefined4 *puStack_190;" (type_identifier "undefined4") (pointer_declarator "*puStack_190" (* "*") (identifier "puStack_190")) (; ";")) (declaration "int iStack_18c;" (primitive_type "int") (identifier "iStack_18c") (; ";")) (declaration "undefined *puStack_188;" (type_identifier "undefined") (pointer_declarator "*puStack_188" (* "*") (identifier "puStack_188")) (; ";")) (declaration "code *pcStack_184;" (type_identifier "code") (pointer_declarator "*pcStack_184" (* "*") (identifier "pcStack_184")) (; ";")) (declaration "undefined4 uStack_170;" (type_identifier "undefined4") (identifier "uStack_170") (; ";")) (declaration "undefined4 uStack_16c;" (type_identifier "undefined4") (identifier "uStack_16c") (; ";")) (declaration "undefined4 uStack_168;" (type_identifier "undefined4") (identifier "uStack_168") (; ";")) (declaration "undefined4 uStack_164;" (type_identifier "undefined4") (identifier "uStack_164") (; ";")) (declaration "code *pcStack_160;" (type_identifier "code") (pointer_declarator "*pcStack_160" (* "*") (identifier "pcStack_160")) (; ";")) (declaration "undefined4 uStack_15c;" (type_identifier "undefined4") (identifier "uStack_15c") (; ";")) (declaration "undefined4 uStack_158;" (type_identifier "undefined4") (identifier "uStack_158") (; ";")) (declaration "int iStack_154;" (primitive_type "int") (identifier "iStack_154") (; ";")) (declaration "int iStack_144;" (primitive_type "int") (identifier "iStack_144") (; ";")) (declaration "int iStack_140;" (primitive_type "int") (identifier "iStack_140") (; ";")) (declaration "undefined4 uStack_138;" (type_identifier "undefined4") (identifier "uStack_138") (; ";")) (declaration "undefined4 uStack_134;" (type_identifier "undefined4") (identifier "uStack_134") (; ";")) (declaration "undefined **ppuStack_130;" (type_identifier "undefined") (pointer_declarator "**ppuStack_130" (* "*") (pointer_declarator "*ppuStack_130" (* "*") (identifier "ppuStack_130"))) (; ";")) (declaration "int iStack_12c;" (primitive_type "int") (identifier "iStack_12c") (; ";")) (declaration "int iStack_128;" (primitive_type "int") (identifier "iStack_128") (; ";")) (declaration "code *pcStack_124;" (type_identifier "code") (pointer_declarator "*pcStack_124" (* "*") (identifier "pcStack_124")) (; ";")) (declaration "undefined4 uStack_110;" (type_identifier "undefined4") (identifier "uStack_110") (; ";")) (declaration "undefined4 uStack_10c;" (type_identifier "undefined4") (identifier "uStack_10c") (; ";")) (declaration "undefined4 uStack_108;" (type_identifier "undefined4") (identifier "uStack_108") (; ";")) (declaration "undefined4 uStack_104;" (type_identifier "undefined4") (identifier "uStack_104") (; ";")) (declaration "code *pcStack_100;" (type_identifier "code") (pointer_declarator "*pcStack_100" (* "*") (identifier "pcStack_100")) (; ";")) (declaration "undefined *puStack_f8;" (type_identifier "undefined") (pointer_declarator "*puStack_f8" (* "*") (identifier "puStack_f8")) (; ";")) (declaration "int iStack_f4;" (primitive_type "int") (identifier "iStack_f4") (; ";")) (declaration "int iStack_e4;" (primitive_type "int") (identifier "iStack_e4") (; ";")) (declaration "int iStack_e0;" (primitive_type "int") (identifier "iStack_e0") (; ";")) (declaration "undefined *puStack_d8;" (type_identifier "undefined") (pointer_declarator "*puStack_d8" (* "*") (identifier "puStack_d8")) (; ";")) (declaration "undefined *puStack_d4;" (type_identifier "undefined") (pointer_declarator "*puStack_d4" (* "*") (identifier "puStack_d4")) (; ";")) (declaration "undefined4 *puStack_d0;" (type_identifier "undefined4") (pointer_declarator "*puStack_d0" (* "*") (identifier "puStack_d0")) (; ";")) (declaration "undefined *puStack_cc;" (type_identifier "undefined") (pointer_declarator "*puStack_cc" (* "*") (identifier "puStack_cc")) (; ";")) (declaration "int iStack_c8;" (primitive_type "int") (identifier "iStack_c8") (; ";")) (declaration "code *pcStack_c4;" (type_identifier "code") (pointer_declarator "*pcStack_c4" (* "*") (identifier "pcStack_c4")) (; ";")) (declaration "undefined4 uStack_b0;" (type_identifier "undefined4") (identifier "uStack_b0") (; ";")) (declaration "undefined4 uStack_ac;" (type_identifier "undefined4") (identifier "uStack_ac") (; ";")) (declaration "undefined4 uStack_a8;" (type_identifier "undefined4") (identifier "uStack_a8") (; ";")) (declaration "undefined4 uStack_a4;" (type_identifier "undefined4") (identifier "uStack_a4") (; ";")) (declaration "undefined *puStack_a0;" (type_identifier "undefined") (pointer_declarator "*puStack_a0" (* "*") (identifier "puStack_a0")) (; ";")) (declaration "undefined *puStack_9c;" (type_identifier "undefined") (pointer_declarator "*puStack_9c" (* "*") (identifier "puStack_9c")) (; ";")) (declaration "undefined4 uStack_98;" (type_identifier "undefined4") (identifier "uStack_98") (; ";")) (declaration "int iStack_94;" (primitive_type "int") (identifier "iStack_94") (; ";")) (declaration "int iStack_84;" (primitive_type "int") (identifier "iStack_84") (; ";")) (declaration "int iStack_80;" (primitive_type "int") (identifier "iStack_80") (; ";")) (declaration "undefined4 uStack_78;" (type_identifier "undefined4") (identifier "uStack_78") (; ";")) (declaration "int iStack_74;" (primitive_type "int") (identifier "iStack_74") (; ";")) (declaration "undefined4 *puStack_70;" (type_identifier "undefined4") (pointer_declarator "*puStack_70" (* "*") (identifier "puStack_70")) (; ";")) (declaration "int iStack_6c;" (primitive_type "int") (identifier "iStack_6c") (; ";")) (declaration "int iStack_68;" (primitive_type "int") (identifier "iStack_68") (; ";")) (declaration "code *pcStack_64;" (type_identifier "code") (pointer_declarator "*pcStack_64" (* "*") (identifier "pcStack_64")) (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "int iStack_44;" (primitive_type "int") (identifier "iStack_44") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 local_18;" (type_identifier "undefined4") (identifier "local_18") (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" (identifier "local_48") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_4c = param_8;" (assignment_expression "local_4c = param_8" (identifier "local_4c") (= "=") (identifier "param_8")) (; ";")) (expression_statement "local_50 = param_7;" (assignment_expression "local_50 = param_7" (identifier "local_50") (= "=") (identifier "param_7")) (; ";")) (expression_statement "(*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5);" (call_expression "(*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5)" (parenthesized_expression "(*(code *)PTR_Output_reloc_004c417c)" (( "(") (pointer_expression "*(code *)PTR_Output_reloc_004c417c" (* "*") (cast_expression "(code *)PTR_Output_reloc_004c417c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_Output_reloc_004c417c"))) () ")")) (argument_list "(&local_38,param_2,param_4,param_5)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (identifier "param_2") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(param_1 + 0x3c)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "local_14 = param_10;" (assignment_expression "local_14 = param_10" (identifier "local_14") (= "=") (identifier "param_10")) (; ";")) (expression_statement "local_18 = param_9;" (assignment_expression "local_18 = param_9" (identifier "local_18") (= "=") (identifier "param_9")) (; ";")) (if_statement "if (puVar11 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }" (if "if") (parenthesized_expression "(puVar11 == *(undefined4 **)(param_1 + 0x40))" (( "(") (binary_expression "puVar11 == *(undefined4 **)(param_1 + 0x40)" (identifier "puVar11") (== "==") (pointer_expression "*(undefined4 **)(param_1 + 0x40)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (compound_statement "{\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);\n    puVar11 = *(undefined4 **)(param_1 + 0x3c);\n  }" ({ "{") (expression_statement "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38);" (call_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)\n              (param_1 + 0x38,puVar11,&local_38)" (parenthesized_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)" (( "(") (comma_expression "*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590" (binary_expression "*(code *)PTR__M_realloc_insert<gold_Output_reloc<4" (binary_expression "*(code *)PTR__M_realloc_insert<gold_Output_reloc" (pointer_expression "*(code *)PTR__M_realloc_insert" (* "*") (cast_expression "(code *)PTR__M_realloc_insert" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_realloc_insert"))) (< "<") (identifier "gold_Output_reloc")) (< "<") (number_literal "4")) (, ",") (comma_expression "true,64,true>const&>_004c3590" (true "true") (, ",") (comma_expression "64,true>const&>_004c3590" (number_literal "64") (, ",") (binary_expression "true>const&>_004c3590" (binary_expression "true>const" (true "true") (> ">") (identifier "const")) (ERROR "&" (& "&")) (> ">") (identifier "_004c3590"))))) () ")")) (argument_list "(param_1 + 0x38,puVar11,&local_38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) (, ",") (identifier "puVar11") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(param_1 + 0x3c)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }" (else "else") (compound_statement "{\n    puVar1 = puVar11;\n    puVar4 = &local_38;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar11;\n  }" ({ "{") (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" (identifier "puVar1") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar4 = &local_38;" (assignment_expression "puVar4 = &local_38" (identifier "puVar4") (= "=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (; ";")) (do_statement "do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);" (do "do") (compound_statement "{\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      param_10 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" ({ "{") (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" (identifier "puVar8") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" (identifier "puVar2") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar4 = puVar8 + 4;" (assignment_expression "puVar4 = puVar8 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "param_10 = puVar8[1];" (assignment_expression "param_10 = puVar8[1]" (identifier "param_10") (= "=") (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar15 = puVar8[2];" (assignment_expression "uVar15 = puVar8[2]" (identifier "uVar15") (= "=") (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar3 = puVar8[3];" (assignment_expression "uVar3 = puVar8[3]" (identifier "uVar3") (= "=") (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "puVar2[1] = param_10;" (assignment_expression "puVar2[1] = param_10" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_10")) (; ";")) (expression_statement "puVar2[2] = uVar15;" (assignment_expression "puVar2[2] = uVar15" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "puVar2[3] = uVar3;" (assignment_expression "puVar2[3] = uVar3" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "puVar1 = puVar2 + 4;" (assignment_expression "puVar1 = puVar2 + 4" (identifier "puVar1") (= "=") (binary_expression "puVar2 + 4" (identifier "puVar2") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar4 != &local_18)" (( "(") (binary_expression "puVar4 != &local_18" (identifier "puVar4") (!= "!=") (pointer_expression "&local_18" (& "&") (identifier "local_18"))) () ")")) (; ";")) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 10" (identifier "puVar11") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "uVar3 = puVar8[5];" (assignment_expression "uVar3 = puVar8[5]" (identifier "uVar3") (= "=") (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar2[4] = *puVar4;" (assignment_expression "puVar2[4] = *puVar4" (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "puVar2[5] = uVar3;" (assignment_expression "puVar2[5] = uVar3" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(param_1 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (} "}")))) (expression_statement "iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3;" (assignment_expression "iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3" (identifier "iVar12") (= "=") (binary_expression "(int)puVar11 - *(int *)(param_1 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(param_1 + 0x38)" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (- "-") (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(-1 < *(int *)(param_1 + 0x20) << 1)" (( "(") (binary_expression "-1 < *(int *)(param_1 + 0x20) << 1" (number_literal "-1") (< "<") (binary_expression "*(int *)(param_1 + 0x20) << 1" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "1"))) () ")")) (compound_statement "{\n    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;\n    if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }\n    if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" ({ "{") (expression_statement "*(int *)(param_1 + 0x14) = iVar12 * 0x33333338;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar12 * 0x33333338" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar12 * 0x33333338" (identifier "iVar12") (* "*") (number_literal "0x33333338"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(param_3 + 0x20)" (* "*") (cast_expression "(byte *)(param_3 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x20)" (( "(") (binary_expression "param_3 + 0x20" (identifier "param_3") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "*(byte *)(param_3 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(param_3 + 0x20) & 0xf7" (pointer_expression "*(byte *)(param_3 + 0x20)" (* "*") (cast_expression "(byte *)(param_3 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x20)" (( "(") (binary_expression "param_3 + 0x20" (identifier "param_3") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "0xf7")) (| "|") (number_literal "8"))) (; ";")) (if_statement "if (local_24 << 0x1c < 0) {\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }" (if "if") (parenthesized_expression "(local_24 << 0x1c < 0)" (( "(") (binary_expression "local_24 << 0x1c < 0" (binary_expression "local_24 << 0x1c" (identifier "local_24") (<< "<<") (number_literal "0x1c")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;\n    }" ({ "{") (expression_statement "*(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;" (assignment_expression "*(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1" (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x30) + 1" (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((local_20 != -4) && (local_34 != 0)) {\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }" (if "if") (parenthesized_expression "((local_20 != -4) && (local_34 != 0))" (( "(") (binary_expression "(local_20 != -4) && (local_34 != 0)" (parenthesized_expression "(local_20 != -4)" (( "(") (binary_expression "local_20 != -4" (identifier "local_20") (!= "!=") (number_literal "-4")) () ")")) (&& "&&") (parenthesized_expression "(local_34 != 0)" (( "(") (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }" ({ "{") (if_statement "if (*(int *)(local_34 + 100) == 0) {\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }" (if "if") (parenthesized_expression "(*(int *)(local_34 + 100) == 0)" (( "(") (binary_expression "*(int *)(local_34 + 100) == 0" (pointer_expression "*(int *)(local_34 + 100)" (* "*") (cast_expression "(int *)(local_34 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 100)" (( "(") (binary_expression "local_34 + 100" (identifier "local_34") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;\n      }" ({ "{") (expression_statement "*(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1" (pointer_expression "*(int *)(local_34 + 0x60)" (* "*") (cast_expression "(int *)(local_34 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 0x60)" (( "(") (binary_expression "local_34 + 0x60" (identifier "local_34") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (binary_expression "iVar12 * -0x33333333 + -1" (binary_expression "iVar12 * -0x33333333" (identifier "iVar12") (* "*") (number_literal "-0x33333333")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;" (assignment_expression "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" (* "*") (cast_expression "(int *)(local_34 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 100)" (( "(") (binary_expression "local_34 + 100" (identifier "local_34") (+ "+") (number_literal "100")) () ")")))) (= "=") (binary_expression "*(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" (* "*") (cast_expression "(int *)(local_34 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 100)" (( "(") (binary_expression "local_34 + 100" (identifier "local_34") (+ "+") (number_literal "100")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar21 = FUN_0025542c;" (assignment_expression "pcVar21 = FUN_0025542c" (identifier "pcVar21") (= "=") (identifier "FUN_0025542c")) (; ";")) (expression_statement "puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;" (assignment_expression "puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "puVar5") (= "=") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574"))) (; ";")) (expression_statement "puVar18 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar18 = PTR_do_gold_unreachable_004c1a30" (identifier "puVar18") (= "=") (identifier "PTR_do_gold_unreachable_004c1a30")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c)" (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 "(puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c)" (( "(") (identifier "puVar5") (, ",") (number_literal "0x231") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2b1c" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x2b1c")) () ")"))) (; ";")) (expression_statement "puStack_a0 = puVar18 + 0x273e14;" (assignment_expression "puStack_a0 = puVar18 + 0x273e14" (identifier "puStack_a0") (= "=") (binary_expression "puVar18 + 0x273e14" (identifier "puVar18") (+ "+") (number_literal "0x273e14"))) (; ";")) (expression_statement "uStack_b0 = local_50;" (assignment_expression "uStack_b0 = local_50" (identifier "uStack_b0") (= "=") (identifier "local_50")) (; ";")) (expression_statement "uStack_a8 = 0;" (assignment_expression "uStack_a8 = 0" (identifier "uStack_a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_ac = local_4c;" (assignment_expression "uStack_ac = local_4c" (identifier "uStack_ac") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "puStack_70 = &local_38;" (assignment_expression "puStack_70 = &local_38" (identifier "puStack_70") (= "=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (; ";")) (expression_statement "iStack_6c = param_1;" (assignment_expression "iStack_6c = param_1" (identifier "iStack_6c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iStack_68 = param_3;" (assignment_expression "iStack_68 = param_3" (identifier "iStack_68") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_64 = pcVar21;" (assignment_expression "pcStack_64 = pcVar21" (identifier "pcStack_64") (= "=") (identifier "pcVar21")) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x26cb6c))(&uStack_98);" (call_expression "(**(code **)(puVar18 + 0x26cb6c))(&uStack_98)" (parenthesized_expression "(**(code **)(puVar18 + 0x26cb6c))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x26cb6c)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x26cb6c)" (* "*") (cast_expression "(code **)(puVar18 + 0x26cb6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x26cb6c)" (( "(") (binary_expression "puVar18 + 0x26cb6c" (identifier "puVar18") (+ "+") (number_literal "0x26cb6c")) () ")"))))) () ")")) (argument_list "(&uStack_98)" (( "(") (pointer_expression "&uStack_98" (& "&") (identifier "uStack_98")) () ")"))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)(puVar5 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(puVar5 + 0x3c)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(puVar5 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(puVar5 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar5 + 0x3c)" (( "(") (binary_expression "puVar5 + 0x3c" (identifier "puVar5") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "iStack_74 = iStack_44;" (assignment_expression "iStack_74 = iStack_44" (identifier "iStack_74") (= "=") (identifier "iStack_44")) (; ";")) (expression_statement "uStack_78 = local_48;" (assignment_expression "uStack_78 = local_48" (identifier "uStack_78") (= "=") (identifier "local_48")) (; ";")) (if_statement "if (puVar11 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }" (if "if") (parenthesized_expression "(puVar11 == *(undefined4 **)(puVar5 + 0x40))" (( "(") (binary_expression "puVar11 == *(undefined4 **)(puVar5 + 0x40)" (identifier "puVar11") (== "==") (pointer_expression "*(undefined4 **)(puVar5 + 0x40)" (* "*") (cast_expression "(undefined4 **)(puVar5 + 0x40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar5 + 0x40)" (( "(") (binary_expression "puVar5 + 0x40" (identifier "puVar5") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (compound_statement "{\n    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);\n    puVar11 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar12 = iStack_44;\n  }" ({ "{") (expression_statement "(**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);" (call_expression "(**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98)" (parenthesized_expression "(**(code **)(puStack_a0 + -0x5cb0))" (( "(") (pointer_expression "**(code **)(puStack_a0 + -0x5cb0)" (* "*") (pointer_expression "*(code **)(puStack_a0 + -0x5cb0)" (* "*") (cast_expression "(code **)(puStack_a0 + -0x5cb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_a0 + -0x5cb0)" (( "(") (binary_expression "puStack_a0 + -0x5cb0" (identifier "puStack_a0") (+ "+") (number_literal "-0x5cb0")) () ")"))))) () ")")) (argument_list "(puVar5 + 0x38,puVar11,&uStack_98)" (( "(") (binary_expression "puVar5 + 0x38" (identifier "puVar5") (+ "+") (number_literal "0x38")) (, ",") (identifier "puVar11") (, ",") (pointer_expression "&uStack_98" (& "&") (identifier "uStack_98")) () ")"))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)(puVar5 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(puVar5 + 0x3c)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(puVar5 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(puVar5 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar5 + 0x3c)" (( "(") (binary_expression "puVar5 + 0x3c" (identifier "puVar5") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "iVar12 = iStack_44;" (assignment_expression "iVar12 = iStack_44" (identifier "iVar12") (= "=") (identifier "iStack_44")) (; ";")) (} "}")) (else_clause "else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }" (else "else") (compound_statement "{\n    puVar1 = puVar11;\n    puVar4 = &uStack_98;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar11;\n  }" ({ "{") (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" (identifier "puVar1") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar4 = &uStack_98;" (assignment_expression "puVar4 = &uStack_98" (identifier "puVar4") (= "=") (pointer_expression "&uStack_98" (& "&") (identifier "uStack_98"))) (; ";")) (do_statement "do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);" (do "do") (compound_statement "{\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      iVar12 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = iVar12;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" ({ "{") (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" (identifier "puVar8") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" (identifier "puVar2") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar4 = puVar8 + 4;" (assignment_expression "puVar4 = puVar8 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar12 = puVar8[1];" (assignment_expression "iVar12 = puVar8[1]" (identifier "iVar12") (= "=") (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar15 = puVar8[2];" (assignment_expression "uVar15 = puVar8[2]" (identifier "uVar15") (= "=") (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar3 = puVar8[3];" (assignment_expression "uVar3 = puVar8[3]" (identifier "uVar3") (= "=") (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "puVar2[1] = iVar12;" (assignment_expression "puVar2[1] = iVar12" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "puVar2[2] = uVar15;" (assignment_expression "puVar2[2] = uVar15" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "puVar2[3] = uVar3;" (assignment_expression "puVar2[3] = uVar3" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "puVar1 = puVar2 + 4;" (assignment_expression "puVar1 = puVar2 + 4" (identifier "puVar1") (= "=") (binary_expression "puVar2 + 4" (identifier "puVar2") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar4 != &uStack_78)" (( "(") (binary_expression "puVar4 != &uStack_78" (identifier "puVar4") (!= "!=") (pointer_expression "&uStack_78" (& "&") (identifier "uStack_78"))) () ")")) (; ";")) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 10" (identifier "puVar11") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "uVar3 = puVar8[5];" (assignment_expression "uVar3 = puVar8[5]" (identifier "uVar3") (= "=") (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar2[4] = *puVar4;" (assignment_expression "puVar2[4] = *puVar4" (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "puVar2[5] = uVar3;" (assignment_expression "puVar2[5] = uVar3" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(undefined4 **)(puVar5 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(puVar5 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(puVar5 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(puVar5 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar5 + 0x3c)" (( "(") (binary_expression "puVar5 + 0x3c" (identifier "puVar5") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (} "}")))) (expression_statement "iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3;" (assignment_expression "iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3" (identifier "iVar13") (= "=") (binary_expression "(int)puVar11 - *(int *)(puVar5 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(puVar5 + 0x38)" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (- "-") (pointer_expression "*(int *)(puVar5 + 0x38)" (* "*") (cast_expression "(int *)(puVar5 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x38)" (( "(") (binary_expression "puVar5 + 0x38" (identifier "puVar5") (+ "+") (number_literal "0x38")) () ")"))))) (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(-1 < *(int *)(puVar5 + 0x20) << 1)" (( "(") (binary_expression "-1 < *(int *)(puVar5 + 0x20) << 1" (number_literal "-1") (< "<") (binary_expression "*(int *)(puVar5 + 0x20) << 1" (pointer_expression "*(int *)(puVar5 + 0x20)" (* "*") (cast_expression "(int *)(puVar5 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x20)" (( "(") (binary_expression "puVar5 + 0x20" (identifier "puVar5") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "1"))) () ")")) (compound_statement "{\n    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;\n    *(undefined4 *)(puVar5 + 0x10) = 0;\n    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }" ({ "{") (expression_statement "*(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;" (assignment_expression "*(int *)(puVar5 + 0x14) = iVar13 * 0x33333338" (pointer_expression "*(int *)(puVar5 + 0x14)" (* "*") (cast_expression "(int *)(puVar5 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x14)" (( "(") (binary_expression "puVar5 + 0x14" (identifier "puVar5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar13 * 0x33333338" (identifier "iVar13") (* "*") (number_literal "0x33333338"))) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar5 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x10)" (( "(") (binary_expression "puVar5 + 0x10" (identifier "puVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(param_10 + 0x20)" (* "*") (cast_expression "(byte *)(param_10 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_10 + 0x20)" (( "(") (binary_expression "param_10 + 0x20" (identifier "param_10") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "*(byte *)(param_10 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(param_10 + 0x20) & 0xf7" (pointer_expression "*(byte *)(param_10 + 0x20)" (* "*") (cast_expression "(byte *)(param_10 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_10 + 0x20)" (( "(") (binary_expression "param_10 + 0x20" (identifier "param_10") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "0xf7")) (| "|") (number_literal "8"))) (; ";")) (if_statement "if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }" (if "if") (parenthesized_expression "(iStack_84 << 0x1c < 0)" (( "(") (binary_expression "iStack_84 << 0x1c < 0" (binary_expression "iStack_84 << 0x1c" (identifier "iStack_84") (<< "<<") (number_literal "0x1c")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;\n    }" ({ "{") (expression_statement "*(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;" (assignment_expression "*(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1" (pointer_expression "*(int *)(puVar5 + 0x30)" (* "*") (cast_expression "(int *)(puVar5 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x30)" (( "(") (binary_expression "puVar5 + 0x30" (identifier "puVar5") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "*(int *)(puVar5 + 0x30) + 1" (pointer_expression "*(int *)(puVar5 + 0x30)" (* "*") (cast_expression "(int *)(puVar5 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x30)" (( "(") (binary_expression "puVar5 + 0x30" (identifier "puVar5") (+ "+") (number_literal "0x30")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }" (if "if") (parenthesized_expression "((iStack_80 != -4) && (iStack_94 != 0))" (( "(") (binary_expression "(iStack_80 != -4) && (iStack_94 != 0)" (parenthesized_expression "(iStack_80 != -4)" (( "(") (binary_expression "iStack_80 != -4" (identifier "iStack_80") (!= "!=") (number_literal "-4")) () ")")) (&& "&&") (parenthesized_expression "(iStack_94 != 0)" (( "(") (binary_expression "iStack_94 != 0" (identifier "iStack_94") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }" ({ "{") (if_statement "if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }" (if "if") (parenthesized_expression "(*(int *)(iStack_94 + 100) == 0)" (( "(") (binary_expression "*(int *)(iStack_94 + 100) == 0" (pointer_expression "*(int *)(iStack_94 + 100)" (* "*") (cast_expression "(int *)(iStack_94 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_94 + 100)" (( "(") (binary_expression "iStack_94 + 100" (identifier "iStack_94") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;\n      }" ({ "{") (expression_statement "*(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_94 + 0x60)" (* "*") (cast_expression "(int *)(iStack_94 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_94 + 0x60)" (( "(") (binary_expression "iStack_94 + 0x60" (identifier "iStack_94") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (binary_expression "iVar13 * -0x33333333 + -1" (binary_expression "iVar13 * -0x33333333" (identifier "iVar13") (* "*") (number_literal "-0x33333333")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "*(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;" (assignment_expression "*(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1" (pointer_expression "*(int *)(iStack_94 + 100)" (* "*") (cast_expression "(int *)(iStack_94 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_94 + 100)" (( "(") (binary_expression "iStack_94 + 100" (identifier "iStack_94") (+ "+") (number_literal "100")) () ")")))) (= "=") (binary_expression "*(int *)(iStack_94 + 100) + 1" (pointer_expression "*(int *)(iStack_94 + 100)" (* "*") (cast_expression "(int *)(iStack_94 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_94 + 100)" (( "(") (binary_expression "iStack_94 + 100" (identifier "iStack_94") (+ "+") (number_literal "100")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar21 = *(code **)(puStack_a0 + -0x7810);" (assignment_expression "pcVar21 = *(code **)(puStack_a0 + -0x7810)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(puStack_a0 + -0x7810)" (* "*") (cast_expression "(code **)(puStack_a0 + -0x7810)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_a0 + -0x7810)" (( "(") (binary_expression "puStack_a0 + -0x7810" (identifier "puStack_a0") (+ "+") (number_literal "-0x7810")) () ")"))))) (; ";")) (expression_statement "pcVar22 = FUN_002555d8;" (assignment_expression "pcVar22 = FUN_002555d8" (identifier "pcVar22") (= "=") (identifier "FUN_002555d8")) (; ";")) (expression_statement "iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574" (identifier "iVar13") (= "=") (binary_expression "*(int *)(puStack_a0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(puStack_a0 + -0x7fc4)" (* "*") (cast_expression "(int *)(puStack_a0 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_a0 + -0x7fc4)" (( "(") (binary_expression "puStack_a0 + -0x7fc4" (identifier "puStack_a0") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "0x3574"))) (; ";")) (expression_statement "(*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c)" (( "(") (identifier "iVar13") (, ",") (number_literal "0x231") (, ",") (binary_expression "*(int *)(puStack_a0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(puStack_a0 + -0x7924)" (* "*") (cast_expression "(int *)(puStack_a0 + -0x7924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_a0 + -0x7924)" (( "(") (binary_expression "puStack_a0 + -0x7924" (identifier "puStack_a0") (+ "+") (number_literal "-0x7924")) () ")")))) (+ "+") (number_literal "-0x2b1c")) () ")"))) (; ";")) (expression_statement "pcStack_100 = pcVar21 + 0x273c68;" (assignment_expression "pcStack_100 = pcVar21 + 0x273c68" (identifier "pcStack_100") (= "=") (binary_expression "pcVar21 + 0x273c68" (identifier "pcVar21") (+ "+") (number_literal "0x273c68"))) (; ";")) (expression_statement "uStack_108 = uStack_a8;" (assignment_expression "uStack_108 = uStack_a8" (identifier "uStack_108") (= "=") (identifier "uStack_a8")) (; ";")) (expression_statement "uStack_104 = uStack_a4;" (assignment_expression "uStack_104 = uStack_a4" (identifier "uStack_104") (= "=") (identifier "uStack_a4")) (; ";")) (expression_statement "uStack_110 = uStack_ac;" (assignment_expression "uStack_110 = uStack_ac" (identifier "uStack_110") (= "=") (identifier "uStack_ac")) (; ";")) (expression_statement "puStack_d0 = &uStack_98;" (assignment_expression "puStack_d0 = &uStack_98" (identifier "puStack_d0") (= "=") (pointer_expression "&uStack_98" (& "&") (identifier "uStack_98"))) (; ";")) (expression_statement "puStack_cc = puVar5;" (assignment_expression "puStack_cc = puVar5" (identifier "puStack_cc") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "iStack_c8 = param_10;" (assignment_expression "iStack_c8 = param_10" (identifier "iStack_c8") (= "=") (identifier "param_10")) (; ";")) (expression_statement "pcStack_c4 = pcVar22;" (assignment_expression "pcStack_c4 = pcVar22" (identifier "pcStack_c4") (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "(**(code **)(pcVar21 + 0x26ebac))(&puStack_f8);" (call_expression "(**(code **)(pcVar21 + 0x26ebac))(&puStack_f8)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26ebac))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0x26ebac)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0x26ebac)" (* "*") (cast_expression "(code **)(pcVar21 + 0x26ebac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x26ebac)" (( "(") (binary_expression "pcVar21 + 0x26ebac" (identifier "pcVar21") (+ "+") (number_literal "0x26ebac")) () ")"))))) () ")")) (argument_list "(&puStack_f8)" (( "(") (pointer_expression "&puStack_f8" (& "&") (identifier "puStack_f8")) () ")"))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)(iVar13 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar13 + 0x3c)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(iVar13 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar13 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + 0x3c)" (( "(") (binary_expression "iVar13 + 0x3c" (identifier "iVar13") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "puStack_d4 = puStack_9c;" (assignment_expression "puStack_d4 = puStack_9c" (identifier "puStack_d4") (= "=") (identifier "puStack_9c")) (; ";")) (expression_statement "puStack_d8 = puStack_a0;" (assignment_expression "puStack_d8 = puStack_a0" (identifier "puStack_d8") (= "=") (identifier "puStack_a0")) (; ";")) (if_statement "if (puVar11 == *(undefined4 **)(iVar13 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }\n  else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }" (if "if") (parenthesized_expression "(puVar11 == *(undefined4 **)(iVar13 + 0x40))" (( "(") (binary_expression "puVar11 == *(undefined4 **)(iVar13 + 0x40)" (identifier "puVar11") (== "==") (pointer_expression "*(undefined4 **)(iVar13 + 0x40)" (* "*") (cast_expression "(undefined4 **)(iVar13 + 0x40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + 0x40)" (( "(") (binary_expression "iVar13 + 0x40" (identifier "iVar13") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (compound_statement "{\n    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);\n    puVar11 = *(undefined4 **)(iVar13 + 0x3c);\n    puVar18 = puStack_9c;\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);" (call_expression "(**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8)" (parenthesized_expression "(**(code **)(pcStack_100 + -0x5cb0))" (( "(") (pointer_expression "**(code **)(pcStack_100 + -0x5cb0)" (* "*") (pointer_expression "*(code **)(pcStack_100 + -0x5cb0)" (* "*") (cast_expression "(code **)(pcStack_100 + -0x5cb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_100 + -0x5cb0)" (( "(") (binary_expression "pcStack_100 + -0x5cb0" (identifier "pcStack_100") (+ "+") (number_literal "-0x5cb0")) () ")"))))) () ")")) (argument_list "(iVar13 + 0x38,puVar11,&puStack_f8)" (( "(") (binary_expression "iVar13 + 0x38" (identifier "iVar13") (+ "+") (number_literal "0x38")) (, ",") (identifier "puVar11") (, ",") (pointer_expression "&puStack_f8" (& "&") (identifier "puStack_f8")) () ")"))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)(iVar13 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar13 + 0x3c)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(iVar13 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar13 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + 0x3c)" (( "(") (binary_expression "iVar13 + 0x3c" (identifier "iVar13") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "puVar18 = puStack_9c;" (assignment_expression "puVar18 = puStack_9c" (identifier "puVar18") (= "=") (identifier "puStack_9c")) (; ";")) (} "}")) (else_clause "else {\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }" (else "else") (compound_statement "{\n    puVar1 = puVar11;\n    ppuVar7 = &puStack_f8;\n    do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);\n    puVar11 = puVar11 + 10;\n    puVar5 = ppuVar6[5];\n    puVar4[4] = *ppuVar7;\n    puVar4[5] = puVar5;\n    *(undefined4 **)(iVar13 + 0x3c) = puVar11;\n  }" ({ "{") (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" (identifier "puVar1") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "ppuVar7 = &puStack_f8;" (assignment_expression "ppuVar7 = &puStack_f8" (identifier "ppuVar7") (= "=") (pointer_expression "&puStack_f8" (& "&") (identifier "puStack_f8"))) (; ";")) (do_statement "do {\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppuVar7 != &puStack_d8);" (do "do") (compound_statement "{\n      ppuVar6 = ppuVar7;\n      puVar4 = puVar1;\n      ppuVar7 = ppuVar6 + 4;\n      puVar18 = ppuVar6[1];\n      puVar16 = ppuVar6[2];\n      puVar5 = ppuVar6[3];\n      *puVar4 = *ppuVar6;\n      puVar4[1] = puVar18;\n      puVar4[2] = puVar16;\n      puVar4[3] = puVar5;\n      puVar1 = puVar4 + 4;\n    }" ({ "{") (expression_statement "ppuVar6 = ppuVar7;" (assignment_expression "ppuVar6 = ppuVar7" (identifier "ppuVar6") (= "=") (identifier "ppuVar7")) (; ";")) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" (identifier "puVar4") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "ppuVar7 = ppuVar6 + 4;" (assignment_expression "ppuVar7 = ppuVar6 + 4" (identifier "ppuVar7") (= "=") (binary_expression "ppuVar6 + 4" (identifier "ppuVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar18 = ppuVar6[1];" (assignment_expression "puVar18 = ppuVar6[1]" (identifier "puVar18") (= "=") (subscript_expression "ppuVar6[1]" (identifier "ppuVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar16 = ppuVar6[2];" (assignment_expression "puVar16 = ppuVar6[2]" (identifier "puVar16") (= "=") (subscript_expression "ppuVar6[2]" (identifier "ppuVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar5 = ppuVar6[3];" (assignment_expression "puVar5 = ppuVar6[3]" (identifier "puVar5") (= "=") (subscript_expression "ppuVar6[3]" (identifier "ppuVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar4 = *ppuVar6;" (assignment_expression "*puVar4 = *ppuVar6" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*ppuVar6" (* "*") (identifier "ppuVar6"))) (; ";")) (expression_statement "puVar4[1] = puVar18;" (assignment_expression "puVar4[1] = puVar18" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar18")) (; ";")) (expression_statement "puVar4[2] = puVar16;" (assignment_expression "puVar4[2] = puVar16" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "puVar16")) (; ";")) (expression_statement "puVar4[3] = puVar5;" (assignment_expression "puVar4[3] = puVar5" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" (identifier "puVar1") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppuVar7 != &puStack_d8)" (( "(") (binary_expression "ppuVar7 != &puStack_d8" (identifier "ppuVar7") (!= "!=") (pointer_expression "&puStack_d8" (& "&") (identifier "puStack_d8"))) () ")")) (; ";")) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 10" (identifier "puVar11") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "puVar5 = ppuVar6[5];" (assignment_expression "puVar5 = ppuVar6[5]" (identifier "puVar5") (= "=") (subscript_expression "ppuVar6[5]" (identifier "ppuVar6") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar4[4] = *ppuVar7;" (assignment_expression "puVar4[4] = *ppuVar7" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*ppuVar7" (* "*") (identifier "ppuVar7"))) (; ";")) (expression_statement "puVar4[5] = puVar5;" (assignment_expression "puVar4[5] = puVar5" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "*(undefined4 **)(iVar13 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(iVar13 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(iVar13 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar13 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + 0x3c)" (( "(") (binary_expression "iVar13 + 0x3c" (identifier "iVar13") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (} "}")))) (expression_statement "iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3;" (assignment_expression "iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3" (identifier "iVar14") (= "=") (binary_expression "(int)puVar11 - *(int *)(iVar13 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(iVar13 + 0x38)" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (- "-") (pointer_expression "*(int *)(iVar13 + 0x38)" (* "*") (cast_expression "(int *)(iVar13 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x38)" (( "(") (binary_expression "iVar13 + 0x38" (identifier "iVar13") (+ "+") (number_literal "0x38")) () ")"))))) (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if (-1 < *(int *)(iVar13 + 0x20) << 1) {\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(-1 < *(int *)(iVar13 + 0x20) << 1)" (( "(") (binary_expression "-1 < *(int *)(iVar13 + 0x20) << 1" (number_literal "-1") (< "<") (binary_expression "*(int *)(iVar13 + 0x20) << 1" (pointer_expression "*(int *)(iVar13 + 0x20)" (* "*") (cast_expression "(int *)(iVar13 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x20)" (( "(") (binary_expression "iVar13 + 0x20" (identifier "iVar13") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "1"))) () ")")) (compound_statement "{\n    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar13 + 0x10) = 0;\n    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" ({ "{") (expression_statement "*(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;" (assignment_expression "*(int *)(iVar13 + 0x14) = iVar14 * 0x33333338" (pointer_expression "*(int *)(iVar13 + 0x14)" (* "*") (cast_expression "(int *)(iVar13 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x14)" (( "(") (binary_expression "iVar13 + 0x14" (identifier "iVar13") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar14 * 0x33333338" (identifier "iVar14") (* "*") (number_literal "0x33333338"))) (; ";")) (expression_statement "*(undefined4 *)(iVar13 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar13 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar13 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar13 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x10)" (( "(") (binary_expression "iVar13 + 0x10" (identifier "iVar13") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar12 + 0x20)" (* "*") (cast_expression "(byte *)(iVar12 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar12 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar12 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar12 + 0x20)" (* "*") (cast_expression "(byte *)(iVar12 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "0xf7")) (| "|") (number_literal "8"))) (; ";")) (if_statement "if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }" (if "if") (parenthesized_expression "(iStack_e4 << 0x1c < 0)" (( "(") (binary_expression "iStack_e4 << 0x1c < 0" (binary_expression "iStack_e4 << 0x1c" (identifier "iStack_e4") (<< "<<") (number_literal "0x1c")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;\n    }" ({ "{") (expression_statement "*(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;" (assignment_expression "*(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1" (pointer_expression "*(int *)(iVar13 + 0x30)" (* "*") (cast_expression "(int *)(iVar13 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x30)" (( "(") (binary_expression "iVar13 + 0x30" (identifier "iVar13") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "*(int *)(iVar13 + 0x30) + 1" (pointer_expression "*(int *)(iVar13 + 0x30)" (* "*") (cast_expression "(int *)(iVar13 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x30)" (( "(") (binary_expression "iVar13 + 0x30" (identifier "iVar13") (+ "+") (number_literal "0x30")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }" (if "if") (parenthesized_expression "((iStack_e0 != -4) && (iStack_f4 != 0))" (( "(") (binary_expression "(iStack_e0 != -4) && (iStack_f4 != 0)" (parenthesized_expression "(iStack_e0 != -4)" (( "(") (binary_expression "iStack_e0 != -4" (identifier "iStack_e0") (!= "!=") (number_literal "-4")) () ")")) (&& "&&") (parenthesized_expression "(iStack_f4 != 0)" (( "(") (binary_expression "iStack_f4 != 0" (identifier "iStack_f4") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }" ({ "{") (if_statement "if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }" (if "if") (parenthesized_expression "(*(int *)(iStack_f4 + 100) == 0)" (( "(") (binary_expression "*(int *)(iStack_f4 + 100) == 0" (pointer_expression "*(int *)(iStack_f4 + 100)" (* "*") (cast_expression "(int *)(iStack_f4 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_f4 + 100)" (( "(") (binary_expression "iStack_f4 + 100" (identifier "iStack_f4") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }" ({ "{") (expression_statement "*(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_f4 + 0x60)" (* "*") (cast_expression "(int *)(iStack_f4 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_f4 + 0x60)" (( "(") (binary_expression "iStack_f4 + 0x60" (identifier "iStack_f4") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (binary_expression "iVar14 * -0x33333333 + -1" (binary_expression "iVar14 * -0x33333333" (identifier "iVar14") (* "*") (number_literal "-0x33333333")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "*(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;" (assignment_expression "*(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1" (pointer_expression "*(int *)(iStack_f4 + 100)" (* "*") (cast_expression "(int *)(iStack_f4 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_f4 + 100)" (( "(") (binary_expression "iStack_f4 + 100" (identifier "iStack_f4") (+ "+") (number_literal "100")) () ")")))) (= "=") (binary_expression "*(int *)(iStack_f4 + 100) + 1" (pointer_expression "*(int *)(iStack_f4 + 100)" (* "*") (cast_expression "(int *)(iStack_f4 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_f4 + 100)" (( "(") (binary_expression "iStack_f4 + 100" (identifier "iStack_f4") (+ "+") (number_literal "100")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar21 = *(code **)(pcStack_100 + -0x7810);" (assignment_expression "pcVar21 = *(code **)(pcStack_100 + -0x7810)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcStack_100 + -0x7810)" (* "*") (cast_expression "(code **)(pcStack_100 + -0x7810)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_100 + -0x7810)" (( "(") (binary_expression "pcStack_100 + -0x7810" (identifier "pcStack_100") (+ "+") (number_literal "-0x7810")) () ")"))))) (; ";")) (expression_statement "pcVar22 = FUN_0025578c;" (assignment_expression "pcVar22 = FUN_0025578c" (identifier "pcVar22") (= "=") (identifier "FUN_0025578c")) (; ";")) (expression_statement "iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;" (assignment_expression "iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574" (identifier "iVar14") (= "=") (binary_expression "*(int *)(pcStack_100 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_100 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_100 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_100 + -0x7fc4)" (( "(") (binary_expression "pcStack_100 + -0x7fc4" (identifier "pcStack_100") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "0x3574"))) (; ";")) (expression_statement "(*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c)" (( "(") (identifier "iVar14") (, ",") (number_literal "0x231") (, ",") (binary_expression "*(int *)(pcStack_100 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_100 + -0x7924)" (* "*") (cast_expression "(int *)(pcStack_100 + -0x7924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_100 + -0x7924)" (( "(") (binary_expression "pcStack_100 + -0x7924" (identifier "pcStack_100") (+ "+") (number_literal "-0x7924")) () ")")))) (+ "+") (number_literal "-0x2b1c")) () ")"))) (; ";")) (expression_statement "pcStack_160 = pcVar21 + 0x273ab4;" (assignment_expression "pcStack_160 = pcVar21 + 0x273ab4" (identifier "pcStack_160") (= "=") (binary_expression "pcVar21 + 0x273ab4" (identifier "pcVar21") (+ "+") (number_literal "0x273ab4"))) (; ";")) (expression_statement "uStack_170 = uStack_110;" (assignment_expression "uStack_170 = uStack_110" (identifier "uStack_170") (= "=") (identifier "uStack_110")) (; ";")) (expression_statement "uStack_168 = 0;" (assignment_expression "uStack_168 = 0" (identifier "uStack_168") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_16c = uStack_10c;" (assignment_expression "uStack_16c = uStack_10c" (identifier "uStack_16c") (= "=") (identifier "uStack_10c")) (; ";")) (expression_statement "ppuStack_130 = &puStack_f8;" (assignment_expression "ppuStack_130 = &puStack_f8" (identifier "ppuStack_130") (= "=") (pointer_expression "&puStack_f8" (& "&") (identifier "puStack_f8"))) (; ";")) (expression_statement "iStack_12c = iVar13;" (assignment_expression "iStack_12c = iVar13" (identifier "iStack_12c") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "iStack_128 = iVar12;" (assignment_expression "iStack_128 = iVar12" (identifier "iStack_128") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "pcStack_124 = pcVar22;" (assignment_expression "pcStack_124 = pcVar22" (identifier "pcStack_124") (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "(**(code **)(pcVar21 + 0x26c80c))(&uStack_158);" (call_expression "(**(code **)(pcVar21 + 0x26c80c))(&uStack_158)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26c80c))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0x26c80c)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0x26c80c)" (* "*") (cast_expression "(code **)(pcVar21 + 0x26c80c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x26c80c)" (( "(") (binary_expression "pcVar21 + 0x26c80c" (identifier "pcVar21") (+ "+") (number_literal "0x26c80c")) () ")"))))) () ")")) (argument_list "(&uStack_158)" (( "(") (pointer_expression "&uStack_158" (& "&") (identifier "uStack_158")) () ")"))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)(iVar14 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar14 + 0x3c)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(iVar14 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar14 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 0x3c)" (( "(") (binary_expression "iVar14 + 0x3c" (identifier "iVar14") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "uStack_134 = uStack_104;" (assignment_expression "uStack_134 = uStack_104" (identifier "uStack_134") (= "=") (identifier "uStack_104")) (; ";")) (expression_statement "uStack_138 = uStack_108;" (assignment_expression "uStack_138 = uStack_108" (identifier "uStack_138") (= "=") (identifier "uStack_108")) (; ";")) (if_statement "if (puVar11 == *(undefined4 **)(iVar14 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }" (if "if") (parenthesized_expression "(puVar11 == *(undefined4 **)(iVar14 + 0x40))" (( "(") (binary_expression "puVar11 == *(undefined4 **)(iVar14 + 0x40)" (identifier "puVar11") (== "==") (pointer_expression "*(undefined4 **)(iVar14 + 0x40)" (* "*") (cast_expression "(undefined4 **)(iVar14 + 0x40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (compound_statement "{\n    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);\n    puVar11 = *(undefined4 **)(iVar14 + 0x3c);\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);" (call_expression "(**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158)" (parenthesized_expression "(**(code **)(pcStack_160 + -0x5cb0))" (( "(") (pointer_expression "**(code **)(pcStack_160 + -0x5cb0)" (* "*") (pointer_expression "*(code **)(pcStack_160 + -0x5cb0)" (* "*") (cast_expression "(code **)(pcStack_160 + -0x5cb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_160 + -0x5cb0)" (( "(") (binary_expression "pcStack_160 + -0x5cb0" (identifier "pcStack_160") (+ "+") (number_literal "-0x5cb0")) () ")"))))) () ")")) (argument_list "(iVar14 + 0x38,puVar11,&uStack_158)" (( "(") (binary_expression "iVar14 + 0x38" (identifier "iVar14") (+ "+") (number_literal "0x38")) (, ",") (identifier "puVar11") (, ",") (pointer_expression "&uStack_158" (& "&") (identifier "uStack_158")) () ")"))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)(iVar14 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar14 + 0x3c)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(iVar14 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar14 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 0x3c)" (( "(") (binary_expression "iVar14 + 0x3c" (identifier "iVar14") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }" (else "else") (compound_statement "{\n    puVar1 = puVar11;\n    puVar4 = &uStack_158;\n    do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);\n    puVar11 = puVar11 + 10;\n    uVar3 = puVar8[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar14 + 0x3c) = puVar11;\n  }" ({ "{") (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" (identifier "puVar1") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar4 = &uStack_158;" (assignment_expression "puVar4 = &uStack_158" (identifier "puVar4") (= "=") (pointer_expression "&uStack_158" (& "&") (identifier "uStack_158"))) (; ";")) (do_statement "do {\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_138);" (do "do") (compound_statement "{\n      puVar8 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar8 + 4;\n      uVar19 = puVar8[1];\n      uVar15 = puVar8[2];\n      uVar3 = puVar8[3];\n      *puVar2 = *puVar8;\n      puVar2[1] = uVar19;\n      puVar2[2] = uVar15;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" ({ "{") (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" (identifier "puVar8") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" (identifier "puVar2") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar4 = puVar8 + 4;" (assignment_expression "puVar4 = puVar8 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar19 = puVar8[1];" (assignment_expression "uVar19 = puVar8[1]" (identifier "uVar19") (= "=") (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar15 = puVar8[2];" (assignment_expression "uVar15 = puVar8[2]" (identifier "uVar15") (= "=") (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar3 = puVar8[3];" (assignment_expression "uVar3 = puVar8[3]" (identifier "uVar3") (= "=") (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar2 = *puVar8;" (assignment_expression "*puVar2 = *puVar8" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "puVar2[1] = uVar19;" (assignment_expression "puVar2[1] = uVar19" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar2[2] = uVar15;" (assignment_expression "puVar2[2] = uVar15" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "puVar2[3] = uVar3;" (assignment_expression "puVar2[3] = uVar3" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "puVar1 = puVar2 + 4;" (assignment_expression "puVar1 = puVar2 + 4" (identifier "puVar1") (= "=") (binary_expression "puVar2 + 4" (identifier "puVar2") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar4 != &uStack_138)" (( "(") (binary_expression "puVar4 != &uStack_138" (identifier "puVar4") (!= "!=") (pointer_expression "&uStack_138" (& "&") (identifier "uStack_138"))) () ")")) (; ";")) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 10" (identifier "puVar11") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "uVar3 = puVar8[5];" (assignment_expression "uVar3 = puVar8[5]" (identifier "uVar3") (= "=") (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar2[4] = *puVar4;" (assignment_expression "puVar2[4] = *puVar4" (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "puVar2[5] = uVar3;" (assignment_expression "puVar2[5] = uVar3" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(undefined4 **)(iVar14 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(iVar14 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(iVar14 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar14 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 0x3c)" (( "(") (binary_expression "iVar14 + 0x3c" (identifier "iVar14") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (} "}")))) (expression_statement "iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3;" (assignment_expression "iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3" (identifier "iVar12") (= "=") (binary_expression "(int)puVar11 - *(int *)(iVar14 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(iVar14 + 0x38)" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (- "-") (pointer_expression "*(int *)(iVar14 + 0x38)" (* "*") (cast_expression "(int *)(iVar14 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x38)" (( "(") (binary_expression "iVar14 + 0x38" (identifier "iVar14") (+ "+") (number_literal "0x38")) () ")"))))) (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if (-1 < *(int *)(iVar14 + 0x20) << 1) {\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(-1 < *(int *)(iVar14 + 0x20) << 1)" (( "(") (binary_expression "-1 < *(int *)(iVar14 + 0x20) << 1" (number_literal "-1") (< "<") (binary_expression "*(int *)(iVar14 + 0x20) << 1" (pointer_expression "*(int *)(iVar14 + 0x20)" (* "*") (cast_expression "(int *)(iVar14 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x20)" (( "(") (binary_expression "iVar14 + 0x20" (identifier "iVar14") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "1"))) () ")")) (compound_statement "{\n    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar14 + 0x10) = 0;\n    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }" ({ "{") (expression_statement "*(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;" (assignment_expression "*(int *)(iVar14 + 0x14) = iVar12 * 0x33333338" (pointer_expression "*(int *)(iVar14 + 0x14)" (* "*") (cast_expression "(int *)(iVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar12 * 0x33333338" (identifier "iVar12") (* "*") (number_literal "0x33333338"))) (; ";")) (expression_statement "*(undefined4 *)(iVar14 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar14 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar14 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x10)" (( "(") (binary_expression "iVar14 + 0x10" (identifier "iVar14") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;" (assignment_expression "puVar18[0x20] = puVar18[0x20] & 0xf7 | 8" (subscript_expression "puVar18[0x20]" (identifier "puVar18") ([ "[") (number_literal "0x20") (] "]")) (= "=") (binary_expression "puVar18[0x20] & 0xf7 | 8" (binary_expression "puVar18[0x20] & 0xf7" (subscript_expression "puVar18[0x20]" (identifier "puVar18") ([ "[") (number_literal "0x20") (] "]")) (& "&") (number_literal "0xf7")) (| "|") (number_literal "8"))) (; ";")) (if_statement "if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }" (if "if") (parenthesized_expression "(iStack_144 << 0x1c < 0)" (( "(") (binary_expression "iStack_144 << 0x1c < 0" (binary_expression "iStack_144 << 0x1c" (identifier "iStack_144") (<< "<<") (number_literal "0x1c")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;\n    }" ({ "{") (expression_statement "*(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;" (assignment_expression "*(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1" (pointer_expression "*(int *)(iVar14 + 0x30)" (* "*") (cast_expression "(int *)(iVar14 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x30)" (( "(") (binary_expression "iVar14 + 0x30" (identifier "iVar14") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "*(int *)(iVar14 + 0x30) + 1" (pointer_expression "*(int *)(iVar14 + 0x30)" (* "*") (cast_expression "(int *)(iVar14 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x30)" (( "(") (binary_expression "iVar14 + 0x30" (identifier "iVar14") (+ "+") (number_literal "0x30")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }" (if "if") (parenthesized_expression "((iStack_140 != -4) && (iStack_154 != 0))" (( "(") (binary_expression "(iStack_140 != -4) && (iStack_154 != 0)" (parenthesized_expression "(iStack_140 != -4)" (( "(") (binary_expression "iStack_140 != -4" (identifier "iStack_140") (!= "!=") (number_literal "-4")) () ")")) (&& "&&") (parenthesized_expression "(iStack_154 != 0)" (( "(") (binary_expression "iStack_154 != 0" (identifier "iStack_154") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }" ({ "{") (if_statement "if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }" (if "if") (parenthesized_expression "(*(int *)(iStack_154 + 100) == 0)" (( "(") (binary_expression "*(int *)(iStack_154 + 100) == 0" (pointer_expression "*(int *)(iStack_154 + 100)" (* "*") (cast_expression "(int *)(iStack_154 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_154 + 100)" (( "(") (binary_expression "iStack_154 + 100" (identifier "iStack_154") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;\n      }" ({ "{") (expression_statement "*(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_154 + 0x60)" (* "*") (cast_expression "(int *)(iStack_154 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_154 + 0x60)" (( "(") (binary_expression "iStack_154 + 0x60" (identifier "iStack_154") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (binary_expression "iVar12 * -0x33333333 + -1" (binary_expression "iVar12 * -0x33333333" (identifier "iVar12") (* "*") (number_literal "-0x33333333")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "*(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;" (assignment_expression "*(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1" (pointer_expression "*(int *)(iStack_154 + 100)" (* "*") (cast_expression "(int *)(iStack_154 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_154 + 100)" (( "(") (binary_expression "iStack_154 + 100" (identifier "iStack_154") (+ "+") (number_literal "100")) () ")")))) (= "=") (binary_expression "*(int *)(iStack_154 + 100) + 1" (pointer_expression "*(int *)(iStack_154 + 100)" (* "*") (cast_expression "(int *)(iStack_154 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_154 + 100)" (( "(") (binary_expression "iStack_154 + 100" (identifier "iStack_154") (+ "+") (number_literal "100")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar21 = *(code **)(pcStack_160 + -0x7810);" (assignment_expression "pcVar21 = *(code **)(pcStack_160 + -0x7810)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(pcStack_160 + -0x7810)" (* "*") (cast_expression "(code **)(pcStack_160 + -0x7810)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_160 + -0x7810)" (( "(") (binary_expression "pcStack_160 + -0x7810" (identifier "pcStack_160") (+ "+") (number_literal "-0x7810")) () ")"))))) (; ";")) (expression_statement "iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;" (assignment_expression "iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c" (identifier "iVar13") (= "=") (binary_expression "*(int *)(pcStack_160 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_160 + -0x7924)" (* "*") (cast_expression "(int *)(pcStack_160 + -0x7924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_160 + -0x7924)" (( "(") (binary_expression "pcStack_160 + -0x7924" (identifier "pcStack_160") (+ "+") (number_literal "-0x7924")) () ")")))) (+ "+") (number_literal "-0x2b1c"))) (; ";")) (expression_statement "pcVar22 = FUN_00255938;" (assignment_expression "pcVar22 = FUN_00255938" (identifier "pcVar22") (= "=") (identifier "FUN_00255938")) (; ";")) (expression_statement "iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;" (assignment_expression "iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574" (identifier "iVar12") (= "=") (binary_expression "*(int *)(pcStack_160 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_160 + -0x7fc4)" (* "*") (cast_expression "(int *)(pcStack_160 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_160 + -0x7fc4)" (( "(") (binary_expression "pcStack_160 + -0x7fc4" (identifier "pcStack_160") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "0x3574"))) (; ";")) (expression_statement "(*pcVar21)(iVar12,0x231);" (call_expression "(*pcVar21)(iVar12,0x231)" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "(iVar12,0x231)" (( "(") (identifier "iVar12") (, ",") (number_literal "0x231") () ")"))) (; ";")) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = uStack_168;" (assignment_expression "uVar3 = uStack_168" (identifier "uVar3") (= "=") (identifier "uStack_168")) (; ";")) (expression_statement "puStack_190 = &uStack_158;" (assignment_expression "puStack_190 = &uStack_158" (identifier "puStack_190") (= "=") (pointer_expression "&uStack_158" (& "&") (identifier "uStack_158"))) (; ";")) (expression_statement "iStack_18c = iVar14;" (assignment_expression "iStack_18c = iVar14" (identifier "iStack_18c") (= "=") (identifier "iVar14")) (; ";")) (expression_statement "puStack_188 = puVar18;" (assignment_expression "puStack_188 = puVar18" (identifier "puStack_188") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "pcStack_184 = pcVar22;" (assignment_expression "pcStack_184 = pcVar22" (identifier "pcStack_184") (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "(**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8);" (call_expression "(**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26e844))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0x26e844)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0x26e844)" (* "*") (cast_expression "(code **)(pcVar21 + 0x26e844)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x26e844)" (( "(") (binary_expression "pcVar21 + 0x26e844" (identifier "pcVar21") (+ "+") (number_literal "0x26e844")) () ")"))))) () ")")) (argument_list "(&pcStack_1b8)" (( "(") (pointer_expression "&pcStack_1b8" (& "&") (identifier "pcStack_1b8")) () ")"))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)(iVar12 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar12 + 0x3c)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(iVar12 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar12 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "uStack_194 = uStack_15c;" (assignment_expression "uStack_194 = uStack_15c" (identifier "uStack_194") (= "=") (identifier "uStack_15c")) (; ";")) (expression_statement "pcStack_198 = pcStack_160;" (assignment_expression "pcStack_198 = pcStack_160" (identifier "pcStack_198") (= "=") (identifier "pcStack_160")) (; ";")) (if_statement "if (puVar11 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }" (if "if") (parenthesized_expression "(puVar11 == *(undefined4 **)(iVar12 + 0x40))" (( "(") (binary_expression "puVar11 == *(undefined4 **)(iVar12 + 0x40)" (identifier "puVar11") (== "==") (pointer_expression "*(undefined4 **)(iVar12 + 0x40)" (* "*") (cast_expression "(undefined4 **)(iVar12 + 0x40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 0x40)" (( "(") (binary_expression "iVar12 + 0x40" (identifier "iVar12") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (compound_statement "{\n    (**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);\n    puVar11 = *(undefined4 **)(iVar12 + 0x3c);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);" (call_expression "(**(code **)(pcVar21 + 0x26dc58))\n              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26dc58))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0x26dc58)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0x26dc58)" (* "*") (cast_expression "(code **)(pcVar21 + 0x26dc58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x26dc58)" (( "(") (binary_expression "pcVar21 + 0x26dc58" (identifier "pcVar21") (+ "+") (number_literal "0x26dc58")) () ")"))))) () ")")) (argument_list "(iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15)" (( "(") (binary_expression "iVar12 + 0x38" (identifier "iVar12") (+ "+") (number_literal "0x38")) (, ",") (identifier "puVar11") (, ",") (pointer_expression "&pcStack_1b8" (& "&") (identifier "pcStack_1b8")) (, ",") (identifier "uStack_15c") (, ",") (identifier "uVar3") (, ",") (identifier "uStack_164") (, ",") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "puVar11 = *(undefined4 **)(iVar12 + 0x3c);" (assignment_expression "puVar11 = *(undefined4 **)(iVar12 + 0x3c)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined4 **)(iVar12 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar12 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }" (else "else") (compound_statement "{\n    puVar1 = puVar11;\n    ppcVar10 = &pcStack_1b8;\n    do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);\n    puVar11 = puVar11 + 10;\n    pcVar22 = ppcVar9[5];\n    puVar4[4] = *ppcVar10;\n    puVar4[5] = pcVar22;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar11;\n  }" ({ "{") (expression_statement "puVar1 = puVar11;" (assignment_expression "puVar1 = puVar11" (identifier "puVar1") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "ppcVar10 = &pcStack_1b8;" (assignment_expression "ppcVar10 = &pcStack_1b8" (identifier "ppcVar10") (= "=") (pointer_expression "&pcStack_1b8" (& "&") (identifier "pcStack_1b8"))) (; ";")) (do_statement "do {\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar10 != &pcStack_198);" (do "do") (compound_statement "{\n      ppcVar9 = ppcVar10;\n      puVar4 = puVar1;\n      ppcVar10 = ppcVar9 + 4;\n      pcVar20 = ppcVar9[1];\n      pcVar17 = ppcVar9[2];\n      pcVar22 = ppcVar9[3];\n      *puVar4 = *ppcVar9;\n      puVar4[1] = pcVar20;\n      puVar4[2] = pcVar17;\n      puVar4[3] = pcVar22;\n      puVar1 = puVar4 + 4;\n    }" ({ "{") (expression_statement "ppcVar9 = ppcVar10;" (assignment_expression "ppcVar9 = ppcVar10" (identifier "ppcVar9") (= "=") (identifier "ppcVar10")) (; ";")) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" (identifier "puVar4") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "ppcVar10 = ppcVar9 + 4;" (assignment_expression "ppcVar10 = ppcVar9 + 4" (identifier "ppcVar10") (= "=") (binary_expression "ppcVar9 + 4" (identifier "ppcVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pcVar20 = ppcVar9[1];" (assignment_expression "pcVar20 = ppcVar9[1]" (identifier "pcVar20") (= "=") (subscript_expression "ppcVar9[1]" (identifier "ppcVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar17 = ppcVar9[2];" (assignment_expression "pcVar17 = ppcVar9[2]" (identifier "pcVar17") (= "=") (subscript_expression "ppcVar9[2]" (identifier "ppcVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar22 = ppcVar9[3];" (assignment_expression "pcVar22 = ppcVar9[3]" (identifier "pcVar22") (= "=") (subscript_expression "ppcVar9[3]" (identifier "ppcVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar4 = *ppcVar9;" (assignment_expression "*puVar4 = *ppcVar9" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*ppcVar9" (* "*") (identifier "ppcVar9"))) (; ";")) (expression_statement "puVar4[1] = pcVar20;" (assignment_expression "puVar4[1] = pcVar20" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "pcVar20")) (; ";")) (expression_statement "puVar4[2] = pcVar17;" (assignment_expression "puVar4[2] = pcVar17" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "pcVar17")) (; ";")) (expression_statement "puVar4[3] = pcVar22;" (assignment_expression "puVar4[3] = pcVar22" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" (identifier "puVar1") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppcVar10 != &pcStack_198)" (( "(") (binary_expression "ppcVar10 != &pcStack_198" (identifier "ppcVar10") (!= "!=") (pointer_expression "&pcStack_198" (& "&") (identifier "pcStack_198"))) () ")")) (; ";")) (expression_statement "puVar11 = puVar11 + 10;" (assignment_expression "puVar11 = puVar11 + 10" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 10" (identifier "puVar11") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "pcVar22 = ppcVar9[5];" (assignment_expression "pcVar22 = ppcVar9[5]" (identifier "pcVar22") (= "=") (subscript_expression "ppcVar9[5]" (identifier "ppcVar9") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar4[4] = *ppcVar10;" (assignment_expression "puVar4[4] = *ppcVar10" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*ppcVar10" (* "*") (identifier "ppcVar10"))) (; ";")) (expression_statement "puVar4[5] = pcVar22;" (assignment_expression "puVar4[5] = pcVar22" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "*(undefined4 **)(iVar12 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(iVar12 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(iVar12 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar12 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 0x3c)" (( "(") (binary_expression "iVar12 + 0x3c" (identifier "iVar12") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (} "}")))) (expression_statement "iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3;" (assignment_expression "iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3" (identifier "iVar14") (= "=") (binary_expression "(int)puVar11 - *(int *)(iVar12 + 0x38) >> 3" (binary_expression "(int)puVar11 - *(int *)(iVar12 + 0x38)" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (- "-") (pointer_expression "*(int *)(iVar12 + 0x38)" (* "*") (cast_expression "(int *)(iVar12 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x38)" (( "(") (binary_expression "iVar12 + 0x38" (identifier "iVar12") (+ "+") (number_literal "0x38")) () ")"))))) (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(-1 < *(int *)(iVar12 + 0x20) << 1)" (( "(") (binary_expression "-1 < *(int *)(iVar12 + 0x20) << 1" (number_literal "-1") (< "<") (binary_expression "*(int *)(iVar12 + 0x20) << 1" (pointer_expression "*(int *)(iVar12 + 0x20)" (* "*") (cast_expression "(int *)(iVar12 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "1"))) () ")")) (compound_statement "{\n    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }" ({ "{") (expression_statement "*(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;" (assignment_expression "*(int *)(iVar12 + 0x14) = iVar14 * 0x33333338" (pointer_expression "*(int *)(iVar12 + 0x14)" (* "*") (cast_expression "(int *)(iVar12 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x14)" (( "(") (binary_expression "iVar12 + 0x14" (identifier "iVar12") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar14 * 0x33333338" (identifier "iVar14") (* "*") (number_literal "0x33333338"))) (; ";")) (expression_statement "*(undefined4 *)(iVar12 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar13 + 0x20)" (* "*") (cast_expression "(byte *)(iVar13 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x20)" (( "(") (binary_expression "iVar13 + 0x20" (identifier "iVar13") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar13 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar13 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar13 + 0x20)" (* "*") (cast_expression "(byte *)(iVar13 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x20)" (( "(") (binary_expression "iVar13 + 0x20" (identifier "iVar13") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "0xf7")) (| "|") (number_literal "8"))) (; ";")) (if_statement "if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }" (if "if") (parenthesized_expression "(iStack_1a4 << 0x1c < 0)" (( "(") (binary_expression "iStack_1a4 << 0x1c < 0" (binary_expression "iStack_1a4 << 0x1c" (identifier "iStack_1a4") (<< "<<") (number_literal "0x1c")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }" ({ "{") (expression_statement "*(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;" (assignment_expression "*(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1" (pointer_expression "*(int *)(iVar12 + 0x30)" (* "*") (cast_expression "(int *)(iVar12 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x30)" (( "(") (binary_expression "iVar12 + 0x30" (identifier "iVar12") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "*(int *)(iVar12 + 0x30) + 1" (pointer_expression "*(int *)(iVar12 + 0x30)" (* "*") (cast_expression "(int *)(iVar12 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x30)" (( "(") (binary_expression "iVar12 + 0x30" (identifier "iVar12") (+ "+") (number_literal "0x30")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }" (if "if") (parenthesized_expression "((iStack_1a0 != -4) && (iStack_1b4 != 0))" (( "(") (binary_expression "(iStack_1a0 != -4) && (iStack_1b4 != 0)" (parenthesized_expression "(iStack_1a0 != -4)" (( "(") (binary_expression "iStack_1a0 != -4" (identifier "iStack_1a0") (!= "!=") (number_literal "-4")) () ")")) (&& "&&") (parenthesized_expression "(iStack_1b4 != 0)" (( "(") (binary_expression "iStack_1b4 != 0" (identifier "iStack_1b4") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }" ({ "{") (if_statement "if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }" (if "if") (parenthesized_expression "(*(int *)(iStack_1b4 + 100) == 0)" (( "(") (binary_expression "*(int *)(iStack_1b4 + 100) == 0" (pointer_expression "*(int *)(iStack_1b4 + 100)" (* "*") (cast_expression "(int *)(iStack_1b4 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_1b4 + 100)" (( "(") (binary_expression "iStack_1b4 + 100" (identifier "iStack_1b4") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;\n      }" ({ "{") (expression_statement "*(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_1b4 + 0x60)" (* "*") (cast_expression "(int *)(iStack_1b4 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_1b4 + 0x60)" (( "(") (binary_expression "iStack_1b4 + 0x60" (identifier "iStack_1b4") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (binary_expression "iVar14 * -0x33333333 + -1" (binary_expression "iVar14 * -0x33333333" (identifier "iVar14") (* "*") (number_literal "-0x33333333")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "*(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;" (assignment_expression "*(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1" (pointer_expression "*(int *)(iStack_1b4 + 100)" (* "*") (cast_expression "(int *)(iStack_1b4 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_1b4 + 100)" (( "(") (binary_expression "iStack_1b4 + 100" (identifier "iStack_1b4") (+ "+") (number_literal "100")) () ")")))) (= "=") (binary_expression "*(int *)(iStack_1b4 + 100) + 1" (pointer_expression "*(int *)(iStack_1b4 + 100)" (* "*") (cast_expression "(int *)(iStack_1b4 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_1b4 + 100)" (( "(") (binary_expression "iStack_1b4 + 100" (identifier "iStack_1b4") (+ "+") (number_literal "100")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c);" (call_expression "(**(code **)(pcVar21 + 0x26c0f8))\n            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c)" (parenthesized_expression "(**(code **)(pcVar21 + 0x26c0f8))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0x26c0f8)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0x26c0f8)" (* "*") (cast_expression "(code **)(pcVar21 + 0x26c0f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x26c0f8)" (( "(") (binary_expression "pcVar21 + 0x26c0f8" (identifier "pcVar21") (+ "+") (number_literal "0x26c0f8")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c)" (( "(") (binary_expression "*(int *)(pcVar21 + 0x26b944) + 0x3574" (pointer_expression "*(int *)(pcVar21 + 0x26b944)" (* "*") (cast_expression "(int *)(pcVar21 + 0x26b944)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0x26b944)" (( "(") (binary_expression "pcVar21 + 0x26b944" (identifier "pcVar21") (+ "+") (number_literal "0x26b944")) () ")")))) (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0x231") (, ",") (binary_expression "*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c" (pointer_expression "*(int *)(pcVar21 + 0x26bfe4)" (* "*") (cast_expression "(int *)(pcVar21 + 0x26bfe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0x26bfe4)" (( "(") (binary_expression "pcVar21 + 0x26bfe4" (identifier "pcVar21") (+ "+") (number_literal "0x26bfe4")) () ")")))) (+ "+") (number_literal "-0x2b1c")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* DWARF original prototype: void add_relative(Output_data_reloc<4,_true,_64,_true> * this, uint
   type, Output_data * od, Sized_relobj<64,_true> * relobj, uint shndx, Address address, Addend
   addend) */

void __thiscall
var_3::var_2<4,var_7,_64,var_7>::add_relative
          (var_2<4,var_7,_64,var_7> *this,type_6 type,type_8 *od,
          var_1<64,var_7> *relobj,type_6 shndx,type_9 address,type_10 addend)

{
  type_2 *puVar1;
  type_1 pOVar2;
  type_1 pOVar3;
  type_2 *var_23;
  int *var_107;
  type_3 aVar6;
  type_2 uVar7;
  int *var_105;
  type_3 *var_9;
  type_3 *var_10;
  type_4 *var_19;
  type_2 *var_24;
  type_4 **var_31;
  type_4 **var_32;
  type_5 **var_43;
  type_5 **var_42;
  type_2 *var_22;
  int *var_104;
  int *piVar19;
  type_1 var_11;
  int var_12;
  type_2 *var_20;
  int var_25;
  int var_33;
  int var_58;
  type_6 var_103;
  type_3 aVar27;
  type_2 uVar28;
  type_4 *puVar29;
  type_5 *var_52;
  type_5 *pcVar31;
  type_6 uVar32;
  var_1<64,var_7> *pSVar33;
  type_4 *var_18;
  type_2 uVar35;
  int *var_109;
  type_5 *var_29;
  type_5 *var_47;
  type_6 var_108;
  type_2 uStack_728;
  int var_102;
  int var_100;
  int var_101;
  type_2 uStack_708;
  type_2 uStack_704;
  type_2 *puStack_700;
  int iStack_6fc;
  int iStack_6f8;
  type_5 *pcStack_6f4;
  int iStack_6e0;
  type_2 uStack_6d8;
  type_2 uStack_6d4;
  type_2 uStack_6d0;
  type_2 uStack_6cc;
  type_2 uStack_6c8;
  type_2 uStack_6c4;
  type_5 *var_96;
  type_2 uStack_6b8;
  int var_99;
  int var_97;
  int var_98;
  type_2 uStack_698;
  type_2 uStack_694;
  type_2 *puStack_690;
  int iStack_68c;
  int iStack_688;
  type_5 *pcStack_684;
  int iStack_670;
  type_2 uStack_668;
  type_2 uStack_664;
  type_2 uStack_660;
  type_2 uStack_65c;
  type_2 uStack_658;
  type_2 uStack_654;
  type_5 *var_92;
  type_2 uStack_648;
  int var_95;
  int var_93;
  int var_94;
  type_2 uStack_628;
  type_2 uStack_624;
  type_2 *puStack_620;
  int iStack_61c;
  int iStack_618;
  type_5 *pcStack_614;
  int iStack_600;
  type_2 uStack_5f8;
  type_2 uStack_5f4;
  type_2 uStack_5f0;
  type_2 uStack_5ec;
  type_2 uStack_5e8;
  type_2 uStack_5e4;
  type_5 *var_88;
  type_2 uStack_5d8;
  int var_91;
  int var_89;
  int var_90;
  type_2 uStack_5b8;
  type_2 uStack_5b4;
  type_2 *puStack_5b0;
  int iStack_5ac;
  int iStack_5a8;
  type_5 *pcStack_5a4;
  int iStack_590;
  int iStack_58c;
  type_2 uStack_588;
  type_2 uStack_584;
  type_2 uStack_580;
  type_2 uStack_57c;
  type_6 uStack_578;
  type_5 *var_84;
  type_2 uStack_568;
  int var_87;
  int var_85;
  int var_86;
  type_2 uStack_548;
  type_2 uStack_544;
  type_2 *puStack_540;
  int iStack_53c;
  int iStack_538;
  type_5 *pcStack_534;
  type_2 uStack_520;
  int iStack_51c;
  type_2 uStack_518;
  type_2 uStack_514;
  type_2 uStack_510;
  type_2 uStack_50c;
  type_6 var_83;
  type_5 *var_79;
  type_2 uStack_4f8;
  int var_82;
  int var_80;
  int var_81;
  type_2 uStack_4d8;
  int iStack_4d4;
  type_2 *puStack_4d0;
  int iStack_4cc;
  int iStack_4c8;
  type_5 *pcStack_4c4;
  type_2 uStack_4b0;
  type_2 uStack_4ac;
  type_2 uStack_4a8;
  type_2 uStack_4a4;
  type_2 uStack_4a0;
  int iStack_49c;
  type_2 uStack_498;
  type_5 *var_75;
  type_2 uStack_488;
  int var_78;
  int var_76;
  int var_77;
  type_2 uStack_468;
  int iStack_464;
  type_2 *puStack_460;
  int iStack_45c;
  int iStack_458;
  type_5 *pcStack_454;
  type_2 uStack_440;
  type_2 uStack_43c;
  type_2 uStack_438;
  type_2 uStack_434;
  type_2 uStack_430;
  int iStack_42c;
  type_5 *var_71;
  type_2 uStack_420;
  int var_74;
  int var_72;
  int var_73;
  type_2 uStack_400;
  int iStack_3fc;
  type_2 *puStack_3f8;
  int iStack_3f4;
  int iStack_3f0;
  type_5 *pcStack_3ec;
  type_2 uStack_3d8;
  type_2 uStack_3d4;
  type_2 uStack_3d0;
  int iStack_3cc;
  type_6 uStack_3c8;
  type_5 *var_67;
  type_2 uStack_3b8;
  int var_70;
  int var_68;
  int var_69;
  type_2 uStack_398;
  int iStack_394;
  type_2 *puStack_390;
  int iStack_38c;
  int iStack_388;
  type_5 *pcStack_384;
  type_2 uStack_370;
  type_2 uStack_36c;
  type_2 uStack_368;
  int iStack_364;
  type_6 var_66;
  type_5 *var_62;
  type_2 uStack_350;
  int var_65;
  int var_63;
  int var_64;
  type_2 uStack_330;
  int iStack_32c;
  type_2 *puStack_328;
  int iStack_324;
  int iStack_320;
  type_5 *pcStack_31c;
  type_2 uStack_308;
  type_2 uStack_304;
  type_2 uStack_300;
  int iStack_2fc;
  type_2 uStack_2f8;
  type_5 *var_57;
  type_2 uStack_2e8;
  int var_61;
  int var_59;
  int var_60;
  type_2 uStack_2c8;
  int iStack_2c4;
  type_2 *puStack_2c0;
  int iStack_2bc;
  type_5 *pcStack_2b8;
  type_5 *pcStack_2b4;
  type_2 uStack_2a0;
  type_2 uStack_29c;
  type_2 uStack_298;
  int iStack_294;
  type_2 uStack_290;
  int iStack_28c;
  type_5 *var_53;
  type_2 uStack_280;
  int var_56;
  int var_54;
  int var_55;
  type_2 uStack_260;
  int iStack_25c;
  type_5 **ppcStack_258;
  int iStack_254;
  type_5 *pcStack_250;
  type_5 *pcStack_24c;
  type_2 uStack_238;
  type_2 uStack_234;
  type_2 uStack_230;
  int iStack_22c;
  type_2 uStack_228;
  int iStack_224;
  type_5 *var_48;
  type_5 *pcStack_218;
  int var_51;
  int var_49;
  int var_50;
  type_5 *pcStack_1f8;
  type_5 *pcStack_1f4;
  type_5 **ppcStack_1f0;
  int iStack_1ec;
  int iStack_1e8;
  type_5 *pcStack_1e4;
  type_2 uStack_1d0;
  type_2 uStack_1cc;
  type_2 uStack_1c8;
  int iStack_1c4;
  type_5 *var_41;
  type_5 *pcStack_1bc;
  type_5 *pcStack_1b8;
  int var_46;
  int var_44;
  int var_45;
  type_5 *pcStack_198;
  type_5 *pcStack_194;
  type_2 *puStack_190;
  int iStack_18c;
  type_4 *puStack_188;
  type_5 *pcStack_184;
  type_2 uStack_170;
  type_2 uStack_16c;
  type_2 uStack_168;
  type_2 uStack_164;
  type_5 *var_37;
  type_5 *pcStack_15c;
  type_2 uStack_158;
  int var_40;
  int var_38;
  int var_39;
  type_2 uStack_138;
  type_2 uStack_134;
  type_4 **ppuStack_130;
  int iStack_12c;
  int iStack_128;
  type_5 *pcStack_124;
  type_2 uStack_110;
  type_2 uStack_10c;
  type_2 uStack_108;
  type_2 uStack_104;
  type_5 *var_30;
  type_4 *puStack_f8;
  int var_36;
  int var_34;
  int var_35;
  type_4 *puStack_d8;
  type_4 *puStack_d4;
  type_2 *puStack_d0;
  type_4 *puStack_cc;
  var_1<64,var_7> *pSStack_c8;
  type_5 *pcStack_c4;
  type_7 uStack_b0;
  type_2 uStack_a8;
  type_2 uStack_a4;
  type_4 *var_21;
  type_4 *puStack_9c;
  type_2 uStack_98;
  int var_28;
  int var_26;
  int var_27;
  type_2 uStack_78;
  int iStack_74;
  type_3 *paStack_70;
  var_2<4,var_7,_64,var_7> *pOStack_6c;
  type_8 *pOStack_68;
  type_5 *pcStack_64;
  type_9 local_50;
  type_2 local_48;
  int iStack_44;
  type_3 local_38;
  int var_15;
  int var_13;
  int var_14;
  type_10 local_18;
  
  local_48 = 1;
  local_50 = address;
  (*(type_5 *)PTR_Output_reloc_004c417c)(&local_38,type,relobj,shndx);
  var_11 = (this->super_Output_data_reloc_base<4,var_7,_64,var_7>).relocs_.
            super__Vector_base<var_3::var_6<4,var_7,_64,var_7>,var_4::allocator<var_3::var_6<4,var_7,_64,var_7>var_5>var_5>
            ._M_impl._M_finish;
  local_18 = addend;
  if (var_11 ==
      (this->super_Output_data_reloc_base<4,var_7,_64,var_7>).relocs_.
      super__Vector_base<var_3::var_6<4,var_7,_64,var_7>,var_4::allocator<var_3::var_6<4,var_7,_64,var_7>var_5>var_5>
      ._M_impl._M_end_of_storage) {
    (*(type_5 *)PTR__M_realloc_insert<var_8<4,var_7,_64,var_7>&>_004c3590)
              (&(this->super_Output_data_reloc_base<4,var_7,_64,var_7>).relocs_,var_11,&local_38);
    var_11 = (this->super_Output_data_reloc_base<4,var_7,_64,var_7>).relocs_.
              super__Vector_base<var_3::var_6<4,var_7,_64,var_7>,var_4::allocator<var_3::var_6<4,var_7,_64,var_7>var_5>var_5>
              ._M_impl._M_finish;
    pSVar33 = addend._4_4_;
    addend = local_18;
  }
  else {
    pOVar3 = var_11;
    var_10 = &local_38;
    do {
      var_9 = var_10;
      pOVar2 = pOVar3;
      var_10 = var_9 + 4;
      pOVar3 = (type_1)&(pOVar2->rel_).local_sym_index_;
      pSVar33 = var_9[1].relobj;
      aVar27 = var_9[2];
      aVar6 = var_9[3];
      (pOVar2->rel_).u1_ = *var_9;
      (pOVar2->rel_).u2_.relobj = pSVar33;
      *(type_3 *)&(pOVar2->rel_).address_ = aVar27;
      *(type_3 *)((int)&(pOVar2->rel_).address_ + 4) = aVar6;
    } while (var_10 != (type_3 *)&local_18);
    var_11 = var_11 + 1;
    aVar6 = var_9[5];
    *(type_3 *)pOVar3 = *var_10;
    *(type_3 *)&(pOVar2->rel_).field_0x14 = aVar6;
    (this->super_Output_data_reloc_base<4,var_7,_64,var_7>).relocs_.
    super__Vector_base<var_3::var_6<4,var_7,_64,var_7>,var_4::allocator<var_3::var_6<4,var_7,_64,var_7>var_5>var_5>
    ._M_impl._M_finish = var_11;
  }
  var_12 = (int)var_11 -
           (int)(this->super_Output_data_reloc_base<4,var_7,_64,var_7>).relocs_.
                super__Vector_base<var_3::var_6<4,var_7,_64,var_7>,var_4::allocator<var_3::var_6<4,var_7,_64,var_7>var_5>var_5>
                ._M_impl._M_start >> 3;
  if (-1 < *(int *)&(this->super_Output_data_reloc_base<4,var_7,_64,var_7>).
                    super_Output_data_reloc_generic.super_Output_section_data_build.
                    super_Output_section_data.super_Output_data.field_0x20 << 1) {
    *(int *)((int)&(this->super_Output_data_reloc_base<4,var_7,_64,var_7>).
                   super_Output_data_reloc_generic.super_Output_section_data_build.
                   super_Output_section_data.super_Output_data.data_size_ + 4) = var_12 * 0x33333338
    ;
    *(type_2 *)
     &(this->super_Output_data_reloc_base<4,var_7,_64,var_7>).super_Output_data_reloc_generic.
      super_Output_section_data_build.super_Output_section_data.super_Output_data.data_size_ = 0;
    od->field_0x20 = od->field_0x20 & 0xf7 | 8;
    if (var_13 << 0x1c < 0) {
      (this->super_Output_data_reloc_base<4,var_7,_64,var_7>).super_Output_data_reloc_generic.
      relative_reloc_count_ =
           (this->super_Output_data_reloc_base<4,var_7,_64,var_7>).super_Output_data_reloc_generic.
           relative_reloc_count_ + 1;
    }
    if ((var_14 != -4) && (var_15 != 0)) {
      if (*(int *)(var_15 + 100) == 0) {
        *(int *)(var_15 + 0x60) = var_12 * -0x33333333 + -1;
      }
      *(int *)(var_15 + 100) = *(int *)(var_15 + 100) + 1;
    }
    return;
  }
  var_29 = add_output_section;
  var_19 = var_16 + 0x3574;
  var_18 = PTR_do_gold_unreachable_004c1a30;
  local_18 = addend;
  (*(type_5 *)PTR_do_gold_unreachable_004c1a30)
            (var_19,0x231,var_17 + -0x2b1c);
  var_21 = var_18 + 0x273e14;
  uStack_a8 = 0;
  paStack_70 = &local_38;
  pOStack_6c = this;
  pOStack_68 = od;
  pcStack_64 = var_29;
  uStack_b0 = local_50;
  (**(type_5 **)(var_18 + 0x26cb6c))(&uStack_98);
  var_20 = *(type_2 **)(var_19 + 0x3c);
  iStack_74 = iStack_44;
  uStack_78 = local_48;
  if (var_20 == *(type_2 **)(var_19 + 0x40)) {
    (**(type_5 **)(var_21 + -0x5cb0))(var_19 + 0x38,var_20,&uStack_98);
    var_20 = *(type_2 **)(var_19 + 0x3c);
    var_12 = iStack_44;
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_98;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      var_12 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = var_12;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_78);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_19 + 0x3c) = var_20;
  }
  var_25 = (int)var_20 - *(int *)(var_19 + 0x38) >> 3;
  if (-1 < *(int *)(var_19 + 0x20) << 1) {
    *(int *)(var_19 + 0x14) = var_25 * 0x33333338;
    *(type_2 *)(var_19 + 0x10) = 0;
    *(type_11 *)&(pSVar33->super_Relobj).super_Object.offset_ =
         *(type_11 *)&(pSVar33->super_Relobj).super_Object.offset_ & 0xf7 | 8;
    if (var_26 << 0x1c < 0) {
      *(int *)(var_19 + 0x30) = *(int *)(var_19 + 0x30) + 1;
    }
    if ((var_27 != -4) && (var_28 != 0)) {
      if (*(int *)(var_28 + 100) == 0) {
        *(int *)(var_28 + 0x60) = var_25 * -0x33333333 + -1;
      }
      *(int *)(var_28 + 100) = *(int *)(var_28 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_21 + -0x7810);
  var_47 = add_target_specific;
  var_25 = *(int *)(var_21 + -0x7fc4) + 0x3574;
  (*var_29)(var_25,0x231,*(int *)(var_21 + -0x7924) + -0x2b1c);
  var_30 = var_29 + 0x273c68;
  uStack_108 = uStack_a8;
  uStack_104 = uStack_a4;
  uStack_110 = uStack_b0._4_4_;
  puStack_d0 = &uStack_98;
  puStack_cc = var_19;
  pSStack_c8 = pSVar33;
  pcStack_c4 = var_47;
  (**(type_5 **)(var_29 + 0x26ebac))(&puStack_f8);
  var_20 = *(type_2 **)(var_25 + 0x3c);
  puStack_d4 = puStack_9c;
  puStack_d8 = var_21;
  if (var_20 == *(type_2 **)(var_25 + 0x40)) {
    (**(type_5 **)(var_30 + -0x5cb0))(var_25 + 0x38,var_20,&puStack_f8);
    var_20 = *(type_2 **)(var_25 + 0x3c);
    var_18 = puStack_9c;
  }
  else {
    puVar1 = var_20;
    var_32 = &puStack_f8;
    do {
      var_31 = var_32;
      var_24 = puVar1;
      var_32 = var_31 + 4;
      var_18 = var_31[1];
      puVar29 = var_31[2];
      var_19 = var_31[3];
      *var_24 = *var_31;
      var_24[1] = var_18;
      var_24[2] = puVar29;
      var_24[3] = var_19;
      puVar1 = var_24 + 4;
    } while (var_32 != &puStack_d8);
    var_20 = var_20 + 10;
    var_19 = var_31[5];
    var_24[4] = *var_32;
    var_24[5] = var_19;
    *(type_2 **)(var_25 + 0x3c) = var_20;
  }
  var_33 = (int)var_20 - *(int *)(var_25 + 0x38) >> 3;
  if (-1 < *(int *)(var_25 + 0x20) << 1) {
    *(int *)(var_25 + 0x14) = var_33 * 0x33333338;
    *(type_2 *)(var_25 + 0x10) = 0;
    *(type_11 *)(var_12 + 0x20) = *(type_11 *)(var_12 + 0x20) & 0xf7 | 8;
    if (var_34 << 0x1c < 0) {
      *(int *)(var_25 + 0x30) = *(int *)(var_25 + 0x30) + 1;
    }
    if ((var_35 != -4) && (var_36 != 0)) {
      if (*(int *)(var_36 + 100) == 0) {
        *(int *)(var_36 + 0x60) = var_33 * -0x33333333 + -1;
      }
      *(int *)(var_36 + 100) = *(int *)(var_36 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_30 + -0x7810);
  var_47 = add_output_section_generic;
  var_33 = *(int *)(var_30 + -0x7fc4) + 0x3574;
  (*var_29)(var_33,0x231,*(int *)(var_30 + -0x7924) + -0x2b1c);
  var_37 = var_29 + 0x273ab4;
  uStack_170 = uStack_110;
  uStack_168 = 0;
  uStack_16c = uStack_10c;
  ppuStack_130 = &puStack_f8;
  iStack_12c = var_25;
  iStack_128 = var_12;
  pcStack_124 = var_47;
  (**(type_5 **)(var_29 + 0x26c80c))(&uStack_158);
  var_20 = *(type_2 **)(var_33 + 0x3c);
  uStack_134 = uStack_104;
  uStack_138 = uStack_108;
  if (var_20 == *(type_2 **)(var_33 + 0x40)) {
    (**(type_5 **)(var_37 + -0x5cb0))(var_33 + 0x38,var_20,&uStack_158);
    var_20 = *(type_2 **)(var_33 + 0x3c);
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_158;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      uVar35 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = uVar35;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_138);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_33 + 0x3c) = var_20;
  }
  var_12 = (int)var_20 - *(int *)(var_33 + 0x38) >> 3;
  if (-1 < *(int *)(var_33 + 0x20) << 1) {
    *(int *)(var_33 + 0x14) = var_12 * 0x33333338;
    *(type_2 *)(var_33 + 0x10) = 0;
    var_18[0x20] = var_18[0x20] & 0xf7 | 8;
    if (var_38 << 0x1c < 0) {
      *(int *)(var_33 + 0x30) = *(int *)(var_33 + 0x30) + 1;
    }
    if ((var_39 != -4) && (var_40 != 0)) {
      if (*(int *)(var_40 + 100) == 0) {
        *(int *)(var_40 + 0x60) = var_12 * -0x33333333 + -1;
      }
      *(int *)(var_40 + 100) = *(int *)(var_40 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_37 + -0x7810);
  var_25 = *(int *)(var_37 + -0x7924) + -0x2b1c;
  var_47 = add_absolute;
  var_12 = *(int *)(var_37 + -0x7fc4) + 0x3574;
  (*var_29)(var_12,0x231);
  var_41 = var_29 + 0x273908;
  uStack_1c8 = 0;
  uStack_1cc = uStack_164;
  uStack_1d0 = uStack_168;
  puStack_190 = &uStack_158;
  iStack_18c = var_33;
  puStack_188 = var_18;
  pcStack_184 = var_47;
  (**(type_5 **)(var_29 + 0x26e844))(&pcStack_1b8);
  var_20 = *(type_2 **)(var_12 + 0x3c);
  pcStack_194 = pcStack_15c;
  pcStack_198 = var_37;
  if (var_20 == *(type_2 **)(var_12 + 0x40)) {
    (**(type_5 **)(var_41 + -0x5cb0))(var_12 + 0x38,var_20,&pcStack_1b8);
    var_20 = *(type_2 **)(var_12 + 0x3c);
    var_29 = pcStack_15c;
  }
  else {
    puVar1 = var_20;
    var_43 = &pcStack_1b8;
    do {
      var_42 = var_43;
      var_24 = puVar1;
      var_43 = var_42 + 4;
      var_29 = var_42[1];
      var_52 = var_42[2];
      var_47 = var_42[3];
      *var_24 = *var_42;
      var_24[1] = var_29;
      var_24[2] = var_52;
      var_24[3] = var_47;
      puVar1 = var_24 + 4;
    } while (var_43 != &pcStack_198);
    var_20 = var_20 + 10;
    var_47 = var_42[5];
    var_24[4] = *var_43;
    var_24[5] = var_47;
    *(type_2 **)(var_12 + 0x3c) = var_20;
  }
  var_33 = (int)var_20 - *(int *)(var_12 + 0x38) >> 3;
  if (-1 < *(int *)(var_12 + 0x20) << 1) {
    *(int *)(var_12 + 0x14) = var_33 * 0x33333338;
    *(type_2 *)(var_12 + 0x10) = 0;
    *(type_11 *)(var_25 + 0x20) = *(type_11 *)(var_25 + 0x20) & 0xf7 | 8;
    if (var_44 << 0x1c < 0) {
      *(int *)(var_12 + 0x30) = *(int *)(var_12 + 0x30) + 1;
    }
    if ((var_45 != -4) && (var_46 != 0)) {
      if (*(int *)(var_46 + 100) == 0) {
        *(int *)(var_46 + 0x60) = var_33 * -0x33333333 + -1;
      }
      *(int *)(var_46 + 100) = *(int *)(var_46 + 100) + 1;
    }
    return;
  }
  var_47 = *(type_5 **)(var_41 + -0x7810);
  var_52 = add_output_section_relative;
  var_33 = *(int *)(var_41 + -0x7fc4) + 0x3574;
  (*var_47)(var_33,0x231,*(int *)(var_41 + -0x7924) + -0x2b1c);
  var_48 = var_47 + 0x273750;
  uStack_228 = 1;
  uStack_230 = uStack_1c8;
  iStack_22c = iStack_1c4;
  uStack_238 = uStack_1cc;
  ppcStack_1f0 = &pcStack_1b8;
  iStack_1ec = var_12;
  iStack_1e8 = var_25;
  pcStack_1e4 = var_52;
  (**(type_5 **)(var_47 + 0x26c4ac))(&pcStack_218);
  var_20 = *(type_2 **)(var_33 + 0x3c);
  pcStack_1f4 = pcStack_1bc;
  pcStack_1f8 = var_41;
  if (var_20 == *(type_2 **)(var_33 + 0x40)) {
    (**(type_5 **)(var_48 + -0x5cb0))(var_33 + 0x38,var_20,&pcStack_218);
    var_20 = *(type_2 **)(var_33 + 0x3c);
    var_47 = pcStack_1bc;
  }
  else {
    puVar1 = var_20;
    var_43 = &pcStack_218;
    do {
      var_42 = var_43;
      var_24 = puVar1;
      var_43 = var_42 + 4;
      var_47 = var_42[1];
      pcVar31 = var_42[2];
      var_52 = var_42[3];
      *var_24 = *var_42;
      var_24[1] = var_47;
      var_24[2] = pcVar31;
      var_24[3] = var_52;
      puVar1 = var_24 + 4;
    } while (var_43 != &pcStack_1f8);
    var_20 = var_20 + 10;
    var_52 = var_42[5];
    var_24[4] = *var_43;
    var_24[5] = var_52;
    *(type_2 **)(var_33 + 0x3c) = var_20;
  }
  var_12 = (int)var_20 - *(int *)(var_33 + 0x38) >> 3;
  if (-1 < *(int *)(var_33 + 0x20) << 1) {
    *(int *)(var_33 + 0x14) = var_12 * 0x33333338;
    *(type_2 *)(var_33 + 0x10) = 0;
    var_29[0x20] = (type_5)((type_11)var_29[0x20] & 0xf7 | 8);
    if (var_49 << 0x1c < 0) {
      *(int *)(var_33 + 0x30) = *(int *)(var_33 + 0x30) + 1;
    }
    if ((var_50 != -4) && (var_51 != 0)) {
      if (*(int *)(var_51 + 100) == 0) {
        *(int *)(var_51 + 0x60) = var_12 * -0x33333333 + -1;
      }
      *(int *)(var_51 + 100) = *(int *)(var_51 + 100) + 1;
    }
    return;
  }
  var_52 = *(type_5 **)(var_48 + -0x7810);
  pcVar31 = add_output_section_generic;
  var_12 = *(int *)(var_48 + -0x7fc4) + 0x3574;
  (*var_52)(var_12,0x231,*(int *)(var_48 + -0x7924) + -0x2b1c);
  var_53 = var_52 + 0x273594;
  uStack_298 = uStack_230;
  uStack_290 = 0;
  iStack_294 = iStack_22c;
  uStack_2a0 = uStack_234;
  ppcStack_258 = &pcStack_218;
  iStack_254 = var_33;
  pcStack_250 = var_29;
  pcStack_24c = pcVar31;
  (**(type_5 **)(var_52 + 0x26c2f0))(&uStack_280);
  var_20 = *(type_2 **)(var_12 + 0x3c);
  iStack_25c = iStack_224;
  uStack_260 = uStack_228;
  if (var_20 == *(type_2 **)(var_12 + 0x40)) {
    (**(type_5 **)(var_53 + -0x5cb0))(var_12 + 0x38,var_20,&uStack_280);
    var_20 = *(type_2 **)(var_12 + 0x3c);
    var_25 = iStack_224;
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_280;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      var_25 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = var_25;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_260);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_12 + 0x3c) = var_20;
  }
  var_33 = (int)var_20 - *(int *)(var_12 + 0x38) >> 3;
  if (-1 < *(int *)(var_12 + 0x20) << 1) {
    *(int *)(var_12 + 0x14) = var_33 * 0x33333338;
    *(type_2 *)(var_12 + 0x10) = 0;
    var_47[0x20] = (type_5)((type_11)var_47[0x20] & 0xf7 | 8);
    if (var_54 << 0x1c < 0) {
      *(int *)(var_12 + 0x30) = *(int *)(var_12 + 0x30) + 1;
    }
    if ((var_55 != -4) && (var_56 != 0)) {
      if (*(int *)(var_56 + 100) == 0) {
        *(int *)(var_56 + 0x60) = var_33 * -0x33333333 + -1;
      }
      *(int *)(var_56 + 100) = *(int *)(var_56 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_53 + -0x7810);
  var_52 = add_output_section;
  var_33 = *(int *)(var_53 + -0x7fc4) + 0x3574;
  (*var_29)(var_33,0x231,*(int *)(var_53 + -0x7924) + -0x2b1c);
  var_57 = var_29 + 0x2733dc;
  uStack_300 = uStack_298;
  uStack_2f8 = 0;
  iStack_2fc = iStack_294;
  uStack_308 = uStack_29c;
  puStack_2c0 = &uStack_280;
  iStack_2bc = var_12;
  pcStack_2b8 = var_47;
  pcStack_2b4 = var_52;
  (**(type_5 **)(var_29 + 0x26c138))(&uStack_2e8);
  var_20 = *(type_2 **)(var_33 + 0x3c);
  iStack_2c4 = iStack_28c;
  uStack_2c8 = uStack_290;
  if (var_20 == *(type_2 **)(var_33 + 0x40)) {
    (**(type_5 **)(var_57 + -0x5cb0))(var_33 + 0x38,var_20,&uStack_2e8);
    var_20 = *(type_2 **)(var_33 + 0x3c);
    var_12 = iStack_28c;
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_2e8;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      var_12 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = var_12;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_2c8);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_33 + 0x3c) = var_20;
  }
  var_58 = (int)var_20 - *(int *)(var_33 + 0x38) >> 3;
  if (-1 < *(int *)(var_33 + 0x20) << 1) {
    *(int *)(var_33 + 0x14) = var_58 * 0x33333338;
    *(type_2 *)(var_33 + 0x10) = 0;
    *(type_11 *)(var_25 + 0x20) = *(type_11 *)(var_25 + 0x20) & 0xf7 | 8;
    if (var_59 << 0x1c < 0) {
      *(int *)(var_33 + 0x30) = *(int *)(var_33 + 0x30) + 1;
    }
    if ((var_60 != -4) && (var_61 != 0)) {
      if (*(int *)(var_61 + 100) == 0) {
        *(int *)(var_61 + 0x60) = var_58 * -0x33333333 + -1;
      }
      *(int *)(var_61 + 100) = *(int *)(var_61 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_57 + -0x7810);
  var_47 = add_global;
  var_58 = *(int *)(var_57 + -0x7fc4) + 0x3574;
  (*var_29)(var_58,0x231,*(int *)(var_57 + -0x7924) + -0x2b1c);
  var_62 = var_29 + 0x273224;
  uStack_370 = uStack_308;
  var_66 = 0;
  iStack_364 = 0;
  uStack_368 = 0;
  uStack_36c = uStack_304;
  puStack_328 = &uStack_2e8;
  iStack_324 = var_33;
  iStack_320 = var_25;
  pcStack_31c = var_47;
  (**(type_5 **)(var_29 + 0x26bc34))(&uStack_350);
  var_20 = *(type_2 **)(var_58 + 0x3c);
  iStack_32c = iStack_2fc;
  uStack_330 = uStack_300;
  if (var_20 == *(type_2 **)(var_58 + 0x40)) {
    var_25 = iStack_2fc;
    (**(type_5 **)(var_62 + -0x5cb0))(var_58 + 0x38,var_20,&uStack_350);
    var_20 = *(type_2 **)(var_58 + 0x3c);
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_350;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      var_25 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = var_25;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_330);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_58 + 0x3c) = var_20;
  }
  var_33 = (int)var_20 - *(int *)(var_58 + 0x38) >> 3;
  if (-1 < *(int *)(var_58 + 0x20) << 1) {
    *(int *)(var_58 + 0x14) = var_33 * 0x33333338;
    *(type_2 *)(var_58 + 0x10) = 0;
    *(type_11 *)(var_12 + 0x20) = *(type_11 *)(var_12 + 0x20) & 0xf7 | 8;
    if (var_63 << 0x1c < 0) {
      *(int *)(var_58 + 0x30) = *(int *)(var_58 + 0x30) + 1;
    }
    if ((var_64 != -4) && (var_65 != 0)) {
      if (*(int *)(var_65 + 100) == 0) {
        *(int *)(var_65 + 0x60) = var_33 * -0x33333333 + -1;
      }
      *(int *)(var_65 + 100) = *(int *)(var_65 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_62 + -0x7810);
  var_47 = add_global_relative;
  var_33 = *(int *)(var_62 + -0x7fc4) + 0x3574;
  (*var_29)(var_33,0x231,*(int *)(var_62 + -0x7924) + -0x2b1c);
  var_67 = var_29 + 0x273070;
  uStack_3c8 = var_66 & 0xff;
  iStack_3cc = 1;
  uStack_3d0 = 1;
  uStack_3d8 = uStack_370;
  uStack_3d4 = uStack_36c;
  puStack_390 = &uStack_350;
  iStack_38c = var_58;
  iStack_388 = var_12;
  pcStack_384 = var_47;
  (**(type_5 **)(var_29 + 0x26ba80))(&uStack_3b8);
  var_20 = *(type_2 **)(var_33 + 0x3c);
  iStack_394 = iStack_364;
  uStack_398 = uStack_368;
  if (var_20 == *(type_2 **)(var_33 + 0x40)) {
    var_12 = iStack_364;
    (**(type_5 **)(var_67 + -0x5cb0))(var_33 + 0x38,var_20,&uStack_3b8);
    var_20 = *(type_2 **)(var_33 + 0x3c);
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_3b8;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      var_12 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = var_12;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_398);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_33 + 0x3c) = var_20;
  }
  var_58 = (int)var_20 - *(int *)(var_33 + 0x38) >> 3;
  if (-1 < *(int *)(var_33 + 0x20) << 1) {
    *(int *)(var_33 + 0x14) = var_58 * 0x33333338;
    *(type_2 *)(var_33 + 0x10) = 0;
    *(type_11 *)(var_25 + 0x20) = *(type_11 *)(var_25 + 0x20) & 0xf7 | 8;
    if (var_68 << 0x1c < 0) {
      *(int *)(var_33 + 0x30) = *(int *)(var_33 + 0x30) + 1;
    }
    if ((var_69 != -4) && (var_70 != 0)) {
      if (*(int *)(var_70 + 100) == 0) {
        *(int *)(var_70 + 0x60) = var_58 * -0x33333333 + -1;
      }
      *(int *)(var_70 + 100) = *(int *)(var_70 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_67 + -0x7810);
  var_47 = add_symbolless_global_addend;
  var_58 = *(int *)(var_67 + -0x7fc4) + 0x3574;
  (*var_29)(var_58,0x231,*(int *)(var_67 + -0x7924) + -0x2b1c);
  var_71 = var_29 + 0x272eb4;
  uStack_434 = 1;
  uStack_430 = 0;
  uStack_438 = 0;
  uStack_43c = uStack_3d4;
  uStack_440 = uStack_3d8;
  puStack_3f8 = &uStack_3b8;
  iStack_3f4 = var_33;
  iStack_3f0 = var_25;
  pcStack_3ec = var_47;
  (**(type_5 **)(var_29 + 0x26b8c4))(&uStack_420);
  var_20 = *(type_2 **)(var_58 + 0x3c);
  iStack_3fc = iStack_3cc;
  uStack_400 = uStack_3d0;
  if (var_20 == *(type_2 **)(var_58 + 0x40)) {
    var_25 = iStack_3cc;
    (**(type_5 **)(var_71 + -0x5cb0))(var_58 + 0x38,var_20,&uStack_420);
    var_20 = *(type_2 **)(var_58 + 0x3c);
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_420;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      var_25 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = var_25;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_400);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_58 + 0x3c) = var_20;
  }
  var_33 = (int)var_20 - *(int *)(var_58 + 0x38) >> 3;
  if (-1 < *(int *)(var_58 + 0x20) << 1) {
    *(int *)(var_58 + 0x14) = var_33 * 0x33333338;
    *(type_2 *)(var_58 + 0x10) = 0;
    *(type_11 *)(var_12 + 0x20) = *(type_11 *)(var_12 + 0x20) & 0xf7 | 8;
    if (var_72 << 0x1c < 0) {
      *(int *)(var_58 + 0x30) = *(int *)(var_58 + 0x30) + 1;
    }
    if ((var_73 != -4) && (var_74 != 0)) {
      if (*(int *)(var_74 + 100) == 0) {
        *(int *)(var_74 + 0x60) = var_33 * -0x33333333 + -1;
      }
      *(int *)(var_74 + 100) = *(int *)(var_74 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_71 + -0x7810);
  var_47 = add_global;
  var_33 = *(int *)(var_71 + -0x7fc4) + 0x3574;
  (*var_29)(var_33,0x231,*(int *)(var_71 + -0x7924) + -0x2b1c);
  var_75 = var_29 + 0x272cfc;
  uStack_4a8 = uStack_438;
  uStack_498 = 0;
  iStack_49c = 0;
  uStack_4a0 = 0;
  uStack_4a4 = uStack_434;
  uStack_4b0 = uStack_43c;
  puStack_460 = &uStack_420;
  iStack_45c = var_58;
  iStack_458 = var_12;
  pcStack_454 = var_47;
  (**(type_5 **)(var_29 + 0x26b910))(&uStack_488);
  var_20 = *(type_2 **)(var_33 + 0x3c);
  iStack_464 = iStack_42c;
  uStack_468 = uStack_430;
  if (var_20 == *(type_2 **)(var_33 + 0x40)) {
    (**(type_5 **)(var_75 + -0x5cb0))(var_33 + 0x38,var_20,&uStack_488);
    var_20 = *(type_2 **)(var_33 + 0x3c);
    var_12 = iStack_42c;
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_488;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      var_12 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = var_12;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_468);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_33 + 0x3c) = var_20;
  }
  var_58 = (int)var_20 - *(int *)(var_33 + 0x38) >> 3;
  if (-1 < *(int *)(var_33 + 0x20) << 1) {
    *(int *)(var_33 + 0x14) = var_58 * 0x33333338;
    *(type_2 *)(var_33 + 0x10) = 0;
    *(type_11 *)(var_25 + 0x20) = *(type_11 *)(var_25 + 0x20) & 0xf7 | 8;
    if (var_76 << 0x1c < 0) {
      *(int *)(var_33 + 0x30) = *(int *)(var_33 + 0x30) + 1;
    }
    if ((var_77 != -4) && (var_78 != 0)) {
      if (*(int *)(var_78 + 100) == 0) {
        *(int *)(var_78 + 0x60) = var_58 * -0x33333333 + -1;
      }
      *(int *)(var_78 + 100) = *(int *)(var_78 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_75 + -0x7810);
  var_47 = add_symbolless_global_addend;
  var_58 = *(int *)(var_75 + -0x7fc4) + 0x3574;
  (*var_29)(var_58,0x231,*(int *)(var_75 + -0x7924) + -0x2b1c);
  var_79 = var_29 + 0x272b3c;
  uStack_50c = 1;
  uStack_518 = uStack_4a8;
  var_83 = 0;
  uStack_510 = 0;
  uStack_514 = uStack_4a4;
  uStack_520 = uStack_4ac;
  puStack_4d0 = &uStack_488;
  iStack_4cc = var_33;
  iStack_4c8 = var_25;
  pcStack_4c4 = var_47;
  (**(type_5 **)(var_29 + 0x26b750))(&uStack_4f8);
  var_20 = *(type_2 **)(var_58 + 0x3c);
  iStack_4d4 = iStack_49c;
  uStack_4d8 = uStack_4a0;
  if (var_20 == *(type_2 **)(var_58 + 0x40)) {
    var_25 = iStack_49c;
    (**(type_5 **)(var_79 + -0x5cb0))(var_58 + 0x38,var_20,&uStack_4f8);
    var_20 = *(type_2 **)(var_58 + 0x3c);
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_4f8;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      var_25 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = var_25;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_4d8);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_58 + 0x3c) = var_20;
  }
  var_33 = (int)var_20 - *(int *)(var_58 + 0x38) >> 3;
  if (-1 < *(int *)(var_58 + 0x20) << 1) {
    *(int *)(var_58 + 0x14) = var_33 * 0x33333338;
    *(type_2 *)(var_58 + 0x10) = 0;
    *(type_11 *)(var_12 + 0x20) = *(type_11 *)(var_12 + 0x20) & 0xf7 | 8;
    if (var_80 << 0x1c < 0) {
      *(int *)(var_58 + 0x30) = *(int *)(var_58 + 0x30) + 1;
    }
    if ((var_81 != -4) && (var_82 != 0)) {
      if (*(int *)(var_82 + 100) == 0) {
        *(int *)(var_82 + 0x60) = var_33 * -0x33333333 + -1;
      }
      *(int *)(var_82 + 100) = *(int *)(var_82 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_79 + -0x7810);
  var_47 = add_global_relative;
  var_33 = *(int *)(var_79 + -0x7fc4) + 0x3574;
  (*var_29)(var_33,0x231,*(int *)(var_79 + -0x7924) + -0x2b1c);
  var_84 = var_29 + 0x272978;
  uStack_578 = var_83 & 0xff;
  uStack_57c = 1;
  uStack_580 = 1;
  uStack_588 = uStack_518;
  uStack_584 = uStack_514;
  iStack_590 = iStack_51c;
  puStack_540 = &uStack_4f8;
  iStack_53c = var_58;
  iStack_538 = var_12;
  pcStack_534 = var_47;
  (**(type_5 **)(var_29 + 0x26b58c))(&uStack_568);
  var_20 = *(type_2 **)(var_33 + 0x3c);
  uStack_544 = uStack_50c;
  uStack_548 = uStack_510;
  if (var_20 == *(type_2 **)(var_33 + 0x40)) {
    (**(type_5 **)(var_84 + -0x5cb0))(var_33 + 0x38,var_20,&uStack_568);
    var_20 = *(type_2 **)(var_33 + 0x3c);
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_568;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      uVar35 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = uVar35;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_548);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_33 + 0x3c) = var_20;
  }
  var_12 = (int)var_20 - *(int *)(var_33 + 0x38) >> 3;
  if (-1 < *(int *)(var_33 + 0x20) << 1) {
    *(int *)(var_33 + 0x14) = var_12 * 0x33333338;
    *(type_2 *)(var_33 + 0x10) = 0;
    *(type_11 *)(var_25 + 0x20) = *(type_11 *)(var_25 + 0x20) & 0xf7 | 8;
    if (var_85 << 0x1c < 0) {
      *(int *)(var_33 + 0x30) = *(int *)(var_33 + 0x30) + 1;
    }
    if ((var_86 != -4) && (var_87 != 0)) {
      if (*(int *)(var_87 + 100) == 0) {
        *(int *)(var_87 + 0x60) = var_12 * -0x33333333 + -1;
      }
      *(int *)(var_87 + 100) = *(int *)(var_87 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_84 + -0x7810);
  var_47 = add_local_section;
  var_58 = *(int *)(var_84 + -0x7fc4) + 0x3574;
  (*var_29)(var_58,0x231,*(int *)(var_84 + -0x7924) + -0x2b1c);
  var_12 = iStack_590;
  var_88 = var_29 + 0x2727b0;
  uStack_5e8 = 1;
  uStack_5f8 = uStack_588;
  uStack_5e4 = 0;
  uStack_5ec = 0;
  uStack_5f0 = 0;
  uStack_5f4 = uStack_584;
  iStack_600 = iStack_58c;
  puStack_5b0 = &uStack_568;
  iStack_5ac = var_33;
  iStack_5a8 = var_25;
  pcStack_5a4 = var_47;
  (**(type_5 **)(var_29 + 0x26b1f8))(&uStack_5d8);
  var_20 = *(type_2 **)(var_58 + 0x3c);
  uStack_5b4 = uStack_57c;
  uStack_5b8 = uStack_580;
  if (var_20 == *(type_2 **)(var_58 + 0x40)) {
    (**(type_5 **)(var_88 + -0x5cb0))(var_58 + 0x38,var_20,&uStack_5d8);
    var_20 = *(type_2 **)(var_58 + 0x3c);
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_5d8;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      uVar35 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = uVar35;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_5b8);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_58 + 0x3c) = var_20;
  }
  var_25 = (int)var_20 - *(int *)(var_58 + 0x38) >> 3;
  if (-1 < *(int *)(var_58 + 0x20) << 1) {
    *(int *)(var_58 + 0x14) = var_25 * 0x33333338;
    *(type_2 *)(var_58 + 0x10) = 0;
    *(type_11 *)(var_12 + 0x20) = *(type_11 *)(var_12 + 0x20) & 0xf7 | 8;
    if (var_89 << 0x1c < 0) {
      *(int *)(var_58 + 0x30) = *(int *)(var_58 + 0x30) + 1;
    }
    if ((var_90 != -4) && (var_91 != 0)) {
      if (*(int *)(var_91 + 100) == 0) {
        *(int *)(var_91 + 0x60) = var_25 * -0x33333333 + -1;
      }
      *(int *)(var_91 + 100) = *(int *)(var_91 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_88 + -0x7810);
  var_47 = add_local_section;
  var_33 = *(int *)(var_88 + -0x7fc4) + 0x3574;
  (*var_29)(var_33,0x231,*(int *)(var_88 + -0x7924) + -0x2b1c);
  var_25 = iStack_600;
  var_92 = var_29 + 0x2725ec;
  iStack_618 = var_12;
  uStack_658 = 1;
  uStack_654 = 0;
  uStack_65c = 0;
  uStack_660 = 0;
  uStack_664 = uStack_5f4;
  uStack_668 = uStack_5f8;
  iStack_670 = iStack_600;
  puStack_620 = &uStack_5d8;
  iStack_61c = var_58;
  pcStack_614 = var_47;
  (**(type_5 **)(var_29 + 0x26b198))(&uStack_648);
  var_20 = *(type_2 **)(var_33 + 0x3c);
  uStack_624 = uStack_5ec;
  uStack_628 = uStack_5f0;
  if (var_20 == *(type_2 **)(var_33 + 0x40)) {
    (**(type_5 **)(var_92 + -0x5cb0))(var_33 + 0x38,var_20,&uStack_648);
    var_20 = *(type_2 **)(var_33 + 0x3c);
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_648;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      uVar35 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = uVar35;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_628);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_33 + 0x3c) = var_20;
  }
  var_12 = (int)var_20 - *(int *)(var_33 + 0x38) >> 3;
  if (-1 < *(int *)(var_33 + 0x20) << 1) {
    *(int *)(var_33 + 0x14) = var_12 * 0x33333338;
    *(type_2 *)(var_33 + 0x10) = 0;
    *(type_11 *)(var_25 + 0x20) = *(type_11 *)(var_25 + 0x20) & 0xf7 | 8;
    if (var_93 << 0x1c < 0) {
      *(int *)(var_33 + 0x30) = *(int *)(var_33 + 0x30) + 1;
    }
    if ((var_94 != -4) && (var_95 != 0)) {
      if (*(int *)(var_95 + 100) == 0) {
        *(int *)(var_95 + 0x60) = var_12 * -0x33333333 + -1;
      }
      *(int *)(var_95 + 100) = *(int *)(var_95 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_92 + -0x7810);
  var_47 = add_local;
  var_58 = *(int *)(var_92 + -0x7fc4) + 0x3574;
  (*var_29)(var_58,0x231,*(int *)(var_92 + -0x7924) + -0x2b1c);
  var_12 = iStack_670;
  var_96 = var_29 + 0x27242c;
  iStack_688 = var_25;
  uStack_6d8 = uStack_668;
  uStack_6c4 = 0;
  uStack_6c8 = 0;
  uStack_6cc = 0;
  uStack_6d0 = 0;
  uStack_6d4 = uStack_664;
  iStack_6e0 = iStack_670;
  puStack_690 = &uStack_648;
  iStack_68c = var_33;
  pcStack_684 = var_47;
  (**(type_5 **)(var_29 + 0x26afd8))(&uStack_6b8);
  var_20 = *(type_2 **)(var_58 + 0x3c);
  uStack_694 = uStack_65c;
  uStack_698 = uStack_660;
  if (var_20 == *(type_2 **)(var_58 + 0x40)) {
    (**(type_5 **)(var_96 + -0x5cb0))(var_58 + 0x38,var_20,&uStack_6b8);
    var_20 = *(type_2 **)(var_58 + 0x3c);
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_6b8;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      uVar35 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = uVar35;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_698);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_58 + 0x3c) = var_20;
  }
  var_25 = (int)var_20 - *(int *)(var_58 + 0x38) >> 3;
  if (-1 < *(int *)(var_58 + 0x20) << 1) {
    *(int *)(var_58 + 0x14) = var_25 * 0x33333338;
    *(type_2 *)(var_58 + 0x10) = 0;
    *(type_11 *)(var_12 + 0x20) = *(type_11 *)(var_12 + 0x20) & 0xf7 | 8;
    if (var_97 << 0x1c < 0) {
      *(int *)(var_58 + 0x30) = *(int *)(var_58 + 0x30) + 1;
    }
    if ((var_98 != -4) && (var_99 != 0)) {
      if (*(int *)(var_99 + 100) == 0) {
        *(int *)(var_99 + 0x60) = var_25 * -0x33333333 + -1;
      }
      *(int *)(var_99 + 100) = *(int *)(var_99 + 100) + 1;
    }
    return;
  }
  var_29 = *(type_5 **)(var_96 + -0x7810);
  var_47 = add_local_relative;
  var_33 = *(int *)(var_96 + -0x7fc4) + 0x3574;
  (*var_29)(var_33,0x231,*(int *)(var_96 + -0x7924) + -0x2b1c);
  var_25 = iStack_6e0;
  iStack_6f8 = var_12;
  var_12 = iStack_6e0;
  puStack_700 = &uStack_6b8;
  iStack_6fc = var_58;
  pcStack_6f4 = var_47;
  (**(type_5 **)(var_29 + 0x26ae1c))(&uStack_728);
  var_20 = *(type_2 **)(var_33 + 0x3c);
  uStack_704 = uStack_6cc;
  uStack_708 = uStack_6d0;
  if (var_20 == *(type_2 **)(var_33 + 0x40)) {
    (**(type_5 **)(var_29 + 0x26c5c0))(var_33 + 0x38,var_20,&uStack_728,uStack_6cc,var_12);
    var_20 = *(type_2 **)(var_33 + 0x3c);
  }
  else {
    puVar1 = var_20;
    var_24 = &uStack_728;
    do {
      var_22 = var_24;
      var_23 = puVar1;
      var_24 = var_22 + 4;
      uVar35 = var_22[1];
      uVar28 = var_22[2];
      uVar7 = var_22[3];
      *var_23 = *var_22;
      var_23[1] = uVar35;
      var_23[2] = uVar28;
      var_23[3] = uVar7;
      puVar1 = var_23 + 4;
    } while (var_24 != &uStack_708);
    var_20 = var_20 + 10;
    uVar7 = var_22[5];
    var_23[4] = *var_24;
    var_23[5] = uVar7;
    *(type_2 **)(var_33 + 0x3c) = var_20;
  }
  var_12 = (int)var_20 - *(int *)(var_33 + 0x38) >> 3;
  if (-1 < *(int *)(var_33 + 0x20) << 1) {
    *(int *)(var_33 + 0x14) = var_12 * 0x33333338;
    *(type_2 *)(var_33 + 0x10) = 0;
    *(type_11 *)(var_25 + 0x20) = *(type_11 *)(var_25 + 0x20) & 0xf7 | 8;
    if (var_100 << 0x1c < 0) {
      *(int *)(var_33 + 0x30) = *(int *)(var_33 + 0x30) + 1;
    }
    if ((var_101 != -4) && (var_102 != 0)) {
      if (*(int *)(var_102 + 100) == 0) {
        *(int *)(var_102 + 0x60) = var_12 * -0x33333333 + -1;
      }
      *(int *)(var_102 + 100) = *(int *)(var_102 + 100) + 1;
    }
    return;
  }
  var_103 = 0x231;
  var_47 = *(type_5 **)(var_29 + 0x26aa60);
  var_104 = (int *)(*(int *)(var_29 + 0x26a2ac) + 0x3574);
  (*var_47)(var_104,0x231,*(int *)(var_29 + 0x26a94c) + -0x2b1c);
  if (var_103 == 1) {
    var_107 = var_104 + 6;
    var_104[6] = 0;
  }
  else {
    var_107 = (int *)(*(type_5 *)(*(int *)(var_47 + 0x26cd70) + 0x341c))(var_103);
  }
  var_105 = (int *)var_104[2];
  var_104[2] = 0;
  if (var_105 != (int *)0x0) {
    uVar32 = 0;
    do {
      while( true ) {
        if (var_103 == 0) {
          var_106(7);
        }
        var_108 = (type_6)var_105[10] % var_103;
        piVar19 = var_107 + var_108;
        var_109 = (int *)*var_105;
        if ((int *)*piVar19 == (int *)0x0) break;
        *var_105 = *(int *)*piVar19;
        *(int **)*piVar19 = var_105;
        var_108 = uVar32;
LAB_00257210:
        var_105 = var_109;
        uVar32 = var_108;
        if (var_109 == (int *)0x0) goto LAB_0025726c;
      }
      *var_105 = var_104[2];
      var_104[2] = (int)var_105;
      *piVar19 = (int)(var_104 + 2);
      if (*var_105 == 0) goto LAB_00257210;
      var_107[uVar32] = (int)var_105;
      var_105 = var_109;
      uVar32 = var_108;
    } while (var_109 != (int *)0x0);
  }
LAB_0025726c:
  if (var_104 + 6 != (int *)*var_104) {
    (**(type_5 **)(var_47 + 0x26a168))();
  }
  var_104[1] = var_103;
  *var_104 = (int)var_107;
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier)) right: (number_literal)) right: (comma_expression left: (true) right: (comma_expression left: (number_literal) right: (binary_expression left: (binary_expression left: (true) right: (identifier)) (ERROR) right: (identifier)))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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 (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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)))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (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: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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 (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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)))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal) (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))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (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: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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 (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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)))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal) (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))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (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: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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 (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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)))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (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: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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 (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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)))))) (return_statement))) (expression_statement (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: (identifier) right: (number_literal))))))) arguments: (argument_list (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)) (number_literal) (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))))) (return_statement))))

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

{
  undefined4 *puVar1;
  undefined4 *puVar2;
  undefined4 uVar3;
  undefined4 *puVar4;
  undefined *puVar5;
  undefined **ppuVar6;
  undefined **ppuVar7;
  undefined4 *puVar8;
  code **ppcVar9;
  code **ppcVar10;
  undefined4 *puVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  undefined4 uVar15;
  undefined *puVar16;
  code *pcVar17;
  undefined *puVar18;
  undefined4 uVar19;
  code *pcVar20;
  code *pcVar21;
  code *pcVar22;
  code *pcStack_1b8;
  int iStack_1b4;
  int iStack_1a4;
  int iStack_1a0;
  code *pcStack_198;
  undefined4 uStack_194;
  undefined4 *puStack_190;
  int iStack_18c;
  undefined *puStack_188;
  code *pcStack_184;
  undefined4 uStack_170;
  undefined4 uStack_16c;
  undefined4 uStack_168;
  undefined4 uStack_164;
  code *pcStack_160;
  undefined4 uStack_15c;
  undefined4 uStack_158;
  int iStack_154;
  int iStack_144;
  int iStack_140;
  undefined4 uStack_138;
  undefined4 uStack_134;
  undefined **ppuStack_130;
  int iStack_12c;
  int iStack_128;
  code *pcStack_124;
  undefined4 uStack_110;
  undefined4 uStack_10c;
  undefined4 uStack_108;
  undefined4 uStack_104;
  code *pcStack_100;
  undefined *puStack_f8;
  int iStack_f4;
  int iStack_e4;
  int iStack_e0;
  undefined *puStack_d8;
  undefined *puStack_d4;
  undefined4 *puStack_d0;
  undefined *puStack_cc;
  int iStack_c8;
  code *pcStack_c4;
  undefined4 uStack_b0;
  undefined4 uStack_ac;
  undefined4 uStack_a8;
  undefined4 uStack_a4;
  undefined *puStack_a0;
  undefined *puStack_9c;
  undefined4 uStack_98;
  int iStack_94;
  int iStack_84;
  int iStack_80;
  undefined4 uStack_78;
  int iStack_74;
  undefined4 *puStack_70;
  int iStack_6c;
  int iStack_68;
  code *pcStack_64;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  int iStack_44;
  undefined4 local_38;
  int local_34;
  int local_24;
  int local_20;
  undefined4 local_18;
  int local_14;
  
  local_48 = 1;
  local_4c = param_8;
  local_50 = param_7;
  (*(code *)PTR_Output_reloc_004c417c)(&local_38,param_2,param_4,param_5);
  puVar11 = *(undefined4 **)(param_1 + 0x3c);
  local_14 = param_10;
  local_18 = param_9;
  if (puVar11 == *(undefined4 **)(param_1 + 0x40)) {
    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,true>const&>_004c3590)
              (param_1 + 0x38,puVar11,&local_38);
    puVar11 = *(undefined4 **)(param_1 + 0x3c);
  }
  else {
    puVar1 = puVar11;
    puVar4 = &local_38;
    do {
      puVar8 = puVar4;
      puVar2 = puVar1;
      puVar4 = puVar8 + 4;
      param_10 = puVar8[1];
      uVar15 = puVar8[2];
      uVar3 = puVar8[3];
      *puVar2 = *puVar8;
      puVar2[1] = param_10;
      puVar2[2] = uVar15;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar4 != &local_18);
    puVar11 = puVar11 + 10;
    uVar3 = puVar8[5];
    puVar2[4] = *puVar4;
    puVar2[5] = uVar3;
    *(undefined4 **)(param_1 + 0x3c) = puVar11;
  }
  iVar12 = (int)puVar11 - *(int *)(param_1 + 0x38) >> 3;
  if (-1 < *(int *)(param_1 + 0x20) << 1) {
    *(int *)(param_1 + 0x14) = iVar12 * 0x33333338;
    *(undefined4 *)(param_1 + 0x10) = 0;
    *(byte *)(param_3 + 0x20) = *(byte *)(param_3 + 0x20) & 0xf7 | 8;
    if (local_24 << 0x1c < 0) {
      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + 1;
    }
    if ((local_20 != -4) && (local_34 != 0)) {
      if (*(int *)(local_34 + 100) == 0) {
        *(int *)(local_34 + 0x60) = iVar12 * -0x33333333 + -1;
      }
      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;
    }
    return;
  }
  pcVar21 = FUN_0025542c;
  puVar5 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;
  puVar18 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (puVar5,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);
  puStack_a0 = puVar18 + 0x273e14;
  uStack_b0 = local_50;
  uStack_a8 = 0;
  uStack_ac = local_4c;
  puStack_70 = &local_38;
  iStack_6c = param_1;
  iStack_68 = param_3;
  pcStack_64 = pcVar21;
  (**(code **)(puVar18 + 0x26cb6c))(&uStack_98);
  puVar11 = *(undefined4 **)(puVar5 + 0x3c);
  iStack_74 = iStack_44;
  uStack_78 = local_48;
  if (puVar11 == *(undefined4 **)(puVar5 + 0x40)) {
    (**(code **)(puStack_a0 + -0x5cb0))(puVar5 + 0x38,puVar11,&uStack_98);
    puVar11 = *(undefined4 **)(puVar5 + 0x3c);
    iVar12 = iStack_44;
  }
  else {
    puVar1 = puVar11;
    puVar4 = &uStack_98;
    do {
      puVar8 = puVar4;
      puVar2 = puVar1;
      puVar4 = puVar8 + 4;
      iVar12 = puVar8[1];
      uVar15 = puVar8[2];
      uVar3 = puVar8[3];
      *puVar2 = *puVar8;
      puVar2[1] = iVar12;
      puVar2[2] = uVar15;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar4 != &uStack_78);
    puVar11 = puVar11 + 10;
    uVar3 = puVar8[5];
    puVar2[4] = *puVar4;
    puVar2[5] = uVar3;
    *(undefined4 **)(puVar5 + 0x3c) = puVar11;
  }
  iVar13 = (int)puVar11 - *(int *)(puVar5 + 0x38) >> 3;
  if (-1 < *(int *)(puVar5 + 0x20) << 1) {
    *(int *)(puVar5 + 0x14) = iVar13 * 0x33333338;
    *(undefined4 *)(puVar5 + 0x10) = 0;
    *(byte *)(param_10 + 0x20) = *(byte *)(param_10 + 0x20) & 0xf7 | 8;
    if (iStack_84 << 0x1c < 0) {
      *(int *)(puVar5 + 0x30) = *(int *)(puVar5 + 0x30) + 1;
    }
    if ((iStack_80 != -4) && (iStack_94 != 0)) {
      if (*(int *)(iStack_94 + 100) == 0) {
        *(int *)(iStack_94 + 0x60) = iVar13 * -0x33333333 + -1;
      }
      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;
    }
    return;
  }
  pcVar21 = *(code **)(puStack_a0 + -0x7810);
  pcVar22 = FUN_002555d8;
  iVar13 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;
  (*pcVar21)(iVar13,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);
  pcStack_100 = pcVar21 + 0x273c68;
  uStack_108 = uStack_a8;
  uStack_104 = uStack_a4;
  uStack_110 = uStack_ac;
  puStack_d0 = &uStack_98;
  puStack_cc = puVar5;
  iStack_c8 = param_10;
  pcStack_c4 = pcVar22;
  (**(code **)(pcVar21 + 0x26ebac))(&puStack_f8);
  puVar11 = *(undefined4 **)(iVar13 + 0x3c);
  puStack_d4 = puStack_9c;
  puStack_d8 = puStack_a0;
  if (puVar11 == *(undefined4 **)(iVar13 + 0x40)) {
    (**(code **)(pcStack_100 + -0x5cb0))(iVar13 + 0x38,puVar11,&puStack_f8);
    puVar11 = *(undefined4 **)(iVar13 + 0x3c);
    puVar18 = puStack_9c;
  }
  else {
    puVar1 = puVar11;
    ppuVar7 = &puStack_f8;
    do {
      ppuVar6 = ppuVar7;
      puVar4 = puVar1;
      ppuVar7 = ppuVar6 + 4;
      puVar18 = ppuVar6[1];
      puVar16 = ppuVar6[2];
      puVar5 = ppuVar6[3];
      *puVar4 = *ppuVar6;
      puVar4[1] = puVar18;
      puVar4[2] = puVar16;
      puVar4[3] = puVar5;
      puVar1 = puVar4 + 4;
    } while (ppuVar7 != &puStack_d8);
    puVar11 = puVar11 + 10;
    puVar5 = ppuVar6[5];
    puVar4[4] = *ppuVar7;
    puVar4[5] = puVar5;
    *(undefined4 **)(iVar13 + 0x3c) = puVar11;
  }
  iVar14 = (int)puVar11 - *(int *)(iVar13 + 0x38) >> 3;
  if (-1 < *(int *)(iVar13 + 0x20) << 1) {
    *(int *)(iVar13 + 0x14) = iVar14 * 0x33333338;
    *(undefined4 *)(iVar13 + 0x10) = 0;
    *(byte *)(iVar12 + 0x20) = *(byte *)(iVar12 + 0x20) & 0xf7 | 8;
    if (iStack_e4 << 0x1c < 0) {
      *(int *)(iVar13 + 0x30) = *(int *)(iVar13 + 0x30) + 1;
    }
    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {
      if (*(int *)(iStack_f4 + 100) == 0) {
        *(int *)(iStack_f4 + 0x60) = iVar14 * -0x33333333 + -1;
      }
      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;
    }
    return;
  }
  pcVar21 = *(code **)(pcStack_100 + -0x7810);
  pcVar22 = FUN_0025578c;
  iVar14 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;
  (*pcVar21)(iVar14,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);
  pcStack_160 = pcVar21 + 0x273ab4;
  uStack_170 = uStack_110;
  uStack_168 = 0;
  uStack_16c = uStack_10c;
  ppuStack_130 = &puStack_f8;
  iStack_12c = iVar13;
  iStack_128 = iVar12;
  pcStack_124 = pcVar22;
  (**(code **)(pcVar21 + 0x26c80c))(&uStack_158);
  puVar11 = *(undefined4 **)(iVar14 + 0x3c);
  uStack_134 = uStack_104;
  uStack_138 = uStack_108;
  if (puVar11 == *(undefined4 **)(iVar14 + 0x40)) {
    (**(code **)(pcStack_160 + -0x5cb0))(iVar14 + 0x38,puVar11,&uStack_158);
    puVar11 = *(undefined4 **)(iVar14 + 0x3c);
  }
  else {
    puVar1 = puVar11;
    puVar4 = &uStack_158;
    do {
      puVar8 = puVar4;
      puVar2 = puVar1;
      puVar4 = puVar8 + 4;
      uVar19 = puVar8[1];
      uVar15 = puVar8[2];
      uVar3 = puVar8[3];
      *puVar2 = *puVar8;
      puVar2[1] = uVar19;
      puVar2[2] = uVar15;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar4 != &uStack_138);
    puVar11 = puVar11 + 10;
    uVar3 = puVar8[5];
    puVar2[4] = *puVar4;
    puVar2[5] = uVar3;
    *(undefined4 **)(iVar14 + 0x3c) = puVar11;
  }
  iVar12 = (int)puVar11 - *(int *)(iVar14 + 0x38) >> 3;
  if (-1 < *(int *)(iVar14 + 0x20) << 1) {
    *(int *)(iVar14 + 0x14) = iVar12 * 0x33333338;
    *(undefined4 *)(iVar14 + 0x10) = 0;
    puVar18[0x20] = puVar18[0x20] & 0xf7 | 8;
    if (iStack_144 << 0x1c < 0) {
      *(int *)(iVar14 + 0x30) = *(int *)(iVar14 + 0x30) + 1;
    }
    if ((iStack_140 != -4) && (iStack_154 != 0)) {
      if (*(int *)(iStack_154 + 100) == 0) {
        *(int *)(iStack_154 + 0x60) = iVar12 * -0x33333333 + -1;
      }
      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;
    }
    return;
  }
  pcVar21 = *(code **)(pcStack_160 + -0x7810);
  iVar13 = *(int *)(pcStack_160 + -0x7924) + -0x2b1c;
  pcVar22 = FUN_00255938;
  iVar12 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;
  (*pcVar21)(iVar12,0x231);
  uVar15 = 0;
  uVar3 = uStack_168;
  puStack_190 = &uStack_158;
  iStack_18c = iVar14;
  puStack_188 = puVar18;
  pcStack_184 = pcVar22;
  (**(code **)(pcVar21 + 0x26e844))(&pcStack_1b8);
  puVar11 = *(undefined4 **)(iVar12 + 0x3c);
  uStack_194 = uStack_15c;
  pcStack_198 = pcStack_160;
  if (puVar11 == *(undefined4 **)(iVar12 + 0x40)) {
    (**(code **)(pcVar21 + 0x26dc58))
              (iVar12 + 0x38,puVar11,&pcStack_1b8,uStack_15c,uVar3,uStack_164,uVar15);
    puVar11 = *(undefined4 **)(iVar12 + 0x3c);
  }
  else {
    puVar1 = puVar11;
    ppcVar10 = &pcStack_1b8;
    do {
      ppcVar9 = ppcVar10;
      puVar4 = puVar1;
      ppcVar10 = ppcVar9 + 4;
      pcVar20 = ppcVar9[1];
      pcVar17 = ppcVar9[2];
      pcVar22 = ppcVar9[3];
      *puVar4 = *ppcVar9;
      puVar4[1] = pcVar20;
      puVar4[2] = pcVar17;
      puVar4[3] = pcVar22;
      puVar1 = puVar4 + 4;
    } while (ppcVar10 != &pcStack_198);
    puVar11 = puVar11 + 10;
    pcVar22 = ppcVar9[5];
    puVar4[4] = *ppcVar10;
    puVar4[5] = pcVar22;
    *(undefined4 **)(iVar12 + 0x3c) = puVar11;
  }
  iVar14 = (int)puVar11 - *(int *)(iVar12 + 0x38) >> 3;
  if (-1 < *(int *)(iVar12 + 0x20) << 1) {
    *(int *)(iVar12 + 0x14) = iVar14 * 0x33333338;
    *(undefined4 *)(iVar12 + 0x10) = 0;
    *(byte *)(iVar13 + 0x20) = *(byte *)(iVar13 + 0x20) & 0xf7 | 8;
    if (iStack_1a4 << 0x1c < 0) {
      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;
    }
    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {
      if (*(int *)(iStack_1b4 + 100) == 0) {
        *(int *)(iStack_1b4 + 0x60) = iVar14 * -0x33333333 + -1;
      }
      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;
    }
    return;
  }
  (**(code **)(pcVar21 + 0x26c0f8))
            (*(int *)(pcVar21 + 0x26b944) + 0x3574,0x231,*(int *)(pcVar21 + 0x26bfe4) + -0x2b1c);
  return;
}

