
/* 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,_false> * this, uint
   type, Output_data * od, Sized_relobj<64,_false> * relobj, uint shndx, Address address, Addend
   addend) */

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

{
  uint *puVar1;
  pointer pOVar2;
  pointer pOVar3;
  uint *puVar4;
  undefined4 *puVar5;
  undefined4 *puVar6;
  anon_union_4_4_c82d8563_for_u1_ aVar7;
  undefined4 uVar8;
  uint uVar9;
  undefined4 *puVar10;
  anon_union_4_4_c82d8563_for_u1_ *paVar11;
  anon_union_4_4_c82d8563_for_u1_ *paVar12;
  undefined *puVar13;
  undefined4 *puVar14;
  code **ppcVar15;
  code **ppcVar16;
  uint *puVar17;
  uint *puVar18;
  Output_data_reloc_base<4,_true,_64,_true> *this_00;
  pointer pOVar19;
  int iVar20;
  undefined4 *puVar21;
  int iVar22;
  int iVar23;
  uint *puVar24;
  anon_union_4_4_c82d8563_for_u1_ aVar25;
  undefined4 uVar26;
  int iVar27;
  code *pcVar28;
  uint uVar29;
  undefined4 *puVar30;
  Sized_relobj<64,_false> *pSVar31;
  undefined4 uVar32;
  uint uVar33;
  undefined *puVar34;
  code *pcVar35;
  code *pcVar36;
  undefined1 auStack_8a0 [44];
  int iStack_874;
  undefined4 *puStack_870;
  code *pcStack_86c;
  Output_data *pOStack_858;
  undefined4 *puStack_850;
  int iStack_84c;
  int iStack_848;
  code *pcStack_844;
  int iStack_830;
  undefined4 uStack_828;
  undefined4 uStack_824;
  undefined4 uStack_820;
  undefined4 uStack_81c;
  undefined4 uStack_818;
  undefined4 uStack_814;
  code *pcStack_810;
  undefined4 uStack_808;
  int iStack_804;
  int iStack_7f4;
  int iStack_7f0;
  undefined4 uStack_7e8;
  undefined4 uStack_7e4;
  undefined4 *puStack_7e0;
  int iStack_7dc;
  int iStack_7d8;
  code *pcStack_7d4;
  int iStack_7c0;
  undefined4 uStack_7b8;
  undefined4 uStack_7b4;
  undefined4 uStack_7b0;
  undefined4 uStack_7ac;
  undefined4 uStack_7a8;
  undefined4 uStack_7a4;
  code *pcStack_7a0;
  undefined4 uStack_798;
  int iStack_794;
  int iStack_784;
  int iStack_780;
  undefined4 uStack_778;
  undefined4 uStack_774;
  undefined4 *puStack_770;
  int iStack_76c;
  int iStack_768;
  code *pcStack_764;
  int iStack_750;
  int iStack_74c;
  undefined4 uStack_748;
  undefined4 uStack_744;
  undefined4 uStack_740;
  undefined4 uStack_73c;
  undefined4 uStack_738;
  undefined4 uStack_734;
  code *pcStack_730;
  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;
  uint 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;
  int iStack_66c;
  undefined4 uStack_668;
  undefined4 uStack_664;
  undefined4 uStack_660;
  undefined4 uStack_65c;
  uint 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;
  uint uStack_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;
  uint *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;
  uint uStack_488;
  int iStack_484;
  int iStack_474;
  int iStack_470;
  uint uStack_468;
  uint uStack_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;
  uint uStack_430;
  uint uStack_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;
  undefined4 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;
  int iStack_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;
  undefined4 *puStack_1f0;
  int iStack_1ec;
  code *pcStack_1e8;
  code *pcStack_1e4;
  undefined4 uStack_1d0;
  undefined4 uStack_1cc;
  undefined4 uStack_1c8;
  int iStack_1c4;
  code *pcStack_1c0;
  code *pcStack_1bc;
  undefined4 uStack_1b8;
  int iStack_1b4;
  int iStack_1a4;
  int iStack_1a0;
  undefined4 uStack_198;
  int iStack_194;
  code **ppcStack_190;
  int iStack_18c;
  int iStack_188;
  code *pcStack_184;
  undefined4 uStack_170;
  undefined4 uStack_16c;
  undefined4 uStack_168;
  int iStack_164;
  code *pcStack_160;
  code *pcStack_158;
  int iStack_154;
  int iStack_144;
  int iStack_140;
  code *pcStack_138;
  code *pcStack_134;
  undefined4 *puStack_130;
  int iStack_12c;
  int iStack_128;
  code *pcStack_124;
  Address AStack_110;
  undefined4 uStack_108;
  undefined4 uStack_104;
  code *pcStack_100;
  code *pcStack_fc;
  undefined4 uStack_f8;
  int iStack_f4;
  int iStack_e4;
  int iStack_e0;
  undefined4 uStack_d8;
  undefined4 uStack_d4;
  undefined4 *puStack_d0;
  undefined *puStack_cc;
  Sized_relobj<64,_false> *pSStack_c8;
  code *pcStack_c4;
  Address AStack_b0;
  undefined4 uStack_a8;
  undefined4 uStack_a4;
  undefined *puStack_a0;
  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,_false> *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_004c4170)(&local_38,type,relobj,shndx);
  pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.
            super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>
            ._M_impl._M_finish;
  local_18 = addend;
  if (pOVar19 ==
      (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.
      super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>
      ._M_impl._M_end_of_storage) {
    (*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_false>&>_004c3560)
              (&(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_,pOVar19,&local_38);
    pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.
              super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>
              ._M_impl._M_finish;
    pSVar31 = addend._4_4_;
    addend = local_18;
  }
  else {
    pOVar3 = pOVar19;
    paVar12 = &local_38;
    do {
      paVar11 = paVar12;
      pOVar2 = pOVar3;
      paVar12 = paVar11 + 4;
      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;
      pSVar31 = paVar11[1].relobj;
      aVar25 = paVar11[2];
      aVar7 = paVar11[3];
      (pOVar2->rel_).u1_ = *paVar11;
      (pOVar2->rel_).u2_.relobj = pSVar31;
      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar25;
      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar7;
    } while (paVar12 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18);
    pOVar19 = pOVar19 + 1;
    aVar7 = paVar11[5];
    *(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar12;
    *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar7;
    (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.
    super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>
    ._M_impl._M_finish = pOVar19;
  }
  iVar20 = (int)pOVar19 -
           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.
                super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>
                ._M_impl._M_start >> 3;
  if (-1 < *(int *)&(this->super_Output_data_reloc_base<4,_true,_64,_false>).
                    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,_false>).
                   super_Output_data_reloc_generic.super_Output_section_data_build.
                   super_Output_section_data.super_Output_data.data_size_ + 4) = iVar20 * 0x33333338
    ;
    *(undefined4 *)
     &(this->super_Output_data_reloc_base<4,_true,_64,_false>).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,_false>).super_Output_data_reloc_generic.
      relative_reloc_count_ =
           (this->super_Output_data_reloc_base<4,_true,_64,_false>).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) = iVar20 * -0x33333333 + -1;
      }
      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;
    }
    return;
  }
  pcVar35 = add_output_section_relative;
  puVar13 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;
  puVar34 = PTR_do_gold_unreachable_004c1a30;
  local_18 = addend;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (puVar13,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);
  puStack_a0 = puVar34 + 0x276c94;
  uStack_a8 = 1;
  paStack_70 = &local_38;
  pOStack_6c = this;
  pOStack_68 = od;
  pcStack_64 = pcVar35;
  AStack_b0 = local_50;
  (**(code **)(puVar34 + 0x26f9f4))(&uStack_98);
  puVar21 = *(undefined4 **)(puVar13 + 0x3c);
  iStack_74 = iStack_44;
  uStack_78 = local_48;
  if (puVar21 == *(undefined4 **)(puVar13 + 0x40)) {
    (**(code **)(puStack_a0 + -0x5ce0))(puVar13 + 0x38,puVar21,&uStack_98);
    puVar21 = *(undefined4 **)(puVar13 + 0x3c);
    iVar20 = iStack_44;
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_98;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar20 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar20;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_78);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(puVar13 + 0x3c) = puVar21;
  }
  iVar22 = (int)puVar21 - *(int *)(puVar13 + 0x38) >> 3;
  if (-1 < *(int *)(puVar13 + 0x20) << 1) {
    *(int *)(puVar13 + 0x14) = iVar22 * 0x33333338;
    *(undefined4 *)(puVar13 + 0x10) = 0;
    *(byte *)&(pSVar31->super_Relobj).super_Object.offset_ =
         *(byte *)&(pSVar31->super_Relobj).super_Object.offset_ & 0xf7 | 8;
    if (iStack_84 << 0x1c < 0) {
      *(int *)(puVar13 + 0x30) = *(int *)(puVar13 + 0x30) + 1;
    }
    if ((iStack_80 != -4) && (iStack_94 != 0)) {
      if (*(int *)(iStack_94 + 100) == 0) {
        *(int *)(iStack_94 + 0x60) = iVar22 * -0x33333333 + -1;
      }
      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(puStack_a0 + -0x7810);
  pcVar36 = add_output_section_generic;
  iVar22 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar22,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);
  pcStack_100 = pcVar35 + 0x276ae4;
  uStack_108 = 0;
  puStack_d0 = &uStack_98;
  puStack_cc = puVar13;
  pSStack_c8 = pSVar31;
  pcStack_c4 = pcVar36;
  AStack_110 = AStack_b0;
  (**(code **)(pcVar35 + 0x26f844))(&uStack_f8);
  puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  uStack_d4 = uStack_a4;
  uStack_d8 = uStack_a8;
  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {
    (**(code **)(pcStack_100 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_f8);
    puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_f8;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar32 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar32;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_d8);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar22 + 0x3c) = puVar21;
  }
  iVar23 = (int)puVar21 - *(int *)(iVar22 + 0x38) >> 3;
  if (-1 < *(int *)(iVar22 + 0x20) << 1) {
    *(int *)(iVar22 + 0x14) = iVar23 * 0x33333338;
    *(undefined4 *)(iVar22 + 0x10) = 0;
    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;
    if (iStack_e4 << 0x1c < 0) {
      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;
    }
    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {
      if (*(int *)(iStack_f4 + 100) == 0) {
        *(int *)(iStack_f4 + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_100 + -0x7810);
  iVar27 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;
  pcVar36 = add_absolute;
  iVar23 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar23,0x231);
  pcStack_160 = pcVar35 + 0x276938;
  uStack_168 = 0;
  uStack_16c = uStack_104;
  uStack_170 = uStack_108;
  puStack_130 = &uStack_f8;
  iStack_12c = iVar22;
  iStack_128 = iVar20;
  pcStack_124 = pcVar36;
  (**(code **)(pcVar35 + 0x271868))(&pcStack_158);
  puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  pcStack_134 = pcStack_fc;
  pcStack_138 = pcStack_100;
  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {
    (**(code **)(pcStack_160 + -0x5ce0))(iVar23 + 0x38,puVar21,&pcStack_158);
    puVar21 = *(undefined4 **)(iVar23 + 0x3c);
    pcVar35 = pcStack_fc;
  }
  else {
    puVar30 = puVar21;
    ppcVar15 = &pcStack_158;
    do {
      ppcVar16 = ppcVar15;
      puVar14 = puVar30;
      ppcVar15 = ppcVar16 + 4;
      pcVar35 = ppcVar16[1];
      pcVar28 = ppcVar16[2];
      pcVar36 = ppcVar16[3];
      *puVar14 = *ppcVar16;
      puVar14[1] = pcVar35;
      puVar14[2] = pcVar28;
      puVar14[3] = pcVar36;
      puVar30 = puVar14 + 4;
    } while (ppcVar15 != &pcStack_138);
    puVar21 = puVar21 + 10;
    pcVar36 = ppcVar16[5];
    puVar14[4] = *ppcVar15;
    puVar14[5] = pcVar36;
    *(undefined4 **)(iVar23 + 0x3c) = puVar21;
  }
  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;
  if (-1 < *(int *)(iVar23 + 0x20) << 1) {
    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;
    *(undefined4 *)(iVar23 + 0x10) = 0;
    *(byte *)(iVar27 + 0x20) = *(byte *)(iVar27 + 0x20) & 0xf7 | 8;
    if (iStack_144 << 0x1c < 0) {
      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;
    }
    if ((iStack_140 != -4) && (iStack_154 != 0)) {
      if (*(int *)(iStack_154 + 100) == 0) {
        *(int *)(iStack_154 + 0x60) = iVar20 * -0x33333333 + -1;
      }
      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;
    }
    return;
  }
  pcVar36 = *(code **)(pcStack_160 + -0x7810);
  pcVar28 = add_output_section;
  iVar20 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;
  (*pcVar36)(iVar20,0x231,*(int *)(pcStack_160 + -0x7924) + -0x2b1c);
  pcStack_1c0 = pcVar36 + 0x276780;
  uStack_1d0 = uStack_170;
  uStack_1c8 = 0;
  uStack_1cc = uStack_16c;
  ppcStack_190 = &pcStack_158;
  iStack_18c = iVar23;
  iStack_188 = iVar27;
  pcStack_184 = pcVar28;
  (**(code **)(pcVar36 + 0x26f4e0))(&uStack_1b8);
  puVar21 = *(undefined4 **)(iVar20 + 0x3c);
  iStack_194 = iStack_164;
  uStack_198 = uStack_168;
  if (puVar21 == *(undefined4 **)(iVar20 + 0x40)) {
    (**(code **)(pcStack_1c0 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_1b8);
    puVar21 = *(undefined4 **)(iVar20 + 0x3c);
    iVar22 = iStack_164;
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_1b8;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar22 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar22;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_198);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar20 + 0x3c) = puVar21;
  }
  iVar23 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3;
  if (-1 < *(int *)(iVar20 + 0x20) << 1) {
    *(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;
    *(undefined4 *)(iVar20 + 0x10) = 0;
    pcVar35[0x20] = (code)((byte)pcVar35[0x20] & 0xf7 | 8);
    if (iStack_1a4 << 0x1c < 0) {
      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;
    }
    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {
      if (*(int *)(iStack_1b4 + 100) == 0) {
        *(int *)(iStack_1b4 + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;
    }
    return;
  }
  pcVar36 = *(code **)(pcStack_1c0 + -0x7810);
  pcVar28 = add_output_section_relative;
  iVar23 = *(int *)(pcStack_1c0 + -0x7fc4) + 0x3574;
  (*pcVar36)(iVar23,0x231,*(int *)(pcStack_1c0 + -0x7924) + -0x2b1c);
  pcStack_220 = pcVar36 + 0x2765d4;
  uStack_228 = 1;
  uStack_230 = uStack_1c8;
  iStack_22c = iStack_1c4;
  uStack_238 = uStack_1cc;
  puStack_1f0 = &uStack_1b8;
  iStack_1ec = iVar20;
  pcStack_1e8 = pcVar35;
  pcStack_1e4 = pcVar28;
  (**(code **)(pcVar36 + 0x26f338))(&pcStack_218);
  puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  pcStack_1f4 = pcStack_1bc;
  pcStack_1f8 = pcStack_1c0;
  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {
    (**(code **)(pcStack_220 + -0x5ce0))(iVar23 + 0x38,puVar21,&pcStack_218);
    puVar21 = *(undefined4 **)(iVar23 + 0x3c);
    pcVar35 = pcStack_1bc;
  }
  else {
    puVar30 = puVar21;
    ppcVar15 = &pcStack_218;
    do {
      ppcVar16 = ppcVar15;
      puVar14 = puVar30;
      ppcVar15 = ppcVar16 + 4;
      pcVar35 = ppcVar16[1];
      pcVar28 = ppcVar16[2];
      pcVar36 = ppcVar16[3];
      *puVar14 = *ppcVar16;
      puVar14[1] = pcVar35;
      puVar14[2] = pcVar28;
      puVar14[3] = pcVar36;
      puVar30 = puVar14 + 4;
    } while (ppcVar15 != &pcStack_1f8);
    puVar21 = puVar21 + 10;
    pcVar36 = ppcVar16[5];
    puVar14[4] = *ppcVar15;
    puVar14[5] = pcVar36;
    *(undefined4 **)(iVar23 + 0x3c) = puVar21;
  }
  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;
  if (-1 < *(int *)(iVar23 + 0x20) << 1) {
    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;
    *(undefined4 *)(iVar23 + 0x10) = 0;
    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;
    if (iStack_204 << 0x1c < 0) {
      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;
    }
    if ((iStack_200 != -4) && (iStack_214 != 0)) {
      if (*(int *)(iStack_214 + 100) == 0) {
        *(int *)(iStack_214 + 0x60) = iVar20 * -0x33333333 + -1;
      }
      *(int *)(iStack_214 + 100) = *(int *)(iStack_214 + 100) + 1;
    }
    return;
  }
  pcVar36 = *(code **)(pcStack_220 + -0x7810);
  pcVar28 = add_output_section_generic;
  iVar20 = *(int *)(pcStack_220 + -0x7fc4) + 0x3574;
  (*pcVar36)(iVar20,0x231,*(int *)(pcStack_220 + -0x7924) + -0x2b1c);
  pcStack_288 = pcVar36 + 0x276418;
  uStack_298 = uStack_230;
  uStack_290 = 0;
  iStack_294 = iStack_22c;
  uStack_2a0 = uStack_234;
  ppcStack_258 = &pcStack_218;
  iStack_254 = iVar23;
  iStack_250 = iVar22;
  pcStack_24c = pcVar28;
  (**(code **)(pcVar36 + 0x26f17c))(&uStack_280);
  puVar21 = *(undefined4 **)(iVar20 + 0x3c);
  iStack_25c = iStack_224;
  uStack_260 = uStack_228;
  if (puVar21 == *(undefined4 **)(iVar20 + 0x40)) {
    (**(code **)(pcStack_288 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_280);
    puVar21 = *(undefined4 **)(iVar20 + 0x3c);
    iVar22 = iStack_224;
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_280;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar22 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar22;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_260);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar20 + 0x3c) = puVar21;
  }
  iVar23 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3;
  if (-1 < *(int *)(iVar20 + 0x20) << 1) {
    *(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;
    *(undefined4 *)(iVar20 + 0x10) = 0;
    pcVar35[0x20] = (code)((byte)pcVar35[0x20] & 0xf7 | 8);
    if (iStack_26c << 0x1c < 0) {
      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;
    }
    if ((iStack_268 != -4) && (iStack_27c != 0)) {
      if (*(int *)(iStack_27c + 100) == 0) {
        *(int *)(iStack_27c + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_27c + 100) = *(int *)(iStack_27c + 100) + 1;
    }
    return;
  }
  pcVar36 = *(code **)(pcStack_288 + -0x7810);
  pcVar28 = add_output_section;
  iVar23 = *(int *)(pcStack_288 + -0x7fc4) + 0x3574;
  (*pcVar36)(iVar23,0x231,*(int *)(pcStack_288 + -0x7924) + -0x2b1c);
  pcStack_2f0 = pcVar36 + 0x276260;
  uStack_300 = uStack_298;
  uStack_2f8 = 0;
  iStack_2fc = iStack_294;
  uStack_308 = uStack_29c;
  puStack_2c0 = &uStack_280;
  iStack_2bc = iVar20;
  pcStack_2b8 = pcVar35;
  pcStack_2b4 = pcVar28;
  (**(code **)(pcVar36 + 0x26efc4))(&uStack_2e8);
  puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  iStack_2c4 = iStack_28c;
  uStack_2c8 = uStack_290;
  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {
    (**(code **)(pcStack_2f0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_2e8);
    puVar21 = *(undefined4 **)(iVar23 + 0x3c);
    iVar20 = iStack_28c;
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_2e8;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar20 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar20;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_2c8);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar23 + 0x3c) = puVar21;
  }
  iVar27 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;
  if (-1 < *(int *)(iVar23 + 0x20) << 1) {
    *(int *)(iVar23 + 0x14) = iVar27 * 0x33333338;
    *(undefined4 *)(iVar23 + 0x10) = 0;
    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;
    if (iStack_2d4 << 0x1c < 0) {
      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;
    }
    if ((iStack_2d0 != -4) && (iStack_2e4 != 0)) {
      if (*(int *)(iStack_2e4 + 100) == 0) {
        *(int *)(iStack_2e4 + 0x60) = iVar27 * -0x33333333 + -1;
      }
      *(int *)(iStack_2e4 + 100) = *(int *)(iStack_2e4 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_2f0 + -0x7810);
  pcVar36 = add_global;
  iVar27 = *(int *)(pcStack_2f0 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar27,0x231,*(int *)(pcStack_2f0 + -0x7924) + -0x2b1c);
  pcStack_358 = pcVar35 + 0x2760a8;
  uStack_370 = uStack_308;
  uStack_360 = 0;
  iStack_364 = 0;
  uStack_368 = 0;
  uStack_36c = uStack_304;
  puStack_328 = &uStack_2e8;
  iStack_324 = iVar23;
  iStack_320 = iVar22;
  pcStack_31c = pcVar36;
  (**(code **)(pcVar35 + 0x26ead0))(&uStack_350);
  puVar21 = *(undefined4 **)(iVar27 + 0x3c);
  iStack_32c = iStack_2fc;
  uStack_330 = uStack_300;
  if (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {
    iVar22 = iStack_2fc;
    (**(code **)(pcStack_358 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_350);
    puVar21 = *(undefined4 **)(iVar27 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_350;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar22 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar22;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_330);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar27 + 0x3c) = puVar21;
  }
  iVar23 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;
  if (-1 < *(int *)(iVar27 + 0x20) << 1) {
    *(int *)(iVar27 + 0x14) = iVar23 * 0x33333338;
    *(undefined4 *)(iVar27 + 0x10) = 0;
    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;
    if (iStack_33c << 0x1c < 0) {
      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;
    }
    if ((iStack_338 != -4) && (iStack_34c != 0)) {
      if (*(int *)(iStack_34c + 100) == 0) {
        *(int *)(iStack_34c + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_34c + 100) = *(int *)(iStack_34c + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_358 + -0x7810);
  pcVar36 = add_symbolless_global_addend;
  iVar23 = *(int *)(pcStack_358 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_358 + -0x7924) + -0x2b1c);
  pcStack_3c0 = pcVar35 + 0x275ef4;
  iStack_3cc = 1;
  uStack_3c8 = 0;
  uStack_3d0 = 0;
  uStack_3d4 = uStack_36c;
  uStack_3d8 = uStack_370;
  puStack_390 = &uStack_350;
  iStack_38c = iVar27;
  iStack_388 = iVar20;
  pcStack_384 = pcVar36;
  (**(code **)(pcVar35 + 0x26e91c))(&uStack_3b8);
  puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  iStack_394 = iStack_364;
  uStack_398 = uStack_368;
  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {
    iVar20 = iStack_364;
    (**(code **)(pcStack_3c0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_3b8);
    puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_3b8;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar20 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar20;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_398);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar23 + 0x3c) = puVar21;
  }
  iVar27 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;
  if (-1 < *(int *)(iVar23 + 0x20) << 1) {
    *(int *)(iVar23 + 0x14) = iVar27 * 0x33333338;
    *(undefined4 *)(iVar23 + 0x10) = 0;
    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;
    if (iStack_3a4 << 0x1c < 0) {
      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;
    }
    if ((iStack_3a0 != -4) && (iStack_3b4 != 0)) {
      if (*(int *)(iStack_3b4 + 100) == 0) {
        *(int *)(iStack_3b4 + 0x60) = iVar27 * -0x33333333 + -1;
      }
      *(int *)(iStack_3b4 + 100) = *(int *)(iStack_3b4 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_3c0 + -0x7810);
  pcVar36 = add_global_relative;
  iVar27 = *(int *)(pcStack_3c0 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar27,0x231,*(int *)(pcStack_3c0 + -0x7924) + -0x2b1c);
  pcStack_428 = pcVar35 + 0x275d3c;
  uStack_430 = uStack_3c8 & 0xff;
  uStack_434 = 1;
  uStack_438 = 1;
  uStack_440 = uStack_3d8;
  uStack_43c = uStack_3d4;
  puStack_3f8 = &uStack_3b8;
  iStack_3f4 = iVar23;
  iStack_3f0 = iVar22;
  pcStack_3ec = pcVar36;
  (**(code **)(pcVar35 + 0x26e764))(&uStack_420);
  puVar21 = *(undefined4 **)(iVar27 + 0x3c);
  iStack_3fc = iStack_3cc;
  uStack_400 = uStack_3d0;
  if (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {
    iVar22 = iStack_3cc;
    (**(code **)(pcStack_428 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_420);
    puVar21 = *(undefined4 **)(iVar27 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_420;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar22 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar22;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_400);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar27 + 0x3c) = puVar21;
  }
  iVar23 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;
  if (-1 < *(int *)(iVar27 + 0x20) << 1) {
    *(int *)(iVar27 + 0x14) = iVar23 * 0x33333338;
    *(undefined4 *)(iVar27 + 0x10) = 0;
    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;
    if (iStack_40c << 0x1c < 0) {
      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;
    }
    if ((iStack_408 != -4) && (iStack_41c != 0)) {
      if (*(int *)(iStack_41c + 100) == 0) {
        *(int *)(iStack_41c + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_41c + 100) = *(int *)(iStack_41c + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_428 + -0x7810);
  pcVar36 = add_global;
  iVar23 = *(int *)(pcStack_428 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_428 + -0x7924) + -0x2b1c);
  pcStack_490 = pcVar35 + 0x275b80;
  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 = iVar27;
  iStack_458 = iVar20;
  pcStack_454 = pcVar36;
  (**(code **)(pcVar35 + 0x26e7d0))(&uStack_488);
  puVar24 = *(uint **)(iVar23 + 0x3c);
  uStack_464 = uStack_42c;
  uStack_468 = uStack_430;
  if (puVar24 == *(uint **)(iVar23 + 0x40)) {
    (**(code **)(pcStack_490 + -0x5ce0))(iVar23 + 0x38,puVar24,&uStack_488);
    puVar24 = *(uint **)(iVar23 + 0x3c);
    uVar33 = uStack_42c;
  }
  else {
    puVar1 = puVar24;
    puVar18 = &uStack_488;
    do {
      puVar17 = puVar18;
      puVar4 = puVar1;
      puVar18 = puVar17 + 4;
      uVar33 = puVar17[1];
      uVar29 = puVar17[2];
      uVar9 = puVar17[3];
      *puVar4 = *puVar17;
      puVar4[1] = uVar33;
      puVar4[2] = uVar29;
      puVar4[3] = uVar9;
      puVar1 = puVar4 + 4;
    } while (puVar18 != &uStack_468);
    puVar24 = puVar24 + 10;
    uVar9 = puVar17[5];
    puVar4[4] = *puVar18;
    puVar4[5] = uVar9;
    *(uint **)(iVar23 + 0x3c) = puVar24;
  }
  iVar20 = (int)puVar24 - *(int *)(iVar23 + 0x38) >> 3;
  if (-1 < *(int *)(iVar23 + 0x20) << 1) {
    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;
    *(undefined4 *)(iVar23 + 0x10) = 0;
    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;
    if (iStack_474 << 0x1c < 0) {
      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;
    }
    if ((iStack_470 != -4) && (iStack_484 != 0)) {
      if (*(int *)(iStack_484 + 100) == 0) {
        *(int *)(iStack_484 + 0x60) = iVar20 * -0x33333333 + -1;
      }
      *(int *)(iStack_484 + 100) = *(int *)(iStack_484 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_490 + -0x7810);
  pcVar36 = add_symbolless_global_addend;
  iVar20 = *(int *)(pcStack_490 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar20,0x231,*(int *)(pcStack_490 + -0x7924) + -0x2b1c);
  pcStack_500 = pcVar35 + 0x2759c0;
  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 = iVar23;
  iStack_4c8 = iVar22;
  pcStack_4c4 = pcVar36;
  (**(code **)(pcVar35 + 0x26e610))(&uStack_4f8);
  puVar21 = *(undefined4 **)(iVar20 + 0x3c);
  iStack_4d4 = iStack_49c;
  uStack_4d8 = uStack_4a0;
  if (puVar21 == *(undefined4 **)(iVar20 + 0x40)) {
    iVar22 = iStack_49c;
    (**(code **)(pcStack_500 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_4f8);
    puVar21 = *(undefined4 **)(iVar20 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_4f8;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar22 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar22;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_4d8);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar20 + 0x3c) = puVar21;
  }
  iVar23 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3;
  if (-1 < *(int *)(iVar20 + 0x20) << 1) {
    *(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;
    *(undefined4 *)(iVar20 + 0x10) = 0;
    *(byte *)(uVar33 + 0x20) = *(byte *)(uVar33 + 0x20) & 0xf7 | 8;
    if (iStack_4e4 << 0x1c < 0) {
      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;
    }
    if ((iStack_4e0 != -4) && (iStack_4f4 != 0)) {
      if (*(int *)(iStack_4f4 + 100) == 0) {
        *(int *)(iStack_4f4 + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_4f4 + 100) = *(int *)(iStack_4f4 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_500 + -0x7810);
  pcVar36 = add_global_relative;
  iVar23 = *(int *)(pcStack_500 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_500 + -0x7924) + -0x2b1c);
  pcStack_570 = pcVar35 + 0x2757fc;
  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 = iVar20;
  uStack_538 = uVar33;
  pcStack_534 = pcVar36;
  (**(code **)(pcVar35 + 0x26e44c))(&uStack_568);
  puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  uStack_544 = uStack_50c;
  uStack_548 = uStack_510;
  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {
    (**(code **)(pcStack_570 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_568);
    puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_568;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar32 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar32;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_548);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar23 + 0x3c) = puVar21;
  }
  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;
  if (-1 < *(int *)(iVar23 + 0x20) << 1) {
    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;
    *(undefined4 *)(iVar23 + 0x10) = 0;
    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;
    if (iStack_554 << 0x1c < 0) {
      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;
    }
    if ((iStack_550 != -4) && (iStack_564 != 0)) {
      if (*(int *)(iStack_564 + 100) == 0) {
        *(int *)(iStack_564 + 0x60) = iVar20 * -0x33333333 + -1;
      }
      *(int *)(iStack_564 + 100) = *(int *)(iStack_564 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_570 + -0x7810);
  pcVar36 = add_local;
  iVar27 = *(int *)(pcStack_570 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar27,0x231,*(int *)(pcStack_570 + -0x7924) + -0x2b1c);
  iVar20 = iStack_590;
  pcStack_5e0 = pcVar35 + 0x275634;
  uStack_5f8 = uStack_588;
  uStack_5e4 = 0;
  uStack_5e8 = 0;
  uStack_5ec = 0;
  uStack_5f0 = 0;
  uStack_5f4 = uStack_584;
  iStack_600 = iStack_58c;
  puStack_5b0 = &uStack_568;
  iStack_5ac = iVar23;
  iStack_5a8 = iVar22;
  pcStack_5a4 = pcVar36;
  (**(code **)(pcVar35 + 0x26e06c))(&uStack_5d8);
  puVar21 = *(undefined4 **)(iVar27 + 0x3c);
  uStack_5b4 = uStack_57c;
  uStack_5b8 = uStack_580;
  if (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {
    (**(code **)(pcStack_5e0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_5d8);
    puVar21 = *(undefined4 **)(iVar27 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_5d8;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar32 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar32;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_5b8);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar27 + 0x3c) = puVar21;
  }
  iVar22 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;
  if (-1 < *(int *)(iVar27 + 0x20) << 1) {
    *(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;
    *(undefined4 *)(iVar27 + 0x10) = 0;
    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;
    if (iStack_5c4 << 0x1c < 0) {
      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;
    }
    if ((iStack_5c0 != -4) && (iStack_5d4 != 0)) {
      if (*(int *)(iStack_5d4 + 100) == 0) {
        *(int *)(iStack_5d4 + 0x60) = iVar22 * -0x33333333 + -1;
      }
      *(int *)(iStack_5d4 + 100) = *(int *)(iStack_5d4 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_5e0 + -0x7810);
  pcVar36 = add_local;
  iVar23 = *(int *)(pcStack_5e0 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_5e0 + -0x7924) + -0x2b1c);
  iVar22 = iStack_600;
  pcStack_650 = pcVar35 + 0x275474;
  iStack_618 = iVar20;
  uStack_668 = uStack_5f8;
  uStack_654 = 0;
  uStack_658 = 0;
  uStack_65c = 0;
  uStack_660 = 0;
  uStack_664 = uStack_5f4;
  iStack_670 = iStack_600;
  puStack_620 = &uStack_5d8;
  iStack_61c = iVar27;
  pcStack_614 = pcVar36;
  (**(code **)(pcVar35 + 0x26e030))(&uStack_648);
  puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  uStack_624 = uStack_5ec;
  uStack_628 = uStack_5f0;
  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {
    (**(code **)(pcStack_650 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_648);
    puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_648;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar32 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar32;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_628);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar23 + 0x3c) = puVar21;
  }
  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;
  if (-1 < *(int *)(iVar23 + 0x20) << 1) {
    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;
    *(undefined4 *)(iVar23 + 0x10) = 0;
    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;
    if (iStack_634 << 0x1c < 0) {
      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;
    }
    if ((iStack_630 != -4) && (iStack_644 != 0)) {
      if (*(int *)(iStack_644 + 100) == 0) {
        *(int *)(iStack_644 + 0x60) = iVar20 * -0x33333333 + -1;
      }
      *(int *)(iStack_644 + 100) = *(int *)(iStack_644 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_650 + -0x7810);
  pcVar36 = add_local_relative;
  iVar27 = *(int *)(pcStack_650 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar27,0x231,*(int *)(pcStack_650 + -0x7924) + -0x2b1c);
  iVar20 = iStack_670;
  pcStack_6c0 = pcVar35 + 0x2752b8;
  uStack_6c4 = uStack_658 & 0xff;
  uStack_6cc = 1;
  uStack_6d0 = 1;
  uStack_6d8 = uStack_668;
  iStack_688 = iVar22;
  uStack_6c8 = 0;
  uStack_6d4 = uStack_664;
  iStack_6e0 = iStack_66c;
  puStack_690 = &uStack_648;
  iStack_68c = iVar23;
  pcStack_684 = pcVar36;
  (**(code **)(pcVar35 + 0x26dcf0))(&uStack_6b8);
  puVar21 = *(undefined4 **)(iVar27 + 0x3c);
  uStack_694 = uStack_65c;
  uStack_698 = uStack_660;
  if (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {
    (**(code **)(pcStack_6c0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_6b8);
    puVar21 = *(undefined4 **)(iVar27 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_6b8;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar32 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar32;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_698);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar27 + 0x3c) = puVar21;
  }
  iVar22 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;
  if (-1 < *(int *)(iVar27 + 0x20) << 1) {
    *(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;
    *(undefined4 *)(iVar27 + 0x10) = 0;
    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;
    if (iStack_6a4 << 0x1c < 0) {
      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;
    }
    if ((iStack_6a0 != -4) && (iStack_6b4 != 0)) {
      if (*(int *)(iStack_6b4 + 100) == 0) {
        *(int *)(iStack_6b4 + 0x60) = iVar22 * -0x33333333 + -1;
      }
      *(int *)(iStack_6b4 + 100) = *(int *)(iStack_6b4 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_6c0 + -0x7810);
  pcVar36 = add_symbolless_local_addend;
  iVar23 = *(int *)(pcStack_6c0 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_6c0 + -0x7924) + -0x2b1c);
  iVar22 = iStack_6e0;
  pcStack_730 = pcVar35 + 0x2750f0;
  iStack_6f8 = iVar20;
  uStack_73c = 1;
  uStack_734 = 0;
  uStack_738 = 0;
  uStack_740 = 0;
  uStack_744 = uStack_6d4;
  uStack_748 = uStack_6d8;
  iStack_750 = iStack_6e0;
  puStack_700 = &uStack_6b8;
  iStack_6fc = iVar27;
  pcStack_6f4 = pcVar36;
  (**(code **)(pcVar35 + 0x26dcac))(&uStack_728);
  puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  uStack_704 = uStack_6cc;
  uStack_708 = uStack_6d0;
  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {
    (**(code **)(pcStack_730 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_728);
    puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_728;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar32 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar32;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_708);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar23 + 0x3c) = puVar21;
  }
  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;
  if (-1 < *(int *)(iVar23 + 0x20) << 1) {
    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;
    *(undefined4 *)(iVar23 + 0x10) = 0;
    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;
    if (iStack_714 << 0x1c < 0) {
      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;
    }
    if ((iStack_710 != -4) && (iStack_724 != 0)) {
      if (*(int *)(iStack_724 + 100) == 0) {
        *(int *)(iStack_724 + 0x60) = iVar20 * -0x33333333 + -1;
      }
      *(int *)(iStack_724 + 100) = *(int *)(iStack_724 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_730 + -0x7810);
  pcVar36 = add_symbolless_local_addend;
  iVar27 = *(int *)(pcStack_730 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar27,0x231,*(int *)(pcStack_730 + -0x7924) + -0x2b1c);
  iVar20 = iStack_750;
  pcStack_7a0 = pcVar35 + 0x274f30;
  uStack_7ac = 1;
  uStack_7b8 = uStack_748;
  iStack_768 = iVar22;
  uStack_7a4 = 0;
  uStack_7a8 = 0;
  uStack_7b0 = 0;
  uStack_7b4 = uStack_744;
  iStack_7c0 = iStack_74c;
  puStack_770 = &uStack_728;
  iStack_76c = iVar23;
  pcStack_764 = pcVar36;
  (**(code **)(pcVar35 + 0x26d968))(&uStack_798);
  puVar21 = *(undefined4 **)(iVar27 + 0x3c);
  uStack_774 = uStack_73c;
  uStack_778 = uStack_740;
  if (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {
    (**(code **)(pcStack_7a0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_798);
    puVar21 = *(undefined4 **)(iVar27 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_798;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar32 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar32;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_778);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar27 + 0x3c) = puVar21;
  }
  iVar22 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;
  if (-1 < *(int *)(iVar27 + 0x20) << 1) {
    *(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;
    *(undefined4 *)(iVar27 + 0x10) = 0;
    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;
    if (iStack_784 << 0x1c < 0) {
      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;
    }
    if ((iStack_780 != -4) && (iStack_794 != 0)) {
      if (*(int *)(iStack_794 + 100) == 0) {
        *(int *)(iStack_794 + 0x60) = iVar22 * -0x33333333 + -1;
      }
      *(int *)(iStack_794 + 100) = *(int *)(iStack_794 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_7a0 + -0x7810);
  pcVar36 = add_local_section;
  iVar23 = *(int *)(pcStack_7a0 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_7a0 + -0x7924) + -0x2b1c);
  iVar22 = iStack_7c0;
  pcStack_810 = pcVar35 + 0x274d6c;
  iStack_7d8 = iVar20;
  uStack_818 = 1;
  uStack_814 = 0;
  uStack_81c = 0;
  uStack_820 = 0;
  uStack_824 = uStack_7b4;
  uStack_828 = uStack_7b8;
  iStack_830 = iStack_7c0;
  puStack_7e0 = &uStack_798;
  iStack_7dc = iVar27;
  pcStack_7d4 = pcVar36;
  (**(code **)(pcVar35 + 0x26d928))(&uStack_808);
  puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  uStack_7e4 = uStack_7ac;
  uStack_7e8 = uStack_7b0;
  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {
    (**(code **)(pcStack_810 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_808);
    puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_808;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar32 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar32;
      puVar5[2] = uVar26;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_7e8);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar23 + 0x3c) = puVar21;
  }
  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;
  if (-1 < *(int *)(iVar23 + 0x20) << 1) {
    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;
    *(undefined4 *)(iVar23 + 0x10) = 0;
    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;
    if (iStack_7f4 << 0x1c < 0) {
      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;
    }
    if ((iStack_7f0 != -4) && (iStack_804 != 0)) {
      if (*(int *)(iStack_804 + 100) == 0) {
        *(int *)(iStack_804 + 0x60) = iVar20 * -0x33333333 + -1;
      }
      *(int *)(iStack_804 + 100) = *(int *)(iStack_804 + 100) + 1;
    }
    return;
  }
  iVar27 = 0x231;
  pcVar35 = *(code **)(pcStack_810 + -0x7810);
  puVar30 = (undefined4 *)(*(int *)(pcStack_810 + -0x7924) + -0x2b1c);
  pcVar36 = Output_data_reloc_base<4,_true,_64,_true>::add;
  iVar20 = *(int *)(pcStack_810 + -0x7fc4) + 0x3574;
  (*pcVar35)();
  pOStack_858 = (Output_data *)(pcVar35 + 0x274bac);
  iStack_848 = iVar22;
  puVar21 = *(undefined4 **)(iVar20 + 0x3c);
  puStack_850 = &uStack_808;
  iStack_84c = iVar23;
  pcStack_844 = pcVar36;
  if (puVar21 == *(undefined4 **)(iVar20 + 0x40)) {
    (**(code **)(pcVar35 + 0x26eefc))(iVar20 + 0x38);
    puVar21 = *(undefined4 **)(iVar20 + 0x3c);
  }
  else {
    puVar14 = puVar30;
    puVar5 = puVar21;
    do {
      puVar10 = puVar5;
      puVar6 = puVar14;
      puVar14 = puVar6 + 4;
      uVar32 = puVar6[1];
      uVar26 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar10 = *puVar6;
      puVar10[1] = uVar32;
      puVar10[2] = uVar26;
      puVar10[3] = uVar8;
      puVar5 = puVar10 + 4;
    } while (puVar14 != puVar30 + 8);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar10[4] = *puVar14;
    puVar10[5] = uVar8;
    *(undefined4 **)(iVar20 + 0x3c) = puVar21;
  }
  iVar22 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3;
  if (-1 < *(int *)(iVar20 + 0x20) << 1) {
    iVar23 = puVar30[5];
    *(int *)(iVar20 + 0x14) = iVar22 * 0x33333338;
    *(undefined4 *)(iVar20 + 0x10) = 0;
    *(byte *)(iVar27 + 0x20) = *(byte *)(iVar27 + 0x20) & 0xf7 | 8;
    if (iVar23 << 0x1c < 0) {
      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;
    }
    if ((puVar30[6] != -4) && (iVar20 = puVar30[1], iVar20 != 0)) {
      if (*(int *)(iVar20 + 100) == 0) {
        *(int *)(iVar20 + 0x60) = iVar22 * -0x33333333 + -1;
      }
      *(int *)(iVar20 + 100) = *(int *)(iVar20 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)&pOStack_858[-0x301].offset_;
  pcVar36 = Output_data_reloc<4,_true,_64,_true>::add_local;
  this_00 = (Output_data_reloc_base<4,_true,_64,_true> *)
            ((int)pOStack_858[-0x332].address_ + 0x3574);
  (*pcVar35)(this_00,0x231,(int)pOStack_858[-0x308].offset_ + -0x2b1c);
  iStack_874 = iVar20;
  puStack_870 = puVar30;
  pcStack_86c = pcVar36;
  (**(code **)(pcVar35 + 0x26d47c))((Output_reloc_type *)auStack_8a0);
  auStack_8a0._36_4_ = pcStack_844;
  auStack_8a0._32_4_ = iStack_848;
  Output_data_reloc_base<4,_true,_64,_true>::add
            (this_00,pOStack_858,(Output_reloc_type *)auStack_8a0);
  return;
}



void FUN_002523f0(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;
  undefined4 *puVar6;
  code **ppcVar7;
  code **ppcVar8;
  undefined4 *puVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  undefined4 uVar13;
  int iVar14;
  code *pcVar15;
  undefined4 uVar16;
  code *pcVar17;
  undefined *puVar18;
  code *pcVar19;
  code *pcVar20;
  code *pcStack_158;
  int iStack_154;
  int iStack_144;
  int iStack_140;
  code *pcStack_138;
  undefined4 uStack_134;
  undefined4 *puStack_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;
  undefined4 uStack_fc;
  undefined4 uStack_f8;
  int iStack_f4;
  int iStack_e4;
  int iStack_e0;
  undefined4 uStack_d8;
  undefined4 uStack_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;
  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_004c4170)(&local_38,param_2,param_4,param_5);
  puVar9 = *(undefined4 **)(param_1 + 0x3c);
  local_14 = param_10;
  local_18 = param_9;
  if (puVar9 == *(undefined4 **)(param_1 + 0x40)) {
    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)
              (param_1 + 0x38,puVar9,&local_38);
    puVar9 = *(undefined4 **)(param_1 + 0x3c);
  }
  else {
    puVar1 = puVar9;
    puVar4 = &local_38;
    do {
      puVar6 = puVar4;
      puVar2 = puVar1;
      puVar4 = puVar6 + 4;
      param_10 = puVar6[1];
      uVar13 = puVar6[2];
      uVar3 = puVar6[3];
      *puVar2 = *puVar6;
      puVar2[1] = param_10;
      puVar2[2] = uVar13;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar4 != &local_18);
    puVar9 = puVar9 + 10;
    uVar3 = puVar6[5];
    puVar2[4] = *puVar4;
    puVar2[5] = uVar3;
    *(undefined4 **)(param_1 + 0x3c) = puVar9;
  }
  iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3;
  if (-1 < *(int *)(param_1 + 0x20) << 1) {
    *(int *)(param_1 + 0x14) = iVar10 * 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) = iVar10 * -0x33333333 + -1;
      }
      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;
    }
    return;
  }
  pcVar19 = FUN_002525ac;
  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 + 0x276c94;
  uStack_a8 = 1;
  uStack_ac = local_4c;
  uStack_b0 = local_50;
  puStack_70 = &local_38;
  iStack_6c = param_1;
  iStack_68 = param_3;
  pcStack_64 = pcVar19;
  (**(code **)(puVar18 + 0x26f9f4))(&uStack_98);
  puVar9 = *(undefined4 **)(puVar5 + 0x3c);
  iStack_74 = iStack_44;
  uStack_78 = local_48;
  if (puVar9 == *(undefined4 **)(puVar5 + 0x40)) {
    (**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);
    puVar9 = *(undefined4 **)(puVar5 + 0x3c);
    iVar10 = iStack_44;
  }
  else {
    puVar1 = puVar9;
    puVar4 = &uStack_98;
    do {
      puVar6 = puVar4;
      puVar2 = puVar1;
      puVar4 = puVar6 + 4;
      iVar10 = puVar6[1];
      uVar13 = puVar6[2];
      uVar3 = puVar6[3];
      *puVar2 = *puVar6;
      puVar2[1] = iVar10;
      puVar2[2] = uVar13;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar4 != &uStack_78);
    puVar9 = puVar9 + 10;
    uVar3 = puVar6[5];
    puVar2[4] = *puVar4;
    puVar2[5] = uVar3;
    *(undefined4 **)(puVar5 + 0x3c) = puVar9;
  }
  iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3;
  if (-1 < *(int *)(puVar5 + 0x20) << 1) {
    *(int *)(puVar5 + 0x14) = iVar11 * 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) = iVar11 * -0x33333333 + -1;
      }
      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;
    }
    return;
  }
  pcVar19 = *(code **)(puStack_a0 + -0x7810);
  pcVar20 = FUN_0025275c;
  iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;
  (*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);
  pcStack_100 = pcVar19 + 0x276ae4;
  uStack_110 = uStack_b0;
  uStack_108 = 0;
  uStack_10c = uStack_ac;
  puStack_d0 = &uStack_98;
  puStack_cc = puVar5;
  iStack_c8 = param_10;
  pcStack_c4 = pcVar20;
  (**(code **)(pcVar19 + 0x26f844))(&uStack_f8);
  puVar9 = *(undefined4 **)(iVar11 + 0x3c);
  uStack_d4 = uStack_a4;
  uStack_d8 = uStack_a8;
  if (puVar9 == *(undefined4 **)(iVar11 + 0x40)) {
    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);
    puVar9 = *(undefined4 **)(iVar11 + 0x3c);
  }
  else {
    puVar1 = puVar9;
    puVar4 = &uStack_f8;
    do {
      puVar6 = puVar4;
      puVar2 = puVar1;
      puVar4 = puVar6 + 4;
      uVar16 = puVar6[1];
      uVar13 = puVar6[2];
      uVar3 = puVar6[3];
      *puVar2 = *puVar6;
      puVar2[1] = uVar16;
      puVar2[2] = uVar13;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar4 != &uStack_d8);
    puVar9 = puVar9 + 10;
    uVar3 = puVar6[5];
    puVar2[4] = *puVar4;
    puVar2[5] = uVar3;
    *(undefined4 **)(iVar11 + 0x3c) = puVar9;
  }
  iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3;
  if (-1 < *(int *)(iVar11 + 0x20) << 1) {
    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;
    *(undefined4 *)(iVar11 + 0x10) = 0;
    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;
    if (iStack_e4 << 0x1c < 0) {
      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;
    }
    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {
      if (*(int *)(iStack_f4 + 100) == 0) {
        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;
      }
      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;
    }
    return;
  }
  pcVar19 = *(code **)(pcStack_100 + -0x7810);
  iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;
  pcVar20 = FUN_00252908;
  iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;
  (*pcVar19)(iVar12,0x231);
  uVar13 = 0;
  uVar3 = uStack_108;
  puStack_130 = &uStack_f8;
  iStack_12c = iVar11;
  iStack_128 = iVar10;
  pcStack_124 = pcVar20;
  (**(code **)(pcVar19 + 0x271868))(&pcStack_158);
  puVar9 = *(undefined4 **)(iVar12 + 0x3c);
  uStack_134 = uStack_fc;
  pcStack_138 = pcStack_100;
  if (puVar9 == *(undefined4 **)(iVar12 + 0x40)) {
    (**(code **)(pcVar19 + 0x270c58))
              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);
    puVar9 = *(undefined4 **)(iVar12 + 0x3c);
  }
  else {
    puVar1 = puVar9;
    ppcVar8 = &pcStack_158;
    do {
      ppcVar7 = ppcVar8;
      puVar4 = puVar1;
      ppcVar8 = ppcVar7 + 4;
      pcVar17 = ppcVar7[1];
      pcVar15 = ppcVar7[2];
      pcVar20 = ppcVar7[3];
      *puVar4 = *ppcVar7;
      puVar4[1] = pcVar17;
      puVar4[2] = pcVar15;
      puVar4[3] = pcVar20;
      puVar1 = puVar4 + 4;
    } while (ppcVar8 != &pcStack_138);
    puVar9 = puVar9 + 10;
    pcVar20 = ppcVar7[5];
    puVar4[4] = *ppcVar8;
    puVar4[5] = pcVar20;
    *(undefined4 **)(iVar12 + 0x3c) = puVar9;
  }
  iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3;
  if (-1 < *(int *)(iVar12 + 0x20) << 1) {
    *(int *)(iVar12 + 0x14) = iVar10 * 0x33333338;
    *(undefined4 *)(iVar12 + 0x10) = 0;
    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;
    if (iStack_144 << 0x1c < 0) {
      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;
    }
    if ((iStack_140 != -4) && (iStack_154 != 0)) {
      if (*(int *)(iStack_154 + 100) == 0) {
        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;
      }
      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;
    }
    return;
  }
  (**(code **)(pcVar19 + 0x26f128))
            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c);
  return;
}


lui gp,0x27
addiu gp,gp,0x6e50
addu gp,gp,t9
addiu sp,sp,-0x60
lw t9,-0x50d0(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,0x00252574
_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,0x0025247c
_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,0x00252590
_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,0x00252558
_sb v1,0x20(s2)
lw v1,0x40(sp)
li v0,-0x4
beq v1,v0,0x00252540
_lw v0,0x2c(sp)
beq v0,zero,0x00252544
_lw ra,0x5c(sp)
lw v1,0x64(v0)
beq v1,zero,0x00252568
_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 0x00252514
_sw v0,0x30(s1)
addiu a1,a1,-0x1
b 0x00252538
_sw a1,0x60(v0)
lw t9,-0x5ce0(gp)
addiu a0,s1,0x38
jalr t9
_or a2,s0,zero
lw gp,0x20(sp)
b 0x002524c0
_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_002523f0(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  undefined4 *puVar6;\n  code **ppcVar7;\n  code **ppcVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  code *pcVar15;\n  undefined4 uVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  code *pcStack_138;\n  undefined4 uStack_134;\n  undefined4 *puStack_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  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_d8;\n  undefined4 uStack_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  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_004c4170)(&local_38,param_2,param_4,param_5);\n  puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar9 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar10 * 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) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = FUN_002525ac;\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 + 0x276c94;\n  uStack_a8 = 1;\n  uStack_ac = local_4c;\n  uStack_b0 = local_50;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar19;\n  (**(code **)(puVar18 + 0x26f9f4))(&uStack_98);\n  puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar9 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }\n  iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar11 * 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) = iVar11 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(puStack_a0 + -0x7810);\n  pcVar20 = FUN_0025275c;\n  iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar19 + 0x276ae4;\n  uStack_110 = uStack_b0;\n  uStack_108 = 0;\n  uStack_10c = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar20;\n  (**(code **)(pcVar19 + 0x26f844))(&uStack_f8);\n  puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  uStack_d4 = uStack_a4;\n  uStack_d8 = uStack_a8;\n  if (puVar9 == *(undefined4 **)(iVar11 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }\n  iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar11 + 0x20) << 1) {\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(pcStack_100 + -0x7810);\n  iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;\n  pcVar20 = FUN_00252908;\n  iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar12,0x231);\n  uVar13 = 0;\n  uVar3 = uStack_108;\n  puStack_130 = &uStack_f8;\n  iStack_12c = iVar11;\n  iStack_128 = iVar10;\n  pcStack_124 = pcVar20;\n  (**(code **)(pcVar19 + 0x271868))(&pcStack_158);\n  puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_134 = uStack_fc;\n  pcStack_138 = pcStack_100;\n  if (puVar9 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c);\n  return;\n}\n\n" (function_definition "void FUN_002523f0(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  undefined4 *puVar6;\n  code **ppcVar7;\n  code **ppcVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  code *pcVar15;\n  undefined4 uVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  code *pcStack_138;\n  undefined4 uStack_134;\n  undefined4 *puStack_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  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_d8;\n  undefined4 uStack_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  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_004c4170)(&local_38,param_2,param_4,param_5);\n  puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar9 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar10 * 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) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = FUN_002525ac;\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 + 0x276c94;\n  uStack_a8 = 1;\n  uStack_ac = local_4c;\n  uStack_b0 = local_50;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar19;\n  (**(code **)(puVar18 + 0x26f9f4))(&uStack_98);\n  puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar9 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }\n  iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar11 * 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) = iVar11 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(puStack_a0 + -0x7810);\n  pcVar20 = FUN_0025275c;\n  iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar19 + 0x276ae4;\n  uStack_110 = uStack_b0;\n  uStack_108 = 0;\n  uStack_10c = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar20;\n  (**(code **)(pcVar19 + 0x26f844))(&uStack_f8);\n  puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  uStack_d4 = uStack_a4;\n  uStack_d8 = uStack_a8;\n  if (puVar9 == *(undefined4 **)(iVar11 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }\n  iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar11 + 0x20) << 1) {\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(pcStack_100 + -0x7810);\n  iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;\n  pcVar20 = FUN_00252908;\n  iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar12,0x231);\n  uVar13 = 0;\n  uVar3 = uStack_108;\n  puStack_130 = &uStack_f8;\n  iStack_12c = iVar11;\n  iStack_128 = iVar10;\n  pcStack_124 = pcVar20;\n  (**(code **)(pcVar19 + 0x271868))(&pcStack_158);\n  puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_134 = uStack_fc;\n  pcStack_138 = pcStack_100;\n  if (puVar9 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c);\n  return;\n}" primitive_type (function_declarator "FUN_002523f0(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  undefined4 *puVar6;\n  code **ppcVar7;\n  code **ppcVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  code *pcVar15;\n  undefined4 uVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  code *pcStack_138;\n  undefined4 uStack_134;\n  undefined4 *puStack_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  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_d8;\n  undefined4 uStack_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  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_004c4170)(&local_38,param_2,param_4,param_5);\n  puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar9 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar10 * 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) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = FUN_002525ac;\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 + 0x276c94;\n  uStack_a8 = 1;\n  uStack_ac = local_4c;\n  uStack_b0 = local_50;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar19;\n  (**(code **)(puVar18 + 0x26f9f4))(&uStack_98);\n  puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar9 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }\n  iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar11 * 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) = iVar11 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(puStack_a0 + -0x7810);\n  pcVar20 = FUN_0025275c;\n  iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar19 + 0x276ae4;\n  uStack_110 = uStack_b0;\n  uStack_108 = 0;\n  uStack_10c = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar20;\n  (**(code **)(pcVar19 + 0x26f844))(&uStack_f8);\n  puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  uStack_d4 = uStack_a4;\n  uStack_d8 = uStack_a8;\n  if (puVar9 == *(undefined4 **)(iVar11 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }\n  iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar11 + 0x20) << 1) {\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(pcStack_100 + -0x7810);\n  iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;\n  pcVar20 = FUN_00252908;\n  iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar12,0x231);\n  uVar13 = 0;\n  uVar3 = uStack_108;\n  puStack_130 = &uStack_f8;\n  iStack_12c = iVar11;\n  iStack_128 = iVar10;\n  pcStack_124 = pcVar20;\n  (**(code **)(pcVar19 + 0x271868))(&pcStack_158);\n  puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_134 = uStack_fc;\n  pcStack_138 = pcStack_100;\n  if (puVar9 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -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 "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "code **ppcVar7;" type_identifier (pointer_declarator "**ppcVar7" * (pointer_declarator "*ppcVar7" * identifier)) ;) (declaration "code **ppcVar8;" type_identifier (pointer_declarator "**ppcVar8" * (pointer_declarator "*ppcVar8" * identifier)) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "code *pcStack_158;" type_identifier (pointer_declarator "*pcStack_158" * identifier) ;) (declaration "int iStack_154;" primitive_type identifier ;) (declaration "int iStack_144;" primitive_type identifier ;) (declaration "int iStack_140;" primitive_type identifier ;) (declaration "code *pcStack_138;" type_identifier (pointer_declarator "*pcStack_138" * identifier) ;) (declaration "undefined4 uStack_134;" type_identifier identifier ;) (declaration "undefined4 *puStack_130;" type_identifier (pointer_declarator "*puStack_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 "undefined4 uStack_fc;" type_identifier identifier ;) (declaration "undefined4 uStack_f8;" type_identifier identifier ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int iStack_e0;" primitive_type identifier ;) (declaration "undefined4 uStack_d8;" type_identifier identifier ;) (declaration "undefined4 uStack_d4;" type_identifier 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 "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_004c4170)(&local_38,param_2,param_4,param_5);" (call_expression "(*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5)" (parenthesized_expression "(*(code *)PTR_Output_reloc_004c4170)" ( (pointer_expression "*(code *)PTR_Output_reloc_004c4170" * (cast_expression "(code *)PTR_Output_reloc_004c4170" ( (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 "puVar9 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar9 = *(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 (puVar9 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }" if (parenthesized_expression "(puVar9 == *(undefined4 **)(param_1 + 0x40))" ( (binary_expression "puVar9 == *(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,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }" { (expression_statement "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);" (call_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38)" (parenthesized_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)" ( (comma_expression "*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560" (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,false>const&>_004c3560" true , (comma_expression "64,false>const&>_004c3560" number_literal , (binary_expression "false>const&>_004c3560" (binary_expression "false>const" false > identifier) (ERROR "&" &) > identifier)))) )) (argument_list "(param_1 + 0x38,puVar9,&local_38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar9 = *(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 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }" else (compound_statement "{\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }" { (expression_statement "puVar1 = puVar9;" (assignment_expression "puVar1 = puVar9" identifier = identifier) ;) (expression_statement "puVar4 = &local_38;" (assignment_expression "puVar4 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);" do (compound_statement "{\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar4 = puVar6 + 4;" (assignment_expression "puVar4 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "param_10 = puVar6[1];" (assignment_expression "param_10 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar6[2];" (assignment_expression "uVar13 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar6[3];" (assignment_expression "uVar3 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar6;" (assignment_expression "*puVar2 = *puVar6" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar6" * 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] = uVar13;" (assignment_expression "puVar2[2] = uVar13" (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 "puVar9 = puVar9 + 10;" (assignment_expression "puVar9 = puVar9 + 10" identifier = (binary_expression "puVar9 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar6[5];" (assignment_expression "uVar3 = puVar6[5]" identifier = (subscript_expression "puVar6[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) = puVar9;" (assignment_expression "*(undefined4 **)(param_1 + 0x3c) = puVar9" (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 "iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3;" (assignment_expression "iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3" identifier = (binary_expression "(int)puVar9 - *(int *)(param_1 + 0x38) >> 3" (binary_expression "(int)puVar9 - *(int *)(param_1 + 0x38)" (cast_expression "(int)puVar9" ( (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) = iVar10 * 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) = iVar10 * -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) = iVar10 * 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) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(param_1 + 0x14) = iVar10 * 0x33333338;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar10 * 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 "iVar10 * 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) = iVar10 * -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) = iVar10 * -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) = iVar10 * -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) = iVar10 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(local_34 + 0x60) = iVar10 * -0x33333333 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar10 * -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 "iVar10 * -0x33333333 + -1" (binary_expression "iVar10 * -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 "pcVar19 = FUN_002525ac;" (assignment_expression "pcVar19 = FUN_002525ac" 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 + 0x276c94;" (assignment_expression "puStack_a0 = puVar18 + 0x276c94" identifier = (binary_expression "puVar18 + 0x276c94" identifier + number_literal)) ;) (expression_statement "uStack_a8 = 1;" (assignment_expression "uStack_a8 = 1" identifier = number_literal) ;) (expression_statement "uStack_ac = local_4c;" (assignment_expression "uStack_ac = local_4c" identifier = identifier) ;) (expression_statement "uStack_b0 = local_50;" (assignment_expression "uStack_b0 = local_50" 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 = pcVar19;" (assignment_expression "pcStack_64 = pcVar19" identifier = identifier) ;) (expression_statement "(**(code **)(puVar18 + 0x26f9f4))(&uStack_98);" (call_expression "(**(code **)(puVar18 + 0x26f9f4))(&uStack_98)" (parenthesized_expression "(**(code **)(puVar18 + 0x26f9f4))" ( (pointer_expression "**(code **)(puVar18 + 0x26f9f4)" * (pointer_expression "*(code **)(puVar18 + 0x26f9f4)" * (cast_expression "(code **)(puVar18 + 0x26f9f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x26f9f4)" ( (binary_expression "puVar18 + 0x26f9f4" identifier + number_literal) ))))) )) (argument_list "(&uStack_98)" ( (pointer_expression "&uStack_98" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(puVar5 + 0x3c);" (assignment_expression "puVar9 = *(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 (puVar9 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }" if (parenthesized_expression "(puVar9 == *(undefined4 **)(puVar5 + 0x40))" ( (binary_expression "puVar9 == *(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 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }" { (expression_statement "(**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);" (call_expression "(**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98)" (parenthesized_expression "(**(code **)(puStack_a0 + -0x5ce0))" ( (pointer_expression "**(code **)(puStack_a0 + -0x5ce0)" * (pointer_expression "*(code **)(puStack_a0 + -0x5ce0)" * (cast_expression "(code **)(puStack_a0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a0 + -0x5ce0)" ( (binary_expression "puStack_a0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(puVar5 + 0x38,puVar9,&uStack_98)" ( (binary_expression "puVar5 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_98" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(puVar5 + 0x3c);" (assignment_expression "puVar9 = *(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 "iVar10 = iStack_44;" (assignment_expression "iVar10 = iStack_44" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }" else (compound_statement "{\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }" { (expression_statement "puVar1 = puVar9;" (assignment_expression "puVar1 = puVar9" identifier = identifier) ;) (expression_statement "puVar4 = &uStack_98;" (assignment_expression "puVar4 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);" do (compound_statement "{\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar4 = puVar6 + 4;" (assignment_expression "puVar4 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar10 = puVar6[1];" (assignment_expression "iVar10 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar6[2];" (assignment_expression "uVar13 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar6[3];" (assignment_expression "uVar3 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar6;" (assignment_expression "*puVar2 = *puVar6" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar2[1] = iVar10;" (assignment_expression "puVar2[1] = iVar10" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar13;" (assignment_expression "puVar2[2] = uVar13" (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 "puVar9 = puVar9 + 10;" (assignment_expression "puVar9 = puVar9 + 10" identifier = (binary_expression "puVar9 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar6[5];" (assignment_expression "uVar3 = puVar6[5]" identifier = (subscript_expression "puVar6[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) = puVar9;" (assignment_expression "*(undefined4 **)(puVar5 + 0x3c) = puVar9" (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 "iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3;" (assignment_expression "iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3" identifier = (binary_expression "(int)puVar9 - *(int *)(puVar5 + 0x38) >> 3" (binary_expression "(int)puVar9 - *(int *)(puVar5 + 0x38)" (cast_expression "(int)puVar9" ( (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) = iVar11 * 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) = iVar11 * -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) = iVar11 * 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) = iVar11 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(puVar5 + 0x14) = iVar11 * 0x33333338;" (assignment_expression "*(int *)(puVar5 + 0x14) = iVar11 * 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 "iVar11 * 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) = iVar11 * -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) = iVar11 * -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) = iVar11 * -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) = iVar11 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_94 + 0x60) = iVar11 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_94 + 0x60) = iVar11 * -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 "iVar11 * -0x33333333 + -1" (binary_expression "iVar11 * -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 "pcVar19 = *(code **)(puStack_a0 + -0x7810);" (assignment_expression "pcVar19 = *(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 "pcVar20 = FUN_0025275c;" (assignment_expression "pcVar20 = FUN_0025275c" identifier = identifier) ;) (expression_statement "iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar11 = *(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 "(*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar11,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 = pcVar19 + 0x276ae4;" (assignment_expression "pcStack_100 = pcVar19 + 0x276ae4" identifier = (binary_expression "pcVar19 + 0x276ae4" identifier + number_literal)) ;) (expression_statement "uStack_110 = uStack_b0;" (assignment_expression "uStack_110 = uStack_b0" identifier = identifier) ;) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" identifier = number_literal) ;) (expression_statement "uStack_10c = uStack_ac;" (assignment_expression "uStack_10c = 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 = pcVar20;" (assignment_expression "pcStack_c4 = pcVar20" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar19 + 0x26f844))(&uStack_f8);" (call_expression "(**(code **)(pcVar19 + 0x26f844))(&uStack_f8)" (parenthesized_expression "(**(code **)(pcVar19 + 0x26f844))" ( (pointer_expression "**(code **)(pcVar19 + 0x26f844)" * (pointer_expression "*(code **)(pcVar19 + 0x26f844)" * (cast_expression "(code **)(pcVar19 + 0x26f844)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x26f844)" ( (binary_expression "pcVar19 + 0x26f844" identifier + number_literal) ))))) )) (argument_list "(&uStack_f8)" ( (pointer_expression "&uStack_f8" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar11 + 0x3c);" (assignment_expression "puVar9 = *(undefined4 **)(iVar11 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar11 + 0x3c)" * (cast_expression "(undefined4 **)(iVar11 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x3c)" ( (binary_expression "iVar11 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_d4 = uStack_a4;" (assignment_expression "uStack_d4 = uStack_a4" identifier = identifier) ;) (expression_statement "uStack_d8 = uStack_a8;" (assignment_expression "uStack_d8 = uStack_a8" identifier = identifier) ;) (if_statement "if (puVar9 == *(undefined4 **)(iVar11 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }" if (parenthesized_expression "(puVar9 == *(undefined4 **)(iVar11 + 0x40))" ( (binary_expression "puVar9 == *(undefined4 **)(iVar11 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar11 + 0x40)" * (cast_expression "(undefined4 **)(iVar11 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x40)" ( (binary_expression "iVar11 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);" (call_expression "(**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8)" (parenthesized_expression "(**(code **)(pcStack_100 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_100 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_100 + -0x5ce0)" * (cast_expression "(code **)(pcStack_100 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_100 + -0x5ce0)" ( (binary_expression "pcStack_100 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar11 + 0x38,puVar9,&uStack_f8)" ( (binary_expression "iVar11 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_f8" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar11 + 0x3c);" (assignment_expression "puVar9 = *(undefined4 **)(iVar11 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar11 + 0x3c)" * (cast_expression "(undefined4 **)(iVar11 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x3c)" ( (binary_expression "iVar11 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }" else (compound_statement "{\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }" { (expression_statement "puVar1 = puVar9;" (assignment_expression "puVar1 = puVar9" identifier = identifier) ;) (expression_statement "puVar4 = &uStack_f8;" (assignment_expression "puVar4 = &uStack_f8" identifier = (pointer_expression "&uStack_f8" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);" do (compound_statement "{\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar4 = puVar6 + 4;" (assignment_expression "puVar4 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar16 = puVar6[1];" (assignment_expression "uVar16 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar6[2];" (assignment_expression "uVar13 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar6[3];" (assignment_expression "uVar3 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar6;" (assignment_expression "*puVar2 = *puVar6" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar2[1] = uVar16;" (assignment_expression "puVar2[1] = uVar16" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar13;" (assignment_expression "puVar2[2] = uVar13" (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_d8)" ( (binary_expression "puVar4 != &uStack_d8" identifier != (pointer_expression "&uStack_d8" & identifier)) )) ;) (expression_statement "puVar9 = puVar9 + 10;" (assignment_expression "puVar9 = puVar9 + 10" identifier = (binary_expression "puVar9 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar6[5];" (assignment_expression "uVar3 = puVar6[5]" identifier = (subscript_expression "puVar6[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 **)(iVar11 + 0x3c) = puVar9;" (assignment_expression "*(undefined4 **)(iVar11 + 0x3c) = puVar9" (pointer_expression "*(undefined4 **)(iVar11 + 0x3c)" * (cast_expression "(undefined4 **)(iVar11 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x3c)" ( (binary_expression "iVar11 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3;" (assignment_expression "iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3" identifier = (binary_expression "(int)puVar9 - *(int *)(iVar11 + 0x38) >> 3" (binary_expression "(int)puVar9 - *(int *)(iVar11 + 0x38)" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar11 + 0x38)" * (cast_expression "(int *)(iVar11 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x38)" ( (binary_expression "iVar11 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar11 + 0x20) << 1) {\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar11 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar11 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar11 + 0x20) << 1" (pointer_expression "*(int *)(iVar11 + 0x20)" * (cast_expression "(int *)(iVar11 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x20)" ( (binary_expression "iVar11 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;" (assignment_expression "*(int *)(iVar11 + 0x14) = iVar12 * 0x33333338" (pointer_expression "*(int *)(iVar11 + 0x14)" * (cast_expression "(int *)(iVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar12 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar11 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar11 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar11 + 0x10)" * (cast_expression "(undefined4 *)(iVar11 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar10 + 0x20)" * (cast_expression "(byte *)(iVar10 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar10 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar10 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar10 + 0x20)" * (cast_expression "(byte *)(iVar10 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 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 *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;" (assignment_expression "*(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1" (pointer_expression "*(int *)(iVar11 + 0x30)" * (cast_expression "(int *)(iVar11 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x30)" ( (binary_expression "iVar11 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar11 + 0x30) + 1" (pointer_expression "*(int *)(iVar11 + 0x30)" * (cast_expression "(int *)(iVar11 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x30)" ( (binary_expression "iVar11 + 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) = iVar12 * -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) = iVar12 * -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) = iVar12 * -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) = iVar12 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_f4 + 0x60) = iVar12 * -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 "iVar12 * -0x33333333 + -1" (binary_expression "iVar12 * -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 "pcVar19 = *(code **)(pcStack_100 + -0x7810);" (assignment_expression "pcVar19 = *(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 "iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;" (assignment_expression "iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c" identifier = (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 "pcVar20 = FUN_00252908;" (assignment_expression "pcVar20 = FUN_00252908" identifier = identifier) ;) (expression_statement "iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;" (assignment_expression "iVar12 = *(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 "(*pcVar19)(iVar12,0x231);" (call_expression "(*pcVar19)(iVar12,0x231)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar12,0x231)" ( identifier , number_literal ))) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = uStack_108;" (assignment_expression "uVar3 = uStack_108" identifier = identifier) ;) (expression_statement "puStack_130 = &uStack_f8;" (assignment_expression "puStack_130 = &uStack_f8" identifier = (pointer_expression "&uStack_f8" & identifier)) ;) (expression_statement "iStack_12c = iVar11;" (assignment_expression "iStack_12c = iVar11" identifier = identifier) ;) (expression_statement "iStack_128 = iVar10;" (assignment_expression "iStack_128 = iVar10" identifier = identifier) ;) (expression_statement "pcStack_124 = pcVar20;" (assignment_expression "pcStack_124 = pcVar20" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar19 + 0x271868))(&pcStack_158);" (call_expression "(**(code **)(pcVar19 + 0x271868))(&pcStack_158)" (parenthesized_expression "(**(code **)(pcVar19 + 0x271868))" ( (pointer_expression "**(code **)(pcVar19 + 0x271868)" * (pointer_expression "*(code **)(pcVar19 + 0x271868)" * (cast_expression "(code **)(pcVar19 + 0x271868)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x271868)" ( (binary_expression "pcVar19 + 0x271868" identifier + number_literal) ))))) )) (argument_list "(&pcStack_158)" ( (pointer_expression "&pcStack_158" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar12 + 0x3c);" (assignment_expression "puVar9 = *(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_134 = uStack_fc;" (assignment_expression "uStack_134 = uStack_fc" identifier = identifier) ;) (expression_statement "pcStack_138 = pcStack_100;" (assignment_expression "pcStack_138 = pcStack_100" identifier = identifier) ;) (if_statement "if (puVar9 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }" if (parenthesized_expression "(puVar9 == *(undefined4 **)(iVar12 + 0x40))" ( (binary_expression "puVar9 == *(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 **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);" (call_expression "(**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13)" (parenthesized_expression "(**(code **)(pcVar19 + 0x270c58))" ( (pointer_expression "**(code **)(pcVar19 + 0x270c58)" * (pointer_expression "*(code **)(pcVar19 + 0x270c58)" * (cast_expression "(code **)(pcVar19 + 0x270c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x270c58)" ( (binary_expression "pcVar19 + 0x270c58" identifier + number_literal) ))))) )) (argument_list "(iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13)" ( (binary_expression "iVar12 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&pcStack_158" & identifier) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar12 + 0x3c);" (assignment_expression "puVar9 = *(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 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }" else (compound_statement "{\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }" { (expression_statement "puVar1 = puVar9;" (assignment_expression "puVar1 = puVar9" identifier = identifier) ;) (expression_statement "ppcVar8 = &pcStack_158;" (assignment_expression "ppcVar8 = &pcStack_158" identifier = (pointer_expression "&pcStack_158" & identifier)) ;) (do_statement "do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);" do (compound_statement "{\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "ppcVar7 = ppcVar8;" (assignment_expression "ppcVar7 = ppcVar8" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "ppcVar8 = ppcVar7 + 4;" (assignment_expression "ppcVar8 = ppcVar7 + 4" identifier = (binary_expression "ppcVar7 + 4" identifier + number_literal)) ;) (expression_statement "pcVar17 = ppcVar7[1];" (assignment_expression "pcVar17 = ppcVar7[1]" identifier = (subscript_expression "ppcVar7[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar15 = ppcVar7[2];" (assignment_expression "pcVar15 = ppcVar7[2]" identifier = (subscript_expression "ppcVar7[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar20 = ppcVar7[3];" (assignment_expression "pcVar20 = ppcVar7[3]" identifier = (subscript_expression "ppcVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *ppcVar7;" (assignment_expression "*puVar4 = *ppcVar7" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*ppcVar7" * identifier)) ;) (expression_statement "puVar4[1] = pcVar17;" (assignment_expression "puVar4[1] = pcVar17" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = pcVar15;" (assignment_expression "puVar4[2] = pcVar15" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = pcVar20;" (assignment_expression "puVar4[3] = pcVar20" (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 "(ppcVar8 != &pcStack_138)" ( (binary_expression "ppcVar8 != &pcStack_138" identifier != (pointer_expression "&pcStack_138" & identifier)) )) ;) (expression_statement "puVar9 = puVar9 + 10;" (assignment_expression "puVar9 = puVar9 + 10" identifier = (binary_expression "puVar9 + 10" identifier + number_literal)) ;) (expression_statement "pcVar20 = ppcVar7[5];" (assignment_expression "pcVar20 = ppcVar7[5]" identifier = (subscript_expression "ppcVar7[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *ppcVar8;" (assignment_expression "puVar4[4] = *ppcVar8" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*ppcVar8" * identifier)) ;) (expression_statement "puVar4[5] = pcVar20;" (assignment_expression "puVar4[5] = pcVar20" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar12 + 0x3c) = puVar9;" (assignment_expression "*(undefined4 **)(iVar12 + 0x3c) = puVar9" (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 "iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3;" (assignment_expression "iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3" identifier = (binary_expression "(int)puVar9 - *(int *)(iVar12 + 0x38) >> 3" (binary_expression "(int)puVar9 - *(int *)(iVar12 + 0x38)" (cast_expression "(int)puVar9" ( (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) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 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) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar12 + 0x14) = iVar10 * 0x33333338;" (assignment_expression "*(int *)(iVar12 + 0x14) = iVar10 * 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 "iVar10 * 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 *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar14 + 0x20)" * (cast_expression "(byte *)(iVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar14 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar14 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar14 + 0x20)" * (cast_expression "(byte *)(iVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 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 *)(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_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -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) = iVar10 * -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) = iVar10 * -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) = iVar10 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_154 + 0x60) = iVar10 * -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 "iVar10 * -0x33333333 + -1" (binary_expression "iVar10 * -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 "(**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c);" (call_expression "(**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c)" (parenthesized_expression "(**(code **)(pcVar19 + 0x26f128))" ( (pointer_expression "**(code **)(pcVar19 + 0x26f128)" * (pointer_expression "*(code **)(pcVar19 + 0x26f128)" * (cast_expression "(code **)(pcVar19 + 0x26f128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x26f128)" ( (binary_expression "pcVar19 + 0x26f128" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c)" ( (binary_expression "*(int *)(pcVar19 + 0x26e974) + 0x3574" (pointer_expression "*(int *)(pcVar19 + 0x26e974)" * (cast_expression "(int *)(pcVar19 + 0x26e974)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x26e974)" ( (binary_expression "pcVar19 + 0x26e974" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar19 + 0x26f014) + -0x2b1c" (pointer_expression "*(int *)(pcVar19 + 0x26f014)" * (cast_expression "(int *)(pcVar19 + 0x26f014)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x26f014)" ( (binary_expression "pcVar19 + 0x26f014" 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,_false> * this, uint\n   type, Output_data * od, Sized_relobj<64,_false> * relobj, uint shndx, Address address, Addend\n   addend) */\n\nvoid __thiscall\ngold::Output_data_reloc<4,_true,_64,_false>::add_relative\n          (Output_data_reloc<4,_true,_64,_false> *this,uint type,Output_data *od,\n          Sized_relobj<64,_false> *relobj,uint shndx,Address address,Addend addend)\n\n{\n  uint *puVar1;\n  pointer pOVar2;\n  pointer pOVar3;\n  uint *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  anon_union_4_4_c82d8563_for_u1_ aVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  anon_union_4_4_c82d8563_for_u1_ *paVar11;\n  anon_union_4_4_c82d8563_for_u1_ *paVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  code **ppcVar15;\n  code **ppcVar16;\n  uint *puVar17;\n  uint *puVar18;\n  Output_data_reloc_base<4,_true,_64,_true> *this_00;\n  pointer pOVar19;\n  int iVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  int iVar23;\n  uint *puVar24;\n  anon_union_4_4_c82d8563_for_u1_ aVar25;\n  undefined4 uVar26;\n  int iVar27;\n  code *pcVar28;\n  uint uVar29;\n  undefined4 *puVar30;\n  Sized_relobj<64,_false> *pSVar31;\n  undefined4 uVar32;\n  uint uVar33;\n  undefined *puVar34;\n  code *pcVar35;\n  code *pcVar36;\n  undefined1 auStack_8a0 [44];\n  int iStack_874;\n  undefined4 *puStack_870;\n  code *pcStack_86c;\n  Output_data *pOStack_858;\n  undefined4 *puStack_850;\n  int iStack_84c;\n  int iStack_848;\n  code *pcStack_844;\n  int iStack_830;\n  undefined4 uStack_828;\n  undefined4 uStack_824;\n  undefined4 uStack_820;\n  undefined4 uStack_81c;\n  undefined4 uStack_818;\n  undefined4 uStack_814;\n  code *pcStack_810;\n  undefined4 uStack_808;\n  int iStack_804;\n  int iStack_7f4;\n  int iStack_7f0;\n  undefined4 uStack_7e8;\n  undefined4 uStack_7e4;\n  undefined4 *puStack_7e0;\n  int iStack_7dc;\n  int iStack_7d8;\n  code *pcStack_7d4;\n  int iStack_7c0;\n  undefined4 uStack_7b8;\n  undefined4 uStack_7b4;\n  undefined4 uStack_7b0;\n  undefined4 uStack_7ac;\n  undefined4 uStack_7a8;\n  undefined4 uStack_7a4;\n  code *pcStack_7a0;\n  undefined4 uStack_798;\n  int iStack_794;\n  int iStack_784;\n  int iStack_780;\n  undefined4 uStack_778;\n  undefined4 uStack_774;\n  undefined4 *puStack_770;\n  int iStack_76c;\n  int iStack_768;\n  code *pcStack_764;\n  int iStack_750;\n  int iStack_74c;\n  undefined4 uStack_748;\n  undefined4 uStack_744;\n  undefined4 uStack_740;\n  undefined4 uStack_73c;\n  undefined4 uStack_738;\n  undefined4 uStack_734;\n  code *pcStack_730;\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  uint 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  int iStack_66c;\n  undefined4 uStack_668;\n  undefined4 uStack_664;\n  undefined4 uStack_660;\n  undefined4 uStack_65c;\n  uint 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  uint uStack_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  uint *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  uint uStack_488;\n  int iStack_484;\n  int iStack_474;\n  int iStack_470;\n  uint uStack_468;\n  uint uStack_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  uint uStack_430;\n  uint uStack_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  undefined4 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  int iStack_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  undefined4 *puStack_1f0;\n  int iStack_1ec;\n  code *pcStack_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  undefined4 uStack_1b8;\n  int iStack_1b4;\n  int iStack_1a4;\n  int iStack_1a0;\n  undefined4 uStack_198;\n  int iStack_194;\n  code **ppcStack_190;\n  int iStack_18c;\n  int iStack_188;\n  code *pcStack_184;\n  undefined4 uStack_170;\n  undefined4 uStack_16c;\n  undefined4 uStack_168;\n  int iStack_164;\n  code *pcStack_160;\n  code *pcStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  code *pcStack_138;\n  code *pcStack_134;\n  undefined4 *puStack_130;\n  int iStack_12c;\n  int iStack_128;\n  code *pcStack_124;\n  Address AStack_110;\n  undefined4 uStack_108;\n  undefined4 uStack_104;\n  code *pcStack_100;\n  code *pcStack_fc;\n  undefined4 uStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_d8;\n  undefined4 uStack_d4;\n  undefined4 *puStack_d0;\n  undefined *puStack_cc;\n  Sized_relobj<64,_false> *pSStack_c8;\n  code *pcStack_c4;\n  Address AStack_b0;\n  undefined4 uStack_a8;\n  undefined4 uStack_a4;\n  undefined *puStack_a0;\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,_false> *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_004c4170)(&local_38,type,relobj,shndx);\n  pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n            ._M_impl._M_finish;\n  local_18 = addend;\n  if (pOVar19 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n      super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n      ._M_impl._M_end_of_storage) {\n    (*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_false>&>_004c3560)\n              (&(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_,pOVar19,&local_38);\n    pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n              super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n              ._M_impl._M_finish;\n    pSVar31 = addend._4_4_;\n    addend = local_18;\n  }\n  else {\n    pOVar3 = pOVar19;\n    paVar12 = &local_38;\n    do {\n      paVar11 = paVar12;\n      pOVar2 = pOVar3;\n      paVar12 = paVar11 + 4;\n      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;\n      pSVar31 = paVar11[1].relobj;\n      aVar25 = paVar11[2];\n      aVar7 = paVar11[3];\n      (pOVar2->rel_).u1_ = *paVar11;\n      (pOVar2->rel_).u2_.relobj = pSVar31;\n      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar25;\n      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar7;\n    } while (paVar12 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18);\n    pOVar19 = pOVar19 + 1;\n    aVar7 = paVar11[5];\n    *(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar12;\n    *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar7;\n    (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n    super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n    ._M_impl._M_finish = pOVar19;\n  }\n  iVar20 = (int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n                ._M_impl._M_start >> 3;\n  if (-1 < *(int *)&(this->super_Output_data_reloc_base<4,_true,_64,_false>).\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,_false>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4) = iVar20 * 0x33333338\n    ;\n    *(undefined4 *)\n     &(this->super_Output_data_reloc_base<4,_true,_64,_false>).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,_false>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_false>).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) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = add_output_section_relative;\n  puVar13 = 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            (puVar13,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  puStack_a0 = puVar34 + 0x276c94;\n  uStack_a8 = 1;\n  paStack_70 = &local_38;\n  pOStack_6c = this;\n  pOStack_68 = od;\n  pcStack_64 = pcVar35;\n  AStack_b0 = local_50;\n  (**(code **)(puVar34 + 0x26f9f4))(&uStack_98);\n  puVar21 = *(undefined4 **)(puVar13 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar21 == *(undefined4 **)(puVar13 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar13 + 0x38,puVar21,&uStack_98);\n    puVar21 = *(undefined4 **)(puVar13 + 0x3c);\n    iVar20 = iStack_44;\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_98;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_78);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(puVar13 + 0x3c) = puVar21;\n  }\n  iVar22 = (int)puVar21 - *(int *)(puVar13 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar13 + 0x20) << 1) {\n    *(int *)(puVar13 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(puVar13 + 0x10) = 0;\n    *(byte *)&(pSVar31->super_Relobj).super_Object.offset_ =\n         *(byte *)&(pSVar31->super_Relobj).super_Object.offset_ & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar13 + 0x30) = *(int *)(puVar13 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(puStack_a0 + -0x7810);\n  pcVar36 = add_output_section_generic;\n  iVar22 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar22,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar35 + 0x276ae4;\n  uStack_108 = 0;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar13;\n  pSStack_c8 = pSVar31;\n  pcStack_c4 = pcVar36;\n  AStack_110 = AStack_b0;\n  (**(code **)(pcVar35 + 0x26f844))(&uStack_f8);\n  puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  uStack_d4 = uStack_a4;\n  uStack_d8 = uStack_a8;\n  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_f8);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_f8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_d8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar22 + 0x3c) = puVar21;\n  }\n  iVar23 = (int)puVar21 - *(int *)(iVar22 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar22 + 0x20) << 1) {\n    *(int *)(iVar22 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar22 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_100 + -0x7810);\n  iVar27 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;\n  pcVar36 = add_absolute;\n  iVar23 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar23,0x231);\n  pcStack_160 = pcVar35 + 0x276938;\n  uStack_168 = 0;\n  uStack_16c = uStack_104;\n  uStack_170 = uStack_108;\n  puStack_130 = &uStack_f8;\n  iStack_12c = iVar22;\n  iStack_128 = iVar20;\n  pcStack_124 = pcVar36;\n  (**(code **)(pcVar35 + 0x271868))(&pcStack_158);\n  puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  pcStack_134 = pcStack_fc;\n  pcStack_138 = pcStack_100;\n  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5ce0))(iVar23 + 0x38,puVar21,&pcStack_158);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n    pcVar35 = pcStack_fc;\n  }\n  else {\n    puVar30 = puVar21;\n    ppcVar15 = &pcStack_158;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar14 = puVar30;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar35 = ppcVar16[1];\n      pcVar28 = ppcVar16[2];\n      pcVar36 = ppcVar16[3];\n      *puVar14 = *ppcVar16;\n      puVar14[1] = pcVar35;\n      puVar14[2] = pcVar28;\n      puVar14[3] = pcVar36;\n      puVar30 = puVar14 + 4;\n    } while (ppcVar15 != &pcStack_138);\n    puVar21 = puVar21 + 10;\n    pcVar36 = ppcVar16[5];\n    puVar14[4] = *ppcVar15;\n    puVar14[5] = pcVar36;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }\n  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar27 + 0x20) = *(byte *)(iVar27 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  pcVar36 = *(code **)(pcStack_160 + -0x7810);\n  pcVar28 = add_output_section;\n  iVar20 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;\n  (*pcVar36)(iVar20,0x231,*(int *)(pcStack_160 + -0x7924) + -0x2b1c);\n  pcStack_1c0 = pcVar36 + 0x276780;\n  uStack_1d0 = uStack_170;\n  uStack_1c8 = 0;\n  uStack_1cc = uStack_16c;\n  ppcStack_190 = &pcStack_158;\n  iStack_18c = iVar23;\n  iStack_188 = iVar27;\n  pcStack_184 = pcVar28;\n  (**(code **)(pcVar36 + 0x26f4e0))(&uStack_1b8);\n  puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n  iStack_194 = iStack_164;\n  uStack_198 = uStack_168;\n  if (puVar21 == *(undefined4 **)(iVar20 + 0x40)) {\n    (**(code **)(pcStack_1c0 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_1b8);\n    puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n    iVar22 = iStack_164;\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_1b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_198);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }\n  iVar23 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar20 + 0x20) << 1) {\n    *(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar20 + 0x10) = 0;\n    pcVar35[0x20] = (code)((byte)pcVar35[0x20] & 0xf7 | 8);\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar36 = *(code **)(pcStack_1c0 + -0x7810);\n  pcVar28 = add_output_section_relative;\n  iVar23 = *(int *)(pcStack_1c0 + -0x7fc4) + 0x3574;\n  (*pcVar36)(iVar23,0x231,*(int *)(pcStack_1c0 + -0x7924) + -0x2b1c);\n  pcStack_220 = pcVar36 + 0x2765d4;\n  uStack_228 = 1;\n  uStack_230 = uStack_1c8;\n  iStack_22c = iStack_1c4;\n  uStack_238 = uStack_1cc;\n  puStack_1f0 = &uStack_1b8;\n  iStack_1ec = iVar20;\n  pcStack_1e8 = pcVar35;\n  pcStack_1e4 = pcVar28;\n  (**(code **)(pcVar36 + 0x26f338))(&pcStack_218);\n  puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  pcStack_1f4 = pcStack_1bc;\n  pcStack_1f8 = pcStack_1c0;\n  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_220 + -0x5ce0))(iVar23 + 0x38,puVar21,&pcStack_218);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n    pcVar35 = pcStack_1bc;\n  }\n  else {\n    puVar30 = puVar21;\n    ppcVar15 = &pcStack_218;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar14 = puVar30;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar35 = ppcVar16[1];\n      pcVar28 = ppcVar16[2];\n      pcVar36 = ppcVar16[3];\n      *puVar14 = *ppcVar16;\n      puVar14[1] = pcVar35;\n      puVar14[2] = pcVar28;\n      puVar14[3] = pcVar36;\n      puVar30 = puVar14 + 4;\n    } while (ppcVar15 != &pcStack_1f8);\n    puVar21 = puVar21 + 10;\n    pcVar36 = ppcVar16[5];\n    puVar14[4] = *ppcVar15;\n    puVar14[5] = pcVar36;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }\n  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_204 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_200 != -4) && (iStack_214 != 0)) {\n      if (*(int *)(iStack_214 + 100) == 0) {\n        *(int *)(iStack_214 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_214 + 100) = *(int *)(iStack_214 + 100) + 1;\n    }\n    return;\n  }\n  pcVar36 = *(code **)(pcStack_220 + -0x7810);\n  pcVar28 = add_output_section_generic;\n  iVar20 = *(int *)(pcStack_220 + -0x7fc4) + 0x3574;\n  (*pcVar36)(iVar20,0x231,*(int *)(pcStack_220 + -0x7924) + -0x2b1c);\n  pcStack_288 = pcVar36 + 0x276418;\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 = iVar23;\n  iStack_250 = iVar22;\n  pcStack_24c = pcVar28;\n  (**(code **)(pcVar36 + 0x26f17c))(&uStack_280);\n  puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n  iStack_25c = iStack_224;\n  uStack_260 = uStack_228;\n  if (puVar21 == *(undefined4 **)(iVar20 + 0x40)) {\n    (**(code **)(pcStack_288 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_280);\n    puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n    iVar22 = iStack_224;\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_280;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_260);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }\n  iVar23 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar20 + 0x20) << 1) {\n    *(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar20 + 0x10) = 0;\n    pcVar35[0x20] = (code)((byte)pcVar35[0x20] & 0xf7 | 8);\n    if (iStack_26c << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }\n    if ((iStack_268 != -4) && (iStack_27c != 0)) {\n      if (*(int *)(iStack_27c + 100) == 0) {\n        *(int *)(iStack_27c + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_27c + 100) = *(int *)(iStack_27c + 100) + 1;\n    }\n    return;\n  }\n  pcVar36 = *(code **)(pcStack_288 + -0x7810);\n  pcVar28 = add_output_section;\n  iVar23 = *(int *)(pcStack_288 + -0x7fc4) + 0x3574;\n  (*pcVar36)(iVar23,0x231,*(int *)(pcStack_288 + -0x7924) + -0x2b1c);\n  pcStack_2f0 = pcVar36 + 0x276260;\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 = iVar20;\n  pcStack_2b8 = pcVar35;\n  pcStack_2b4 = pcVar28;\n  (**(code **)(pcVar36 + 0x26efc4))(&uStack_2e8);\n  puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  iStack_2c4 = iStack_28c;\n  uStack_2c8 = uStack_290;\n  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_2f0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_2e8);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n    iVar20 = iStack_28c;\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_2e8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_2c8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }\n  iVar27 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    *(int *)(iVar23 + 0x14) = iVar27 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_2d4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_2d0 != -4) && (iStack_2e4 != 0)) {\n      if (*(int *)(iStack_2e4 + 100) == 0) {\n        *(int *)(iStack_2e4 + 0x60) = iVar27 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_2e4 + 100) = *(int *)(iStack_2e4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_2f0 + -0x7810);\n  pcVar36 = add_global;\n  iVar27 = *(int *)(pcStack_2f0 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar27,0x231,*(int *)(pcStack_2f0 + -0x7924) + -0x2b1c);\n  pcStack_358 = pcVar35 + 0x2760a8;\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 = iVar23;\n  iStack_320 = iVar22;\n  pcStack_31c = pcVar36;\n  (**(code **)(pcVar35 + 0x26ead0))(&uStack_350);\n  puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  iStack_32c = iStack_2fc;\n  uStack_330 = uStack_300;\n  if (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {\n    iVar22 = iStack_2fc;\n    (**(code **)(pcStack_358 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_350);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_350;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_330);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }\n  iVar23 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar27 + 0x20) << 1) {\n    *(int *)(iVar27 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_33c << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_338 != -4) && (iStack_34c != 0)) {\n      if (*(int *)(iStack_34c + 100) == 0) {\n        *(int *)(iStack_34c + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_34c + 100) = *(int *)(iStack_34c + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_358 + -0x7810);\n  pcVar36 = add_symbolless_global_addend;\n  iVar23 = *(int *)(pcStack_358 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_358 + -0x7924) + -0x2b1c);\n  pcStack_3c0 = pcVar35 + 0x275ef4;\n  iStack_3cc = 1;\n  uStack_3c8 = 0;\n  uStack_3d0 = 0;\n  uStack_3d4 = uStack_36c;\n  uStack_3d8 = uStack_370;\n  puStack_390 = &uStack_350;\n  iStack_38c = iVar27;\n  iStack_388 = iVar20;\n  pcStack_384 = pcVar36;\n  (**(code **)(pcVar35 + 0x26e91c))(&uStack_3b8);\n  puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  iStack_394 = iStack_364;\n  uStack_398 = uStack_368;\n  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    iVar20 = iStack_364;\n    (**(code **)(pcStack_3c0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_3b8);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_3b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_398);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }\n  iVar27 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    *(int *)(iVar23 + 0x14) = iVar27 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_3a4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_3a0 != -4) && (iStack_3b4 != 0)) {\n      if (*(int *)(iStack_3b4 + 100) == 0) {\n        *(int *)(iStack_3b4 + 0x60) = iVar27 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_3b4 + 100) = *(int *)(iStack_3b4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_3c0 + -0x7810);\n  pcVar36 = add_global_relative;\n  iVar27 = *(int *)(pcStack_3c0 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar27,0x231,*(int *)(pcStack_3c0 + -0x7924) + -0x2b1c);\n  pcStack_428 = pcVar35 + 0x275d3c;\n  uStack_430 = uStack_3c8 & 0xff;\n  uStack_434 = 1;\n  uStack_438 = 1;\n  uStack_440 = uStack_3d8;\n  uStack_43c = uStack_3d4;\n  puStack_3f8 = &uStack_3b8;\n  iStack_3f4 = iVar23;\n  iStack_3f0 = iVar22;\n  pcStack_3ec = pcVar36;\n  (**(code **)(pcVar35 + 0x26e764))(&uStack_420);\n  puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  iStack_3fc = iStack_3cc;\n  uStack_400 = uStack_3d0;\n  if (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {\n    iVar22 = iStack_3cc;\n    (**(code **)(pcStack_428 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_420);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_420;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_400);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }\n  iVar23 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar27 + 0x20) << 1) {\n    *(int *)(iVar27 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_40c << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_408 != -4) && (iStack_41c != 0)) {\n      if (*(int *)(iStack_41c + 100) == 0) {\n        *(int *)(iStack_41c + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_41c + 100) = *(int *)(iStack_41c + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_428 + -0x7810);\n  pcVar36 = add_global;\n  iVar23 = *(int *)(pcStack_428 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_428 + -0x7924) + -0x2b1c);\n  pcStack_490 = pcVar35 + 0x275b80;\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 = iVar27;\n  iStack_458 = iVar20;\n  pcStack_454 = pcVar36;\n  (**(code **)(pcVar35 + 0x26e7d0))(&uStack_488);\n  puVar24 = *(uint **)(iVar23 + 0x3c);\n  uStack_464 = uStack_42c;\n  uStack_468 = uStack_430;\n  if (puVar24 == *(uint **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_490 + -0x5ce0))(iVar23 + 0x38,puVar24,&uStack_488);\n    puVar24 = *(uint **)(iVar23 + 0x3c);\n    uVar33 = uStack_42c;\n  }\n  else {\n    puVar1 = puVar24;\n    puVar18 = &uStack_488;\n    do {\n      puVar17 = puVar18;\n      puVar4 = puVar1;\n      puVar18 = puVar17 + 4;\n      uVar33 = puVar17[1];\n      uVar29 = puVar17[2];\n      uVar9 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar33;\n      puVar4[2] = uVar29;\n      puVar4[3] = uVar9;\n      puVar1 = puVar4 + 4;\n    } while (puVar18 != &uStack_468);\n    puVar24 = puVar24 + 10;\n    uVar9 = puVar17[5];\n    puVar4[4] = *puVar18;\n    puVar4[5] = uVar9;\n    *(uint **)(iVar23 + 0x3c) = puVar24;\n  }\n  iVar20 = (int)puVar24 - *(int *)(iVar23 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_474 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_470 != -4) && (iStack_484 != 0)) {\n      if (*(int *)(iStack_484 + 100) == 0) {\n        *(int *)(iStack_484 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_484 + 100) = *(int *)(iStack_484 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_490 + -0x7810);\n  pcVar36 = add_symbolless_global_addend;\n  iVar20 = *(int *)(pcStack_490 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar20,0x231,*(int *)(pcStack_490 + -0x7924) + -0x2b1c);\n  pcStack_500 = pcVar35 + 0x2759c0;\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 = iVar23;\n  iStack_4c8 = iVar22;\n  pcStack_4c4 = pcVar36;\n  (**(code **)(pcVar35 + 0x26e610))(&uStack_4f8);\n  puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n  iStack_4d4 = iStack_49c;\n  uStack_4d8 = uStack_4a0;\n  if (puVar21 == *(undefined4 **)(iVar20 + 0x40)) {\n    iVar22 = iStack_49c;\n    (**(code **)(pcStack_500 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_4f8);\n    puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_4f8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_4d8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }\n  iVar23 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar20 + 0x20) << 1) {\n    *(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar20 + 0x10) = 0;\n    *(byte *)(uVar33 + 0x20) = *(byte *)(uVar33 + 0x20) & 0xf7 | 8;\n    if (iStack_4e4 << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }\n    if ((iStack_4e0 != -4) && (iStack_4f4 != 0)) {\n      if (*(int *)(iStack_4f4 + 100) == 0) {\n        *(int *)(iStack_4f4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_4f4 + 100) = *(int *)(iStack_4f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_500 + -0x7810);\n  pcVar36 = add_global_relative;\n  iVar23 = *(int *)(pcStack_500 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_500 + -0x7924) + -0x2b1c);\n  pcStack_570 = pcVar35 + 0x2757fc;\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 = iVar20;\n  uStack_538 = uVar33;\n  pcStack_534 = pcVar36;\n  (**(code **)(pcVar35 + 0x26e44c))(&uStack_568);\n  puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  uStack_544 = uStack_50c;\n  uStack_548 = uStack_510;\n  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_570 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_568);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_568;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_548);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }\n  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_554 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_550 != -4) && (iStack_564 != 0)) {\n      if (*(int *)(iStack_564 + 100) == 0) {\n        *(int *)(iStack_564 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_564 + 100) = *(int *)(iStack_564 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_570 + -0x7810);\n  pcVar36 = add_local;\n  iVar27 = *(int *)(pcStack_570 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar27,0x231,*(int *)(pcStack_570 + -0x7924) + -0x2b1c);\n  iVar20 = iStack_590;\n  pcStack_5e0 = pcVar35 + 0x275634;\n  uStack_5f8 = uStack_588;\n  uStack_5e4 = 0;\n  uStack_5e8 = 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 = iVar23;\n  iStack_5a8 = iVar22;\n  pcStack_5a4 = pcVar36;\n  (**(code **)(pcVar35 + 0x26e06c))(&uStack_5d8);\n  puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  uStack_5b4 = uStack_57c;\n  uStack_5b8 = uStack_580;\n  if (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {\n    (**(code **)(pcStack_5e0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_5d8);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_5d8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_5b8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }\n  iVar22 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar27 + 0x20) << 1) {\n    *(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_5c4 << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_5c0 != -4) && (iStack_5d4 != 0)) {\n      if (*(int *)(iStack_5d4 + 100) == 0) {\n        *(int *)(iStack_5d4 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_5d4 + 100) = *(int *)(iStack_5d4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_5e0 + -0x7810);\n  pcVar36 = add_local;\n  iVar23 = *(int *)(pcStack_5e0 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_5e0 + -0x7924) + -0x2b1c);\n  iVar22 = iStack_600;\n  pcStack_650 = pcVar35 + 0x275474;\n  iStack_618 = iVar20;\n  uStack_668 = uStack_5f8;\n  uStack_654 = 0;\n  uStack_658 = 0;\n  uStack_65c = 0;\n  uStack_660 = 0;\n  uStack_664 = uStack_5f4;\n  iStack_670 = iStack_600;\n  puStack_620 = &uStack_5d8;\n  iStack_61c = iVar27;\n  pcStack_614 = pcVar36;\n  (**(code **)(pcVar35 + 0x26e030))(&uStack_648);\n  puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  uStack_624 = uStack_5ec;\n  uStack_628 = uStack_5f0;\n  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_650 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_648);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_648;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_628);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }\n  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_634 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_630 != -4) && (iStack_644 != 0)) {\n      if (*(int *)(iStack_644 + 100) == 0) {\n        *(int *)(iStack_644 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_644 + 100) = *(int *)(iStack_644 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_650 + -0x7810);\n  pcVar36 = add_local_relative;\n  iVar27 = *(int *)(pcStack_650 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar27,0x231,*(int *)(pcStack_650 + -0x7924) + -0x2b1c);\n  iVar20 = iStack_670;\n  pcStack_6c0 = pcVar35 + 0x2752b8;\n  uStack_6c4 = uStack_658 & 0xff;\n  uStack_6cc = 1;\n  uStack_6d0 = 1;\n  uStack_6d8 = uStack_668;\n  iStack_688 = iVar22;\n  uStack_6c8 = 0;\n  uStack_6d4 = uStack_664;\n  iStack_6e0 = iStack_66c;\n  puStack_690 = &uStack_648;\n  iStack_68c = iVar23;\n  pcStack_684 = pcVar36;\n  (**(code **)(pcVar35 + 0x26dcf0))(&uStack_6b8);\n  puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  uStack_694 = uStack_65c;\n  uStack_698 = uStack_660;\n  if (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {\n    (**(code **)(pcStack_6c0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_6b8);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_6b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_698);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }\n  iVar22 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar27 + 0x20) << 1) {\n    *(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_6a4 << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_6a0 != -4) && (iStack_6b4 != 0)) {\n      if (*(int *)(iStack_6b4 + 100) == 0) {\n        *(int *)(iStack_6b4 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_6b4 + 100) = *(int *)(iStack_6b4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_6c0 + -0x7810);\n  pcVar36 = add_symbolless_local_addend;\n  iVar23 = *(int *)(pcStack_6c0 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_6c0 + -0x7924) + -0x2b1c);\n  iVar22 = iStack_6e0;\n  pcStack_730 = pcVar35 + 0x2750f0;\n  iStack_6f8 = iVar20;\n  uStack_73c = 1;\n  uStack_734 = 0;\n  uStack_738 = 0;\n  uStack_740 = 0;\n  uStack_744 = uStack_6d4;\n  uStack_748 = uStack_6d8;\n  iStack_750 = iStack_6e0;\n  puStack_700 = &uStack_6b8;\n  iStack_6fc = iVar27;\n  pcStack_6f4 = pcVar36;\n  (**(code **)(pcVar35 + 0x26dcac))(&uStack_728);\n  puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  uStack_704 = uStack_6cc;\n  uStack_708 = uStack_6d0;\n  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_730 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_728);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_728;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_708);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }\n  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_714 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_710 != -4) && (iStack_724 != 0)) {\n      if (*(int *)(iStack_724 + 100) == 0) {\n        *(int *)(iStack_724 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_724 + 100) = *(int *)(iStack_724 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_730 + -0x7810);\n  pcVar36 = add_symbolless_local_addend;\n  iVar27 = *(int *)(pcStack_730 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar27,0x231,*(int *)(pcStack_730 + -0x7924) + -0x2b1c);\n  iVar20 = iStack_750;\n  pcStack_7a0 = pcVar35 + 0x274f30;\n  uStack_7ac = 1;\n  uStack_7b8 = uStack_748;\n  iStack_768 = iVar22;\n  uStack_7a4 = 0;\n  uStack_7a8 = 0;\n  uStack_7b0 = 0;\n  uStack_7b4 = uStack_744;\n  iStack_7c0 = iStack_74c;\n  puStack_770 = &uStack_728;\n  iStack_76c = iVar23;\n  pcStack_764 = pcVar36;\n  (**(code **)(pcVar35 + 0x26d968))(&uStack_798);\n  puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  uStack_774 = uStack_73c;\n  uStack_778 = uStack_740;\n  if (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {\n    (**(code **)(pcStack_7a0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_798);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_798;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_778);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }\n  iVar22 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar27 + 0x20) << 1) {\n    *(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_784 << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_780 != -4) && (iStack_794 != 0)) {\n      if (*(int *)(iStack_794 + 100) == 0) {\n        *(int *)(iStack_794 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_794 + 100) = *(int *)(iStack_794 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_7a0 + -0x7810);\n  pcVar36 = add_local_section;\n  iVar23 = *(int *)(pcStack_7a0 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_7a0 + -0x7924) + -0x2b1c);\n  iVar22 = iStack_7c0;\n  pcStack_810 = pcVar35 + 0x274d6c;\n  iStack_7d8 = iVar20;\n  uStack_818 = 1;\n  uStack_814 = 0;\n  uStack_81c = 0;\n  uStack_820 = 0;\n  uStack_824 = uStack_7b4;\n  uStack_828 = uStack_7b8;\n  iStack_830 = iStack_7c0;\n  puStack_7e0 = &uStack_798;\n  iStack_7dc = iVar27;\n  pcStack_7d4 = pcVar36;\n  (**(code **)(pcVar35 + 0x26d928))(&uStack_808);\n  puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  uStack_7e4 = uStack_7ac;\n  uStack_7e8 = uStack_7b0;\n  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_810 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_808);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_808;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_7e8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }\n  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_7f4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_7f0 != -4) && (iStack_804 != 0)) {\n      if (*(int *)(iStack_804 + 100) == 0) {\n        *(int *)(iStack_804 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_804 + 100) = *(int *)(iStack_804 + 100) + 1;\n    }\n    return;\n  }\n  iVar27 = 0x231;\n  pcVar35 = *(code **)(pcStack_810 + -0x7810);\n  puVar30 = (undefined4 *)(*(int *)(pcStack_810 + -0x7924) + -0x2b1c);\n  pcVar36 = Output_data_reloc_base<4,_true,_64,_true>::add;\n  iVar20 = *(int *)(pcStack_810 + -0x7fc4) + 0x3574;\n  (*pcVar35)();\n  pOStack_858 = (Output_data *)(pcVar35 + 0x274bac);\n  iStack_848 = iVar22;\n  puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n  puStack_850 = &uStack_808;\n  iStack_84c = iVar23;\n  pcStack_844 = pcVar36;\n  if (puVar21 == *(undefined4 **)(iVar20 + 0x40)) {\n    (**(code **)(pcVar35 + 0x26eefc))(iVar20 + 0x38);\n    puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n  }\n  else {\n    puVar14 = puVar30;\n    puVar5 = puVar21;\n    do {\n      puVar10 = puVar5;\n      puVar6 = puVar14;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar10 = *puVar6;\n      puVar10[1] = uVar32;\n      puVar10[2] = uVar26;\n      puVar10[3] = uVar8;\n      puVar5 = puVar10 + 4;\n    } while (puVar14 != puVar30 + 8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar10[4] = *puVar14;\n    puVar10[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }\n  iVar22 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar20 + 0x20) << 1) {\n    iVar23 = puVar30[5];\n    *(int *)(iVar20 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar20 + 0x10) = 0;\n    *(byte *)(iVar27 + 0x20) = *(byte *)(iVar27 + 0x20) & 0xf7 | 8;\n    if (iVar23 << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }\n    if ((puVar30[6] != -4) && (iVar20 = puVar30[1], iVar20 != 0)) {\n      if (*(int *)(iVar20 + 100) == 0) {\n        *(int *)(iVar20 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iVar20 + 100) = *(int *)(iVar20 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)&pOStack_858[-0x301].offset_;\n  pcVar36 = Output_data_reloc<4,_true,_64,_true>::add_local;\n  this_00 = (Output_data_reloc_base<4,_true,_64,_true> *)\n            ((int)pOStack_858[-0x332].address_ + 0x3574);\n  (*pcVar35)(this_00,0x231,(int)pOStack_858[-0x308].offset_ + -0x2b1c);\n  iStack_874 = iVar20;\n  puStack_870 = puVar30;\n  pcStack_86c = pcVar36;\n  (**(code **)(pcVar35 + 0x26d47c))((Output_reloc_type *)auStack_8a0);\n  auStack_8a0._36_4_ = pcStack_844;\n  auStack_8a0._32_4_ = iStack_848;\n  Output_data_reloc_base<4,_true,_64,_true>::add\n            (this_00,pOStack_858,(Output_reloc_type *)auStack_8a0);\n  return;\n}\n\n" comment comment comment comment (declaration "void __thiscall\ngold::Output_data_reloc<4,_true,_64,_false>::add_relative\n          (Output_data_reloc<4,_true,_64,_false> *this,uint type,Output_data *od,\n          Sized_relobj<64,_false> *relobj,uint shndx,Address address,Addend addend)\n\n{\n  uint *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<4" < number_literal) , identifier , identifier , (ERROR "_false>::add_relative\n          (Output_data_reloc<4,_true,_64,_false> *this,uint type,Output_data *od,\n          Sized_relobj<64,_false> *relobj,uint shndx,Address address,Addend addend)\n\n{\n  uint" identifier > : : (function_declarator "add_relative\n          (Output_data_reloc<4,_true,_64,_false> *this,uint type,Output_data *od,\n          Sized_relobj<64,_false> *relobj,uint shndx,Address address,Addend addend)" identifier (parameter_list "(Output_data_reloc<4,_true,_64,_false> *this,uint type,Output_data *od,\n          Sized_relobj<64,_false> *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 "_false> *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 "_false> *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 "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "anon_union_4_4_c82d8563_for_u1_ aVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *paVar11;" type_identifier (pointer_declarator "*paVar11" * identifier) ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *paVar12;" type_identifier (pointer_declarator "*paVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * 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 "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (expression_statement "Output_data_reloc_base<4,_true,_64,_true> *this_00;" (update_expression "Output_data_reloc_base<4,_true,_64,_true> *this_00" (binary_expression "Output_data_reloc_base<4,_true,_64,_true> *this_00" (binary_expression "Output_data_reloc_base<4" identifier < number_literal) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > (pointer_expression "*this_00" * identifier)) --) ;) (declaration "pointer pOVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "uint *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "anon_union_4_4_c82d8563_for_u1_ aVar25;" type_identifier identifier ;) (declaration "undefined4 uVar26;" type_identifier identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "undefined4 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (expression_statement "Sized_relobj<64,_false> *pSVar31;" (update_expression "Sized_relobj<64,_false> *pSVar31" (binary_expression "Sized_relobj<64,_false> *pSVar31" (binary_expression "Sized_relobj<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*pSVar31" * identifier)) --) ;) (declaration "undefined4 uVar32;" type_identifier identifier ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "undefined *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "code *pcVar35;" type_identifier (pointer_declarator "*pcVar35" * identifier) ;) (declaration "code *pcVar36;" type_identifier (pointer_declarator "*pcVar36" * identifier) ;) (declaration "undefined1 auStack_8a0 [44];" type_identifier (array_declarator "auStack_8a0 [44]" identifier [ number_literal ]) ;) (declaration "int iStack_874;" primitive_type identifier ;) (declaration "undefined4 *puStack_870;" type_identifier (pointer_declarator "*puStack_870" * identifier) ;) (declaration "code *pcStack_86c;" type_identifier (pointer_declarator "*pcStack_86c" * identifier) ;) (declaration "Output_data *pOStack_858;" type_identifier (pointer_declarator "*pOStack_858" * identifier) ;) (declaration "undefined4 *puStack_850;" type_identifier (pointer_declarator "*puStack_850" * identifier) ;) (declaration "int iStack_84c;" primitive_type identifier ;) (declaration "int iStack_848;" primitive_type identifier ;) (declaration "code *pcStack_844;" type_identifier (pointer_declarator "*pcStack_844" * identifier) ;) (declaration "int iStack_830;" primitive_type identifier ;) (declaration "undefined4 uStack_828;" type_identifier identifier ;) (declaration "undefined4 uStack_824;" type_identifier identifier ;) (declaration "undefined4 uStack_820;" type_identifier identifier ;) (declaration "undefined4 uStack_81c;" type_identifier identifier ;) (declaration "undefined4 uStack_818;" type_identifier identifier ;) (declaration "undefined4 uStack_814;" type_identifier identifier ;) (declaration "code *pcStack_810;" type_identifier (pointer_declarator "*pcStack_810" * identifier) ;) (declaration "undefined4 uStack_808;" type_identifier identifier ;) (declaration "int iStack_804;" primitive_type identifier ;) (declaration "int iStack_7f4;" primitive_type identifier ;) (declaration "int iStack_7f0;" primitive_type identifier ;) (declaration "undefined4 uStack_7e8;" type_identifier identifier ;) (declaration "undefined4 uStack_7e4;" type_identifier identifier ;) (declaration "undefined4 *puStack_7e0;" type_identifier (pointer_declarator "*puStack_7e0" * identifier) ;) (declaration "int iStack_7dc;" primitive_type identifier ;) (declaration "int iStack_7d8;" primitive_type identifier ;) (declaration "code *pcStack_7d4;" type_identifier (pointer_declarator "*pcStack_7d4" * identifier) ;) (declaration "int iStack_7c0;" primitive_type identifier ;) (declaration "undefined4 uStack_7b8;" type_identifier identifier ;) (declaration "undefined4 uStack_7b4;" type_identifier identifier ;) (declaration "undefined4 uStack_7b0;" type_identifier identifier ;) (declaration "undefined4 uStack_7ac;" type_identifier identifier ;) (declaration "undefined4 uStack_7a8;" type_identifier identifier ;) (declaration "undefined4 uStack_7a4;" type_identifier identifier ;) (declaration "code *pcStack_7a0;" type_identifier (pointer_declarator "*pcStack_7a0" * identifier) ;) (declaration "undefined4 uStack_798;" type_identifier identifier ;) (declaration "int iStack_794;" primitive_type identifier ;) (declaration "int iStack_784;" primitive_type identifier ;) (declaration "int iStack_780;" primitive_type identifier ;) (declaration "undefined4 uStack_778;" type_identifier identifier ;) (declaration "undefined4 uStack_774;" type_identifier identifier ;) (declaration "undefined4 *puStack_770;" type_identifier (pointer_declarator "*puStack_770" * identifier) ;) (declaration "int iStack_76c;" primitive_type identifier ;) (declaration "int iStack_768;" primitive_type identifier ;) (declaration "code *pcStack_764;" type_identifier (pointer_declarator "*pcStack_764" * identifier) ;) (declaration "int iStack_750;" primitive_type identifier ;) (declaration "int iStack_74c;" primitive_type identifier ;) (declaration "undefined4 uStack_748;" type_identifier identifier ;) (declaration "undefined4 uStack_744;" type_identifier identifier ;) (declaration "undefined4 uStack_740;" type_identifier identifier ;) (declaration "undefined4 uStack_73c;" type_identifier identifier ;) (declaration "undefined4 uStack_738;" type_identifier identifier ;) (declaration "undefined4 uStack_734;" type_identifier identifier ;) (declaration "code *pcStack_730;" type_identifier (pointer_declarator "*pcStack_730" * 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 "uint 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 "int iStack_66c;" 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 "uint 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 "uint uStack_538;" type_identifier 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 "uint *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 "uint 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 "uint uStack_468;" type_identifier identifier ;) (declaration "uint uStack_464;" type_identifier 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 "uint uStack_430;" type_identifier identifier ;) (declaration "uint uStack_42c;" type_identifier 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 "undefined4 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 "int iStack_250;" primitive_type 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 "undefined4 *puStack_1f0;" type_identifier (pointer_declarator "*puStack_1f0" * identifier) ;) (declaration "int iStack_1ec;" primitive_type identifier ;) (declaration "code *pcStack_1e8;" type_identifier (pointer_declarator "*pcStack_1e8" * 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 "undefined4 uStack_1b8;" type_identifier identifier ;) (declaration "int iStack_1b4;" primitive_type identifier ;) (declaration "int iStack_1a4;" primitive_type identifier ;) (declaration "int iStack_1a0;" primitive_type identifier ;) (declaration "undefined4 uStack_198;" type_identifier identifier ;) (declaration "int iStack_194;" primitive_type identifier ;) (declaration "code **ppcStack_190;" type_identifier (pointer_declarator "**ppcStack_190" * (pointer_declarator "*ppcStack_190" * identifier)) ;) (declaration "int iStack_18c;" primitive_type identifier ;) (declaration "int iStack_188;" primitive_type 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 "int iStack_164;" primitive_type identifier ;) (declaration "code *pcStack_160;" type_identifier (pointer_declarator "*pcStack_160" * identifier) ;) (declaration "code *pcStack_158;" type_identifier (pointer_declarator "*pcStack_158" * identifier) ;) (declaration "int iStack_154;" primitive_type identifier ;) (declaration "int iStack_144;" primitive_type identifier ;) (declaration "int iStack_140;" primitive_type identifier ;) (declaration "code *pcStack_138;" type_identifier (pointer_declarator "*pcStack_138" * identifier) ;) (declaration "code *pcStack_134;" type_identifier (pointer_declarator "*pcStack_134" * identifier) ;) (declaration "undefined4 *puStack_130;" type_identifier (pointer_declarator "*puStack_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 "Address AStack_110;" 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 "code *pcStack_fc;" type_identifier (pointer_declarator "*pcStack_fc" * identifier) ;) (declaration "undefined4 uStack_f8;" type_identifier identifier ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int iStack_e0;" primitive_type identifier ;) (declaration "undefined4 uStack_d8;" type_identifier identifier ;) (declaration "undefined4 uStack_d4;" type_identifier 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,_false> *pSStack_c8;" (update_expression "Sized_relobj<64,_false> *pSStack_c8" (binary_expression "Sized_relobj<64,_false> *pSStack_c8" (binary_expression "Sized_relobj<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*pSStack_c8" * identifier)) --) ;) (declaration "code *pcStack_c4;" type_identifier (pointer_declarator "*pcStack_c4" * identifier) ;) (declaration "Address AStack_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 "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,_false> *pOStack_6c;" (update_expression "Output_data_reloc<4,_true,_64,_false> *pOStack_6c" (binary_expression "Output_data_reloc<4,_true,_64,_false> *pOStack_6c" (binary_expression "Output_data_reloc<4" identifier < number_literal) (ERROR ",_true,_64,_false" , 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_004c4170)(&local_38,type,relobj,shndx);" (call_expression "(*(code *)PTR_Output_reloc_004c4170)(&local_38,type,relobj,shndx)" (parenthesized_expression "(*(code *)PTR_Output_reloc_004c4170)" ( (pointer_expression "*(code *)PTR_Output_reloc_004c4170" * (cast_expression "(code *)PTR_Output_reloc_004c4170" ( (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 "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n            ._M_impl._M_finish;" (field_expression "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n            ._M_impl._M_finish" (field_expression "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n            ._M_impl" (binary_expression "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_" (binary_expression "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_" (binary_expression "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4" (binary_expression "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold" (binary_expression "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n            super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std" (binary_expression "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n            super__Vector_base<gold::Output_reloc<4" (assignment_expression "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n            super__Vector_base<gold" identifier = (binary_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n            super__Vector_base<gold" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n            super__Vector_base" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_false" (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,_false" identifier , (comma_expression "_64,_false" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_reloc" : : identifier) < number_literal) (ERROR ",_true,_64,_false" , identifier , identifier , identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_reloc" : : identifier) < number_literal) (ERROR ",_true,_64,_false" , 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 (pOVar19 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n      super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n      ._M_impl._M_end_of_storage) {\n    (*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_false>&>_004c3560)\n              (&(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_,pOVar19,&local_38);\n    pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n              super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n              ._M_impl._M_finish;\n    pSVar31 = addend._4_4_;\n    addend = local_18;\n  }\n  else {\n    pOVar3 = pOVar19;\n    paVar12 = &local_38;\n    do {\n      paVar11 = paVar12;\n      pOVar2 = pOVar3;\n      paVar12 = paVar11 + 4;\n      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;\n      pSVar31 = paVar11[1].relobj;\n      aVar25 = paVar11[2];\n      aVar7 = paVar11[3];\n      (pOVar2->rel_).u1_ = *paVar11;\n      (pOVar2->rel_).u2_.relobj = pSVar31;\n      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar25;\n      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar7;\n    } while (paVar12 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18);\n    pOVar19 = pOVar19 + 1;\n    aVar7 = paVar11[5];\n    *(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar12;\n    *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar7;\n    (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n    super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n    ._M_impl._M_finish = pOVar19;\n  }" if (parenthesized_expression "(pOVar19 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n      super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n      ._M_impl._M_end_of_storage)" ( (ERROR "pOVar19 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n      super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::" (comma_expression "pOVar19 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n      super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std" (binary_expression "pOVar19 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n      super__Vector_base<gold::Output_reloc<4" (binary_expression "pOVar19 ==\n      (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n      super__Vector_base<gold" identifier == (binary_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n      super__Vector_base<gold" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n      super__Vector_base" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_false" (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,_false" identifier , (comma_expression "_64,_false" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_reloc" : : identifier) < number_literal) , (comma_expression "_true,_64,_false>,_std" identifier , (comma_expression "_64,_false>,_std" identifier , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier)))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Output_reloc<4,_true,_64,_false>_>_>\n      ._M_impl._M_end_of_storage" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "_true,_64,_false>_>_>\n      ._M_impl._M_end_of_storage" identifier , (comma_expression "_64,_false>_>_>\n      ._M_impl._M_end_of_storage" identifier , (field_expression "_false>_>_>\n      ._M_impl._M_end_of_storage" (field_expression "_false>_>_>\n      ._M_impl" (binary_expression "_false>_>_" (binary_expression "_false>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)))) )) (compound_statement "{\n    (*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_false>&>_004c3560)\n              (&(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_,pOVar19,&local_38);\n    pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n              super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n              ._M_impl._M_finish;\n    pSVar31 = addend._4_4_;\n    addend = local_18;\n  }" { (expression_statement "(*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_false>&>_004c3560)\n              (&(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_,pOVar19,&local_38);" (call_expression "(*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_false>&>_004c3560)\n              (&(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_,pOVar19,&local_38)" (parenthesized_expression "(*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_false>&>_004c3560)" ( (comma_expression "*(code *)PTR__M_realloc_insert<const_gold_Output_reloc<4,_true,_64,_false>&>_004c3560" (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,_false>&>_004c3560" identifier , (comma_expression "_64,_false>&>_004c3560" identifier , (binary_expression "_false>&>_004c3560" identifier > (pointer_expression "&>_004c3560" & (ERROR ">" >) identifier))))) )) (argument_list "(&(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_,pOVar19,&local_38)" ( (pointer_expression "&(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_" & (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_false" (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,_false" identifier , (comma_expression "_64,_false" identifier , identifier))) (ERROR ">" >) )) . field_identifier)) , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (ERROR "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n              super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::" (comma_expression "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n              super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std" (binary_expression "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n              super__Vector_base<gold::Output_reloc<4" (assignment_expression "pOVar19 = (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n              super__Vector_base<gold" identifier = (binary_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n              super__Vector_base<gold" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n              super__Vector_base" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_false" (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,_false" identifier , (comma_expression "_64,_false" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_reloc" : : identifier) < number_literal) , (comma_expression "_true,_64,_false>,_std" identifier , (comma_expression "_64,_false>,_std" identifier , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier)))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_reloc<4,_true,_64,_false>_>_>\n              ._M_impl._M_finish;" (comma_expression "Output_reloc<4,_true,_64,_false>_>_>\n              ._M_impl._M_finish" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "_true,_64,_false>_>_>\n              ._M_impl._M_finish" identifier , (comma_expression "_64,_false>_>_>\n              ._M_impl._M_finish" identifier , (field_expression "_false>_>_>\n              ._M_impl._M_finish" (field_expression "_false>_>_>\n              ._M_impl" (binary_expression "_false>_>_" (binary_expression "_false>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)))) ;) (expression_statement "pSVar31 = addend._4_4_;" (assignment_expression "pSVar31 = 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 = pOVar19;\n    paVar12 = &local_38;\n    do {\n      paVar11 = paVar12;\n      pOVar2 = pOVar3;\n      paVar12 = paVar11 + 4;\n      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;\n      pSVar31 = paVar11[1].relobj;\n      aVar25 = paVar11[2];\n      aVar7 = paVar11[3];\n      (pOVar2->rel_).u1_ = *paVar11;\n      (pOVar2->rel_).u2_.relobj = pSVar31;\n      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar25;\n      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar7;\n    } while (paVar12 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18);\n    pOVar19 = pOVar19 + 1;\n    aVar7 = paVar11[5];\n    *(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar12;\n    *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar7;\n    (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n    super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n    ._M_impl._M_finish = pOVar19;\n  }" else (compound_statement "{\n    pOVar3 = pOVar19;\n    paVar12 = &local_38;\n    do {\n      paVar11 = paVar12;\n      pOVar2 = pOVar3;\n      paVar12 = paVar11 + 4;\n      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;\n      pSVar31 = paVar11[1].relobj;\n      aVar25 = paVar11[2];\n      aVar7 = paVar11[3];\n      (pOVar2->rel_).u1_ = *paVar11;\n      (pOVar2->rel_).u2_.relobj = pSVar31;\n      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar25;\n      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar7;\n    } while (paVar12 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18);\n    pOVar19 = pOVar19 + 1;\n    aVar7 = paVar11[5];\n    *(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar12;\n    *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar7;\n    (this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n    super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n    ._M_impl._M_finish = pOVar19;\n  }" { (expression_statement "pOVar3 = pOVar19;" (assignment_expression "pOVar3 = pOVar19" identifier = identifier) ;) (expression_statement "paVar12 = &local_38;" (assignment_expression "paVar12 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (do_statement "do {\n      paVar11 = paVar12;\n      pOVar2 = pOVar3;\n      paVar12 = paVar11 + 4;\n      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;\n      pSVar31 = paVar11[1].relobj;\n      aVar25 = paVar11[2];\n      aVar7 = paVar11[3];\n      (pOVar2->rel_).u1_ = *paVar11;\n      (pOVar2->rel_).u2_.relobj = pSVar31;\n      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar25;\n      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar7;\n    } while (paVar12 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18);" do (compound_statement "{\n      paVar11 = paVar12;\n      pOVar2 = pOVar3;\n      paVar12 = paVar11 + 4;\n      pOVar3 = (pointer)&(pOVar2->rel_).local_sym_index_;\n      pSVar31 = paVar11[1].relobj;\n      aVar25 = paVar11[2];\n      aVar7 = paVar11[3];\n      (pOVar2->rel_).u1_ = *paVar11;\n      (pOVar2->rel_).u2_.relobj = pSVar31;\n      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar25;\n      *(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar7;\n    }" { (expression_statement "paVar11 = paVar12;" (assignment_expression "paVar11 = paVar12" identifier = identifier) ;) (expression_statement "pOVar2 = pOVar3;" (assignment_expression "pOVar2 = pOVar3" identifier = identifier) ;) (expression_statement "paVar12 = paVar11 + 4;" (assignment_expression "paVar12 = paVar11 + 4" identifier = (binary_expression "paVar11 + 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 "pSVar31 = paVar11[1].relobj;" (assignment_expression "pSVar31 = paVar11[1].relobj" identifier = (field_expression "paVar11[1].relobj" (subscript_expression "paVar11[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "aVar25 = paVar11[2];" (assignment_expression "aVar25 = paVar11[2]" identifier = (subscript_expression "paVar11[2]" identifier [ number_literal ])) ;) (expression_statement "aVar7 = paVar11[3];" (assignment_expression "aVar7 = paVar11[3]" identifier = (subscript_expression "paVar11[3]" identifier [ number_literal ])) ;) (expression_statement "(pOVar2->rel_).u1_ = *paVar11;" (assignment_expression "(pOVar2->rel_).u1_ = *paVar11" (field_expression "(pOVar2->rel_).u1_" (parenthesized_expression "(pOVar2->rel_)" ( (field_expression "pOVar2->rel_" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "*paVar11" * identifier)) ;) (expression_statement "(pOVar2->rel_).u2_.relobj = pSVar31;" (assignment_expression "(pOVar2->rel_).u2_.relobj = pSVar31" (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_ = aVar25;" (assignment_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar25" (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) = aVar7;" (assignment_expression "*(anon_union_4_4_c82d8563_for_u1_ *)((int)&(pOVar2->rel_).address_ + 4) = aVar7" (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 "(paVar12 != (anon_union_4_4_c82d8563_for_u1_ *)&local_18)" ( (binary_expression "paVar12 != (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 "pOVar19 = pOVar19 + 1;" (assignment_expression "pOVar19 = pOVar19 + 1" identifier = (binary_expression "pOVar19 + 1" identifier + number_literal)) ;) (expression_statement "aVar7 = paVar11[5];" (assignment_expression "aVar7 = paVar11[5]" identifier = (subscript_expression "paVar11[5]" identifier [ number_literal ])) ;) (expression_statement "*(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar12;" (assignment_expression "*(anon_union_4_4_c82d8563_for_u1_ *)pOVar3 = *paVar12" (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 "*paVar12" * identifier)) ;) (expression_statement "*(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar7;" (assignment_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).field_0x14 = aVar7" (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,_false>).relocs_.\n    super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::" (comma_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n    super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std" (binary_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n    super__Vector_base<gold::Output_reloc<4" (binary_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n    super__Vector_base<gold" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n    super__Vector_base" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_false" (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,_false" identifier , (comma_expression "_64,_false" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier) (ERROR "::Output_reloc" : : identifier) < number_literal) , (comma_expression "_true,_64,_false>,_std" identifier , (comma_expression "_64,_false>,_std" identifier , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier)))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_reloc<4,_true,_64,_false>_>_>\n    ._M_impl._M_finish = pOVar19;" (comma_expression "Output_reloc<4,_true,_64,_false>_>_>\n    ._M_impl._M_finish = pOVar19" (binary_expression "Output_reloc<4" identifier < number_literal) , (comma_expression "_true,_64,_false>_>_>\n    ._M_impl._M_finish = pOVar19" identifier , (comma_expression "_64,_false>_>_>\n    ._M_impl._M_finish = pOVar19" identifier , (assignment_expression "_false>_>_>\n    ._M_impl._M_finish = pOVar19" (field_expression "_false>_>_>\n    ._M_impl._M_finish" (field_expression "_false>_>_>\n    ._M_impl" (binary_expression "_false>_>_" (binary_expression "_false>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier)))) ;) }))) (expression_statement "iVar20 = (int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n                ._M_impl._M_start >> 3;" (update_expression "iVar20 = (int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n                ._M_impl._M_start >> 3" (binary_expression "iVar20 = (int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n                ._M_impl._M_start >> 3" (field_expression "iVar20 = (int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n                ._M_impl._M_start" (field_expression "iVar20 = (int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_>\n                ._M_impl" (binary_expression "iVar20 = (int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_>_" (binary_expression "iVar20 = (int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4,_true,_64,_false>_" (binary_expression "iVar20 = (int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold::Output_reloc<4" (binary_expression "iVar20 = (int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std::allocator<gold" (binary_expression "iVar20 = (int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold::Output_reloc<4,_true,_64,_false>,_std" (binary_expression "iVar20 = (int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold::Output_reloc<4" (assignment_expression "iVar20 = (int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold" identifier = (binary_expression "(int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base<gold" (binary_expression "(int)pOVar19 -\n           (int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base" (cast_expression "(int)pOVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_.\n                super__Vector_base" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).relocs_" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_false" (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,_false" identifier , (comma_expression "_64,_false" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier))) < identifier)) (ERROR "::Output_reloc" : : identifier) < number_literal) (ERROR ",_true,_64,_false" , identifier , identifier , identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_reloc" : : identifier) < number_literal) (ERROR ",_true,_64,_false" , 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,_false>).\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,_false>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4) = iVar20 * 0x33333338\n    ;\n    *(undefined4 *)\n     &(this->super_Output_data_reloc_base<4,_true,_64,_false>).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,_false>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_false>).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) = iVar20 * -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,_false>).\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,_false>).\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,_false>).\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,_false>).\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,_false>).\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,_false>).\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,_false>).\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,_false>).\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,_false>).\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,_false>).\n                    super_Output_data_reloc_generic.super_Output_section_data_build" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).\n                    super_Output_data_reloc_generic" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_false" (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,_false" identifier , (comma_expression "_64,_false" 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,_false>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4) = iVar20 * 0x33333338\n    ;\n    *(undefined4 *)\n     &(this->super_Output_data_reloc_base<4,_true,_64,_false>).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,_false>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_false>).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) = iVar20 * -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,_false>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4) = iVar20 * 0x33333338\n    ;" (assignment_expression "*(int *)((int)&(this->super_Output_data_reloc_base<4,_true,_64,_false>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.data_size_ + 4) = iVar20 * 0x33333338" (pointer_expression "*(int *)((int)&(this->super_Output_data_reloc_base<4,_true,_64,_false>).\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,_false>).\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,_false>).\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,_false>).\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,_false>).\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,_false>).\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,_false>).\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,_false>).\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,_false>).\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,_false>).\n                   super_Output_data_reloc_generic.super_Output_section_data_build" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).\n                   super_Output_data_reloc_generic" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_false" (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,_false" identifier , (comma_expression "_64,_false" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) = (binary_expression "iVar20 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)\n     &(this->super_Output_data_reloc_base<4,_true,_64,_false>).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,_false>).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,_false>).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,_false>).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,_false>).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,_false>).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,_false>).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,_false>).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,_false>).super_Output_data_reloc_generic.\n      super_Output_section_data_build" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).super_Output_data_reloc_generic" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_false" (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,_false" identifier , (comma_expression "_64,_false" 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,_false>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_false>).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,_false>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_false>).super_Output_data_reloc_generic.\n           relative_reloc_count_ + 1;\n    }" { (expression_statement "(this->super_Output_data_reloc_base<4,_true,_64,_false>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_false>).super_Output_data_reloc_generic.\n           relative_reloc_count_ + 1;" (assignment_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).super_Output_data_reloc_generic.\n      relative_reloc_count_ =\n           (this->super_Output_data_reloc_base<4,_true,_64,_false>).super_Output_data_reloc_generic.\n           relative_reloc_count_ + 1" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).super_Output_data_reloc_generic.\n      relative_reloc_count_" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).super_Output_data_reloc_generic" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_false" (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,_false" identifier , (comma_expression "_64,_false" identifier , identifier))) (ERROR ">" >) )) . field_identifier) . field_identifier) = (binary_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).super_Output_data_reloc_generic.\n           relative_reloc_count_ + 1" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).super_Output_data_reloc_generic.\n           relative_reloc_count_" (field_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>).super_Output_data_reloc_generic" (parenthesized_expression "(this->super_Output_data_reloc_base<4,_true,_64,_false>)" ( (comma_expression "this->super_Output_data_reloc_base<4,_true,_64,_false" (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,_false" identifier , (comma_expression "_64,_false" 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) = iVar20 * -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) = iVar20 * -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) = iVar20 * -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) = iVar20 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(local_34 + 0x60) = iVar20 * -0x33333333 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar20 * -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 "iVar20 * -0x33333333 + -1" (binary_expression "iVar20 * -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 "pcVar35 = add_output_section_relative;" (assignment_expression "pcVar35 = add_output_section_relative" identifier = identifier) ;) (expression_statement "puVar13 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;" (assignment_expression "puVar13 = 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            (puVar13,0x231,PTR_s_in_a_linker_script_004c191c + -0x2b1c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar13,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 "(puVar13,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 + 0x276c94;" (assignment_expression "puStack_a0 = puVar34 + 0x276c94" identifier = (binary_expression "puVar34 + 0x276c94" identifier + number_literal)) ;) (expression_statement "uStack_a8 = 1;" (assignment_expression "uStack_a8 = 1" 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 = pcVar35;" (assignment_expression "pcStack_64 = pcVar35" identifier = identifier) ;) (expression_statement "AStack_b0 = local_50;" (assignment_expression "AStack_b0 = local_50" identifier = identifier) ;) (expression_statement "(**(code **)(puVar34 + 0x26f9f4))(&uStack_98);" (call_expression "(**(code **)(puVar34 + 0x26f9f4))(&uStack_98)" (parenthesized_expression "(**(code **)(puVar34 + 0x26f9f4))" ( (pointer_expression "**(code **)(puVar34 + 0x26f9f4)" * (pointer_expression "*(code **)(puVar34 + 0x26f9f4)" * (cast_expression "(code **)(puVar34 + 0x26f9f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0x26f9f4)" ( (binary_expression "puVar34 + 0x26f9f4" identifier + number_literal) ))))) )) (argument_list "(&uStack_98)" ( (pointer_expression "&uStack_98" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(puVar13 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(puVar13 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(puVar13 + 0x3c)" * (cast_expression "(undefined4 **)(puVar13 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x3c)" ( (binary_expression "puVar13 + 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 (puVar21 == *(undefined4 **)(puVar13 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar13 + 0x38,puVar21,&uStack_98);\n    puVar21 = *(undefined4 **)(puVar13 + 0x3c);\n    iVar20 = iStack_44;\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_98;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_78);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(puVar13 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(puVar13 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(puVar13 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(puVar13 + 0x40)" * (cast_expression "(undefined4 **)(puVar13 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x40)" ( (binary_expression "puVar13 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar13 + 0x38,puVar21,&uStack_98);\n    puVar21 = *(undefined4 **)(puVar13 + 0x3c);\n    iVar20 = iStack_44;\n  }" { (expression_statement "(**(code **)(puStack_a0 + -0x5ce0))(puVar13 + 0x38,puVar21,&uStack_98);" (call_expression "(**(code **)(puStack_a0 + -0x5ce0))(puVar13 + 0x38,puVar21,&uStack_98)" (parenthesized_expression "(**(code **)(puStack_a0 + -0x5ce0))" ( (pointer_expression "**(code **)(puStack_a0 + -0x5ce0)" * (pointer_expression "*(code **)(puStack_a0 + -0x5ce0)" * (cast_expression "(code **)(puStack_a0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a0 + -0x5ce0)" ( (binary_expression "puStack_a0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(puVar13 + 0x38,puVar21,&uStack_98)" ( (binary_expression "puVar13 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_98" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(puVar13 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(puVar13 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(puVar13 + 0x3c)" * (cast_expression "(undefined4 **)(puVar13 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x3c)" ( (binary_expression "puVar13 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = iStack_44;" (assignment_expression "iVar20 = iStack_44" identifier = identifier) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_98;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_78);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(puVar13 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_98;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_78);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(puVar13 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_98;" (assignment_expression "puVar14 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_78);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar20 = puVar6[1];" (assignment_expression "iVar20 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = iVar20;" (assignment_expression "puVar5[1] = iVar20" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_78)" ( (binary_expression "puVar14 != &uStack_78" identifier != (pointer_expression "&uStack_78" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(puVar13 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(puVar13 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(puVar13 + 0x3c)" * (cast_expression "(undefined4 **)(puVar13 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x3c)" ( (binary_expression "puVar13 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar22 = (int)puVar21 - *(int *)(puVar13 + 0x38) >> 3;" (assignment_expression "iVar22 = (int)puVar21 - *(int *)(puVar13 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(puVar13 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(puVar13 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(puVar13 + 0x38)" * (cast_expression "(int *)(puVar13 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x38)" ( (binary_expression "puVar13 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(puVar13 + 0x20) << 1) {\n    *(int *)(puVar13 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(puVar13 + 0x10) = 0;\n    *(byte *)&(pSVar31->super_Relobj).super_Object.offset_ =\n         *(byte *)&(pSVar31->super_Relobj).super_Object.offset_ & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar13 + 0x30) = *(int *)(puVar13 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(puVar13 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(puVar13 + 0x20) << 1" number_literal < (binary_expression "*(int *)(puVar13 + 0x20) << 1" (pointer_expression "*(int *)(puVar13 + 0x20)" * (cast_expression "(int *)(puVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x20)" ( (binary_expression "puVar13 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(puVar13 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(puVar13 + 0x10) = 0;\n    *(byte *)&(pSVar31->super_Relobj).super_Object.offset_ =\n         *(byte *)&(pSVar31->super_Relobj).super_Object.offset_ & 0xf7 | 8;\n    if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar13 + 0x30) = *(int *)(puVar13 + 0x30) + 1;\n    }\n    if ((iStack_80 != -4) && (iStack_94 != 0)) {\n      if (*(int *)(iStack_94 + 100) == 0) {\n        *(int *)(iStack_94 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(puVar13 + 0x14) = iVar22 * 0x33333338;" (assignment_expression "*(int *)(puVar13 + 0x14) = iVar22 * 0x33333338" (pointer_expression "*(int *)(puVar13 + 0x14)" * (cast_expression "(int *)(puVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x14)" ( (binary_expression "puVar13 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar22 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(puVar13 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar13 + 0x10) = 0" (pointer_expression "*(undefined4 *)(puVar13 + 0x10)" * (cast_expression "(undefined4 *)(puVar13 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x10)" ( (binary_expression "puVar13 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)&(pSVar31->super_Relobj).super_Object.offset_ =\n         *(byte *)&(pSVar31->super_Relobj).super_Object.offset_ & 0xf7 | 8;" (assignment_expression "*(byte *)&(pSVar31->super_Relobj).super_Object.offset_ =\n         *(byte *)&(pSVar31->super_Relobj).super_Object.offset_ & 0xf7 | 8" (pointer_expression "*(byte *)&(pSVar31->super_Relobj).super_Object.offset_" * (cast_expression "(byte *)&(pSVar31->super_Relobj).super_Object.offset_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pSVar31->super_Relobj).super_Object.offset_" & (field_expression "(pSVar31->super_Relobj).super_Object.offset_" (field_expression "(pSVar31->super_Relobj).super_Object" (parenthesized_expression "(pSVar31->super_Relobj)" ( (field_expression "pSVar31->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = (binary_expression "*(byte *)&(pSVar31->super_Relobj).super_Object.offset_ & 0xf7 | 8" (binary_expression "*(byte *)&(pSVar31->super_Relobj).super_Object.offset_ & 0xf7" (pointer_expression "*(byte *)&(pSVar31->super_Relobj).super_Object.offset_" * (cast_expression "(byte *)&(pSVar31->super_Relobj).super_Object.offset_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pSVar31->super_Relobj).super_Object.offset_" & (field_expression "(pSVar31->super_Relobj).super_Object.offset_" (field_expression "(pSVar31->super_Relobj).super_Object" (parenthesized_expression "(pSVar31->super_Relobj)" ( (field_expression "pSVar31->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_84 << 0x1c < 0) {\n      *(int *)(puVar13 + 0x30) = *(int *)(puVar13 + 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 *)(puVar13 + 0x30) = *(int *)(puVar13 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(puVar13 + 0x30) = *(int *)(puVar13 + 0x30) + 1;" (assignment_expression "*(int *)(puVar13 + 0x30) = *(int *)(puVar13 + 0x30) + 1" (pointer_expression "*(int *)(puVar13 + 0x30)" * (cast_expression "(int *)(puVar13 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x30)" ( (binary_expression "puVar13 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar13 + 0x30) + 1" (pointer_expression "*(int *)(puVar13 + 0x30)" * (cast_expression "(int *)(puVar13 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x30)" ( (binary_expression "puVar13 + 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) = iVar22 * -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) = iVar22 * -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) = iVar22 * -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) = iVar22 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_94 + 0x60) = iVar22 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_94 + 0x60) = iVar22 * -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 "iVar22 * -0x33333333 + -1" (binary_expression "iVar22 * -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 "pcVar35 = *(code **)(puStack_a0 + -0x7810);" (assignment_expression "pcVar35 = *(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 "pcVar36 = add_output_section_generic;" (assignment_expression "pcVar36 = add_output_section_generic" identifier = identifier) ;) (expression_statement "iVar22 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar22 = *(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 "(*pcVar35)(iVar22,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar22,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar22,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 = pcVar35 + 0x276ae4;" (assignment_expression "pcStack_100 = pcVar35 + 0x276ae4" identifier = (binary_expression "pcVar35 + 0x276ae4" identifier + number_literal)) ;) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" identifier = number_literal) ;) (expression_statement "puStack_d0 = &uStack_98;" (assignment_expression "puStack_d0 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (expression_statement "puStack_cc = puVar13;" (assignment_expression "puStack_cc = puVar13" identifier = identifier) ;) (expression_statement "pSStack_c8 = pSVar31;" (assignment_expression "pSStack_c8 = pSVar31" identifier = identifier) ;) (expression_statement "pcStack_c4 = pcVar36;" (assignment_expression "pcStack_c4 = pcVar36" identifier = identifier) ;) (expression_statement "AStack_110 = AStack_b0;" (assignment_expression "AStack_110 = AStack_b0" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26f844))(&uStack_f8);" (call_expression "(**(code **)(pcVar35 + 0x26f844))(&uStack_f8)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26f844))" ( (pointer_expression "**(code **)(pcVar35 + 0x26f844)" * (pointer_expression "*(code **)(pcVar35 + 0x26f844)" * (cast_expression "(code **)(pcVar35 + 0x26f844)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26f844)" ( (binary_expression "pcVar35 + 0x26f844" identifier + number_literal) ))))) )) (argument_list "(&uStack_f8)" ( (pointer_expression "&uStack_f8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar22 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar22 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar22 + 0x3c)" * (cast_expression "(undefined4 **)(iVar22 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x3c)" ( (binary_expression "iVar22 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_d4 = uStack_a4;" (assignment_expression "uStack_d4 = uStack_a4" identifier = identifier) ;) (expression_statement "uStack_d8 = uStack_a8;" (assignment_expression "uStack_d8 = uStack_a8" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_f8);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_f8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_d8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar22 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar22 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar22 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar22 + 0x40)" * (cast_expression "(undefined4 **)(iVar22 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x40)" ( (binary_expression "iVar22 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_f8);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_100 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_f8);" (call_expression "(**(code **)(pcStack_100 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_f8)" (parenthesized_expression "(**(code **)(pcStack_100 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_100 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_100 + -0x5ce0)" * (cast_expression "(code **)(pcStack_100 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_100 + -0x5ce0)" ( (binary_expression "pcStack_100 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar22 + 0x38,puVar21,&uStack_f8)" ( (binary_expression "iVar22 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_f8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar22 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar22 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar22 + 0x3c)" * (cast_expression "(undefined4 **)(iVar22 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x3c)" ( (binary_expression "iVar22 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_f8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_d8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar22 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_f8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_d8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar22 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_f8;" (assignment_expression "puVar14 = &uStack_f8" identifier = (pointer_expression "&uStack_f8" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_d8);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar32 = puVar6[1];" (assignment_expression "uVar32 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = uVar32;" (assignment_expression "puVar5[1] = uVar32" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_d8)" ( (binary_expression "puVar14 != &uStack_d8" identifier != (pointer_expression "&uStack_d8" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar22 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar22 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar22 + 0x3c)" * (cast_expression "(undefined4 **)(iVar22 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x3c)" ( (binary_expression "iVar22 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar23 = (int)puVar21 - *(int *)(iVar22 + 0x38) >> 3;" (assignment_expression "iVar23 = (int)puVar21 - *(int *)(iVar22 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar22 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar22 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar22 + 0x38)" * (cast_expression "(int *)(iVar22 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x38)" ( (binary_expression "iVar22 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar22 + 0x20) << 1) {\n    *(int *)(iVar22 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar22 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar22 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar22 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar22 + 0x20) << 1" (pointer_expression "*(int *)(iVar22 + 0x20)" * (cast_expression "(int *)(iVar22 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar22 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar22 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar22 + 0x14) = iVar23 * 0x33333338;" (assignment_expression "*(int *)(iVar22 + 0x14) = iVar23 * 0x33333338" (pointer_expression "*(int *)(iVar22 + 0x14)" * (cast_expression "(int *)(iVar22 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x14)" ( (binary_expression "iVar22 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar23 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar22 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 0x10)" * (cast_expression "(undefined4 *)(iVar22 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x10)" ( (binary_expression "iVar22 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar20 + 0x20)" * (cast_expression "(byte *)(iVar20 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar20 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar20 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar20 + 0x20)" * (cast_expression "(byte *)(iVar20 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 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 *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;" (assignment_expression "*(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1" (pointer_expression "*(int *)(iVar22 + 0x30)" * (cast_expression "(int *)(iVar22 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x30)" ( (binary_expression "iVar22 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar22 + 0x30) + 1" (pointer_expression "*(int *)(iVar22 + 0x30)" * (cast_expression "(int *)(iVar22 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x30)" ( (binary_expression "iVar22 + 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) = iVar23 * -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) = iVar23 * -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) = iVar23 * -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) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_f4 + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_f4 + 0x60) = iVar23 * -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 "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -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 "pcVar35 = *(code **)(pcStack_100 + -0x7810);" (assignment_expression "pcVar35 = *(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 "iVar27 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;" (assignment_expression "iVar27 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c" identifier = (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 "pcVar36 = add_absolute;" (assignment_expression "pcVar36 = add_absolute" identifier = identifier) ;) (expression_statement "iVar23 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;" (assignment_expression "iVar23 = *(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 "(*pcVar35)(iVar23,0x231);" (call_expression "(*pcVar35)(iVar23,0x231)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar23,0x231)" ( identifier , number_literal ))) ;) (expression_statement "pcStack_160 = pcVar35 + 0x276938;" (assignment_expression "pcStack_160 = pcVar35 + 0x276938" identifier = (binary_expression "pcVar35 + 0x276938" identifier + number_literal)) ;) (expression_statement "uStack_168 = 0;" (assignment_expression "uStack_168 = 0" identifier = number_literal) ;) (expression_statement "uStack_16c = uStack_104;" (assignment_expression "uStack_16c = uStack_104" identifier = identifier) ;) (expression_statement "uStack_170 = uStack_108;" (assignment_expression "uStack_170 = uStack_108" identifier = identifier) ;) (expression_statement "puStack_130 = &uStack_f8;" (assignment_expression "puStack_130 = &uStack_f8" identifier = (pointer_expression "&uStack_f8" & identifier)) ;) (expression_statement "iStack_12c = iVar22;" (assignment_expression "iStack_12c = iVar22" identifier = identifier) ;) (expression_statement "iStack_128 = iVar20;" (assignment_expression "iStack_128 = iVar20" identifier = identifier) ;) (expression_statement "pcStack_124 = pcVar36;" (assignment_expression "pcStack_124 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x271868))(&pcStack_158);" (call_expression "(**(code **)(pcVar35 + 0x271868))(&pcStack_158)" (parenthesized_expression "(**(code **)(pcVar35 + 0x271868))" ( (pointer_expression "**(code **)(pcVar35 + 0x271868)" * (pointer_expression "*(code **)(pcVar35 + 0x271868)" * (cast_expression "(code **)(pcVar35 + 0x271868)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x271868)" ( (binary_expression "pcVar35 + 0x271868" identifier + number_literal) ))))) )) (argument_list "(&pcStack_158)" ( (pointer_expression "&pcStack_158" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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 "pcStack_134 = pcStack_fc;" (assignment_expression "pcStack_134 = pcStack_fc" identifier = identifier) ;) (expression_statement "pcStack_138 = pcStack_100;" (assignment_expression "pcStack_138 = pcStack_100" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_160 + -0x5ce0))(iVar23 + 0x38,puVar21,&pcStack_158);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n    pcVar35 = pcStack_fc;\n  }\n  else {\n    puVar30 = puVar21;\n    ppcVar15 = &pcStack_158;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar14 = puVar30;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar35 = ppcVar16[1];\n      pcVar28 = ppcVar16[2];\n      pcVar36 = ppcVar16[3];\n      *puVar14 = *ppcVar16;\n      puVar14[1] = pcVar35;\n      puVar14[2] = pcVar28;\n      puVar14[3] = pcVar36;\n      puVar30 = puVar14 + 4;\n    } while (ppcVar15 != &pcStack_138);\n    puVar21 = puVar21 + 10;\n    pcVar36 = ppcVar16[5];\n    puVar14[4] = *ppcVar15;\n    puVar14[5] = pcVar36;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar23 + 0x40))" ( (binary_expression "puVar21 == *(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_160 + -0x5ce0))(iVar23 + 0x38,puVar21,&pcStack_158);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n    pcVar35 = pcStack_fc;\n  }" { (expression_statement "(**(code **)(pcStack_160 + -0x5ce0))(iVar23 + 0x38,puVar21,&pcStack_158);" (call_expression "(**(code **)(pcStack_160 + -0x5ce0))(iVar23 + 0x38,puVar21,&pcStack_158)" (parenthesized_expression "(**(code **)(pcStack_160 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_160 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_160 + -0x5ce0)" * (cast_expression "(code **)(pcStack_160 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_160 + -0x5ce0)" ( (binary_expression "pcStack_160 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x38,puVar21,&pcStack_158)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&pcStack_158" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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 "pcVar35 = pcStack_fc;" (assignment_expression "pcVar35 = pcStack_fc" identifier = identifier) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    ppcVar15 = &pcStack_158;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar14 = puVar30;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar35 = ppcVar16[1];\n      pcVar28 = ppcVar16[2];\n      pcVar36 = ppcVar16[3];\n      *puVar14 = *ppcVar16;\n      puVar14[1] = pcVar35;\n      puVar14[2] = pcVar28;\n      puVar14[3] = pcVar36;\n      puVar30 = puVar14 + 4;\n    } while (ppcVar15 != &pcStack_138);\n    puVar21 = puVar21 + 10;\n    pcVar36 = ppcVar16[5];\n    puVar14[4] = *ppcVar15;\n    puVar14[5] = pcVar36;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    ppcVar15 = &pcStack_158;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar14 = puVar30;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar35 = ppcVar16[1];\n      pcVar28 = ppcVar16[2];\n      pcVar36 = ppcVar16[3];\n      *puVar14 = *ppcVar16;\n      puVar14[1] = pcVar35;\n      puVar14[2] = pcVar28;\n      puVar14[3] = pcVar36;\n      puVar30 = puVar14 + 4;\n    } while (ppcVar15 != &pcStack_138);\n    puVar21 = puVar21 + 10;\n    pcVar36 = ppcVar16[5];\n    puVar14[4] = *ppcVar15;\n    puVar14[5] = pcVar36;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "ppcVar15 = &pcStack_158;" (assignment_expression "ppcVar15 = &pcStack_158" identifier = (pointer_expression "&pcStack_158" & identifier)) ;) (do_statement "do {\n      ppcVar16 = ppcVar15;\n      puVar14 = puVar30;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar35 = ppcVar16[1];\n      pcVar28 = ppcVar16[2];\n      pcVar36 = ppcVar16[3];\n      *puVar14 = *ppcVar16;\n      puVar14[1] = pcVar35;\n      puVar14[2] = pcVar28;\n      puVar14[3] = pcVar36;\n      puVar30 = puVar14 + 4;\n    } while (ppcVar15 != &pcStack_138);" do (compound_statement "{\n      ppcVar16 = ppcVar15;\n      puVar14 = puVar30;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar35 = ppcVar16[1];\n      pcVar28 = ppcVar16[2];\n      pcVar36 = ppcVar16[3];\n      *puVar14 = *ppcVar16;\n      puVar14[1] = pcVar35;\n      puVar14[2] = pcVar28;\n      puVar14[3] = pcVar36;\n      puVar30 = puVar14 + 4;\n    }" { (expression_statement "ppcVar16 = ppcVar15;" (assignment_expression "ppcVar16 = ppcVar15" identifier = identifier) ;) (expression_statement "puVar14 = puVar30;" (assignment_expression "puVar14 = puVar30" identifier = identifier) ;) (expression_statement "ppcVar15 = ppcVar16 + 4;" (assignment_expression "ppcVar15 = ppcVar16 + 4" identifier = (binary_expression "ppcVar16 + 4" identifier + number_literal)) ;) (expression_statement "pcVar35 = ppcVar16[1];" (assignment_expression "pcVar35 = ppcVar16[1]" identifier = (subscript_expression "ppcVar16[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar28 = ppcVar16[2];" (assignment_expression "pcVar28 = ppcVar16[2]" identifier = (subscript_expression "ppcVar16[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar36 = ppcVar16[3];" (assignment_expression "pcVar36 = ppcVar16[3]" identifier = (subscript_expression "ppcVar16[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar14 = *ppcVar16;" (assignment_expression "*puVar14 = *ppcVar16" (pointer_expression "*puVar14" * identifier) = (pointer_expression "*ppcVar16" * identifier)) ;) (expression_statement "puVar14[1] = pcVar35;" (assignment_expression "puVar14[1] = pcVar35" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[2] = pcVar28;" (assignment_expression "puVar14[2] = pcVar28" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[3] = pcVar36;" (assignment_expression "puVar14[3] = pcVar36" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar14 + 4;" (assignment_expression "puVar30 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppcVar15 != &pcStack_138)" ( (binary_expression "ppcVar15 != &pcStack_138" identifier != (pointer_expression "&pcStack_138" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "pcVar36 = ppcVar16[5];" (assignment_expression "pcVar36 = ppcVar16[5]" identifier = (subscript_expression "ppcVar16[5]" identifier [ number_literal ])) ;) (expression_statement "puVar14[4] = *ppcVar15;" (assignment_expression "puVar14[4] = *ppcVar15" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = (pointer_expression "*ppcVar15" * identifier)) ;) (expression_statement "puVar14[5] = pcVar36;" (assignment_expression "puVar14[5] = pcVar36" (subscript_expression "puVar14[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar23 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar23 + 0x3c) = puVar21" (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 "iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;" (assignment_expression "iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38)" (cast_expression "(int)puVar21" ( (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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar27 + 0x20) = *(byte *)(iVar27 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar27 + 0x20) = *(byte *)(iVar27 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;" (assignment_expression "*(int *)(iVar23 + 0x14) = iVar20 * 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 "iVar20 * 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 *)(iVar27 + 0x20) = *(byte *)(iVar27 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar27 + 0x20) = *(byte *)(iVar27 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar27 + 0x20)" * (cast_expression "(byte *)(iVar27 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x20)" ( (binary_expression "iVar27 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar27 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar27 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar27 + 0x20)" * (cast_expression "(byte *)(iVar27 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x20)" ( (binary_expression "iVar27 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 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 *)(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_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar20 * -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) = iVar20 * -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) = iVar20 * -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) = iVar20 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_154 + 0x60) = iVar20 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_154 + 0x60) = iVar20 * -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 "iVar20 * -0x33333333 + -1" (binary_expression "iVar20 * -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 "pcVar36 = *(code **)(pcStack_160 + -0x7810);" (assignment_expression "pcVar36 = *(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 "pcVar28 = add_output_section;" (assignment_expression "pcVar28 = add_output_section" identifier = identifier) ;) (expression_statement "iVar20 = *(int *)(pcStack_160 + -0x7fc4) + 0x3574;" (assignment_expression "iVar20 = *(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 "(*pcVar36)(iVar20,0x231,*(int *)(pcStack_160 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar36)(iVar20,0x231,*(int *)(pcStack_160 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(iVar20,0x231,*(int *)(pcStack_160 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (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 "pcStack_1c0 = pcVar36 + 0x276780;" (assignment_expression "pcStack_1c0 = pcVar36 + 0x276780" identifier = (binary_expression "pcVar36 + 0x276780" identifier + number_literal)) ;) (expression_statement "uStack_1d0 = uStack_170;" (assignment_expression "uStack_1d0 = uStack_170" identifier = identifier) ;) (expression_statement "uStack_1c8 = 0;" (assignment_expression "uStack_1c8 = 0" identifier = number_literal) ;) (expression_statement "uStack_1cc = uStack_16c;" (assignment_expression "uStack_1cc = uStack_16c" identifier = identifier) ;) (expression_statement "ppcStack_190 = &pcStack_158;" (assignment_expression "ppcStack_190 = &pcStack_158" identifier = (pointer_expression "&pcStack_158" & identifier)) ;) (expression_statement "iStack_18c = iVar23;" (assignment_expression "iStack_18c = iVar23" identifier = identifier) ;) (expression_statement "iStack_188 = iVar27;" (assignment_expression "iStack_188 = iVar27" identifier = identifier) ;) (expression_statement "pcStack_184 = pcVar28;" (assignment_expression "pcStack_184 = pcVar28" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar36 + 0x26f4e0))(&uStack_1b8);" (call_expression "(**(code **)(pcVar36 + 0x26f4e0))(&uStack_1b8)" (parenthesized_expression "(**(code **)(pcVar36 + 0x26f4e0))" ( (pointer_expression "**(code **)(pcVar36 + 0x26f4e0)" * (pointer_expression "*(code **)(pcVar36 + 0x26f4e0)" * (cast_expression "(code **)(pcVar36 + 0x26f4e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x26f4e0)" ( (binary_expression "pcVar36 + 0x26f4e0" identifier + number_literal) ))))) )) (argument_list "(&uStack_1b8)" ( (pointer_expression "&uStack_1b8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar20 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar20 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar20 + 0x3c)" * (cast_expression "(undefined4 **)(iVar20 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iStack_194 = iStack_164;" (assignment_expression "iStack_194 = iStack_164" identifier = identifier) ;) (expression_statement "uStack_198 = uStack_168;" (assignment_expression "uStack_198 = uStack_168" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar20 + 0x40)) {\n    (**(code **)(pcStack_1c0 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_1b8);\n    puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n    iVar22 = iStack_164;\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_1b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_198);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar20 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar20 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar20 + 0x40)" * (cast_expression "(undefined4 **)(iVar20 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x40)" ( (binary_expression "iVar20 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_1c0 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_1b8);\n    puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n    iVar22 = iStack_164;\n  }" { (expression_statement "(**(code **)(pcStack_1c0 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_1b8);" (call_expression "(**(code **)(pcStack_1c0 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_1b8)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x5ce0)" * (cast_expression "(code **)(pcStack_1c0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x5ce0)" ( (binary_expression "pcStack_1c0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar20 + 0x38,puVar21,&uStack_1b8)" ( (binary_expression "iVar20 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_1b8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar20 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar20 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar20 + 0x3c)" * (cast_expression "(undefined4 **)(iVar20 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = iStack_164;" (assignment_expression "iVar22 = iStack_164" identifier = identifier) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_1b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_198);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_1b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_198);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_1b8;" (assignment_expression "puVar14 = &uStack_1b8" identifier = (pointer_expression "&uStack_1b8" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_198);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar22 = puVar6[1];" (assignment_expression "iVar22 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = iVar22;" (assignment_expression "puVar5[1] = iVar22" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_198)" ( (binary_expression "puVar14 != &uStack_198" identifier != (pointer_expression "&uStack_198" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar20 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar20 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar20 + 0x3c)" * (cast_expression "(undefined4 **)(iVar20 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar23 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3;" (assignment_expression "iVar23 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar20 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar20 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar20 + 0x38)" * (cast_expression "(int *)(iVar20 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x38)" ( (binary_expression "iVar20 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar20 + 0x20) << 1) {\n    *(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar20 + 0x10) = 0;\n    pcVar35[0x20] = (code)((byte)pcVar35[0x20] & 0xf7 | 8);\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar20 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar20 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar20 + 0x20) << 1" (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar20 + 0x10) = 0;\n    pcVar35[0x20] = (code)((byte)pcVar35[0x20] & 0xf7 | 8);\n    if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }\n    if ((iStack_1a0 != -4) && (iStack_1b4 != 0)) {\n      if (*(int *)(iStack_1b4 + 100) == 0) {\n        *(int *)(iStack_1b4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1b4 + 100) = *(int *)(iStack_1b4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;" (assignment_expression "*(int *)(iVar20 + 0x14) = iVar23 * 0x33333338" (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar23 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar20 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0x10)" * (cast_expression "(undefined4 *)(iVar20 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar35[0x20] = (code)((byte)pcVar35[0x20] & 0xf7 | 8);" (assignment_expression "pcVar35[0x20] = (code)((byte)pcVar35[0x20] & 0xf7 | 8)" (subscript_expression "pcVar35[0x20]" identifier [ number_literal ]) = (call_expression "(code)((byte)pcVar35[0x20] & 0xf7 | 8)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((byte)pcVar35[0x20] & 0xf7 | 8)" ( (binary_expression "(byte)pcVar35[0x20] & 0xf7 | 8" (binary_expression "(byte)pcVar35[0x20] & 0xf7" (cast_expression "(byte)pcVar35[0x20]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar35[0x20]" identifier [ number_literal ])) & number_literal) | number_literal) )))) ;) (if_statement "if (iStack_1a4 << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 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 *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;" (assignment_expression "*(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1" (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar20 + 0x30) + 1" (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 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) = iVar23 * -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) = iVar23 * -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) = iVar23 * -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) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_1b4 + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_1b4 + 0x60) = iVar23 * -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 "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -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 "pcVar36 = *(code **)(pcStack_1c0 + -0x7810);" (assignment_expression "pcVar36 = *(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 "pcVar28 = add_output_section_relative;" (assignment_expression "pcVar28 = add_output_section_relative" identifier = identifier) ;) (expression_statement "iVar23 = *(int *)(pcStack_1c0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar23 = *(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 "(*pcVar36)(iVar23,0x231,*(int *)(pcStack_1c0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar36)(iVar23,0x231,*(int *)(pcStack_1c0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(iVar23,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 = pcVar36 + 0x2765d4;" (assignment_expression "pcStack_220 = pcVar36 + 0x2765d4" identifier = (binary_expression "pcVar36 + 0x2765d4" 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 "puStack_1f0 = &uStack_1b8;" (assignment_expression "puStack_1f0 = &uStack_1b8" identifier = (pointer_expression "&uStack_1b8" & identifier)) ;) (expression_statement "iStack_1ec = iVar20;" (assignment_expression "iStack_1ec = iVar20" identifier = identifier) ;) (expression_statement "pcStack_1e8 = pcVar35;" (assignment_expression "pcStack_1e8 = pcVar35" identifier = identifier) ;) (expression_statement "pcStack_1e4 = pcVar28;" (assignment_expression "pcStack_1e4 = pcVar28" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar36 + 0x26f338))(&pcStack_218);" (call_expression "(**(code **)(pcVar36 + 0x26f338))(&pcStack_218)" (parenthesized_expression "(**(code **)(pcVar36 + 0x26f338))" ( (pointer_expression "**(code **)(pcVar36 + 0x26f338)" * (pointer_expression "*(code **)(pcVar36 + 0x26f338)" * (cast_expression "(code **)(pcVar36 + 0x26f338)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x26f338)" ( (binary_expression "pcVar36 + 0x26f338" identifier + number_literal) ))))) )) (argument_list "(&pcStack_218)" ( (pointer_expression "&pcStack_218" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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 "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 (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_220 + -0x5ce0))(iVar23 + 0x38,puVar21,&pcStack_218);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n    pcVar35 = pcStack_1bc;\n  }\n  else {\n    puVar30 = puVar21;\n    ppcVar15 = &pcStack_218;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar14 = puVar30;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar35 = ppcVar16[1];\n      pcVar28 = ppcVar16[2];\n      pcVar36 = ppcVar16[3];\n      *puVar14 = *ppcVar16;\n      puVar14[1] = pcVar35;\n      puVar14[2] = pcVar28;\n      puVar14[3] = pcVar36;\n      puVar30 = puVar14 + 4;\n    } while (ppcVar15 != &pcStack_1f8);\n    puVar21 = puVar21 + 10;\n    pcVar36 = ppcVar16[5];\n    puVar14[4] = *ppcVar15;\n    puVar14[5] = pcVar36;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar23 + 0x40))" ( (binary_expression "puVar21 == *(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_220 + -0x5ce0))(iVar23 + 0x38,puVar21,&pcStack_218);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n    pcVar35 = pcStack_1bc;\n  }" { (expression_statement "(**(code **)(pcStack_220 + -0x5ce0))(iVar23 + 0x38,puVar21,&pcStack_218);" (call_expression "(**(code **)(pcStack_220 + -0x5ce0))(iVar23 + 0x38,puVar21,&pcStack_218)" (parenthesized_expression "(**(code **)(pcStack_220 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_220 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_220 + -0x5ce0)" * (cast_expression "(code **)(pcStack_220 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_220 + -0x5ce0)" ( (binary_expression "pcStack_220 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x38,puVar21,&pcStack_218)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&pcStack_218" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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 "pcVar35 = pcStack_1bc;" (assignment_expression "pcVar35 = pcStack_1bc" identifier = identifier) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    ppcVar15 = &pcStack_218;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar14 = puVar30;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar35 = ppcVar16[1];\n      pcVar28 = ppcVar16[2];\n      pcVar36 = ppcVar16[3];\n      *puVar14 = *ppcVar16;\n      puVar14[1] = pcVar35;\n      puVar14[2] = pcVar28;\n      puVar14[3] = pcVar36;\n      puVar30 = puVar14 + 4;\n    } while (ppcVar15 != &pcStack_1f8);\n    puVar21 = puVar21 + 10;\n    pcVar36 = ppcVar16[5];\n    puVar14[4] = *ppcVar15;\n    puVar14[5] = pcVar36;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    ppcVar15 = &pcStack_218;\n    do {\n      ppcVar16 = ppcVar15;\n      puVar14 = puVar30;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar35 = ppcVar16[1];\n      pcVar28 = ppcVar16[2];\n      pcVar36 = ppcVar16[3];\n      *puVar14 = *ppcVar16;\n      puVar14[1] = pcVar35;\n      puVar14[2] = pcVar28;\n      puVar14[3] = pcVar36;\n      puVar30 = puVar14 + 4;\n    } while (ppcVar15 != &pcStack_1f8);\n    puVar21 = puVar21 + 10;\n    pcVar36 = ppcVar16[5];\n    puVar14[4] = *ppcVar15;\n    puVar14[5] = pcVar36;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" 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      puVar14 = puVar30;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar35 = ppcVar16[1];\n      pcVar28 = ppcVar16[2];\n      pcVar36 = ppcVar16[3];\n      *puVar14 = *ppcVar16;\n      puVar14[1] = pcVar35;\n      puVar14[2] = pcVar28;\n      puVar14[3] = pcVar36;\n      puVar30 = puVar14 + 4;\n    } while (ppcVar15 != &pcStack_1f8);" do (compound_statement "{\n      ppcVar16 = ppcVar15;\n      puVar14 = puVar30;\n      ppcVar15 = ppcVar16 + 4;\n      pcVar35 = ppcVar16[1];\n      pcVar28 = ppcVar16[2];\n      pcVar36 = ppcVar16[3];\n      *puVar14 = *ppcVar16;\n      puVar14[1] = pcVar35;\n      puVar14[2] = pcVar28;\n      puVar14[3] = pcVar36;\n      puVar30 = puVar14 + 4;\n    }" { (expression_statement "ppcVar16 = ppcVar15;" (assignment_expression "ppcVar16 = ppcVar15" identifier = identifier) ;) (expression_statement "puVar14 = puVar30;" (assignment_expression "puVar14 = puVar30" identifier = identifier) ;) (expression_statement "ppcVar15 = ppcVar16 + 4;" (assignment_expression "ppcVar15 = ppcVar16 + 4" identifier = (binary_expression "ppcVar16 + 4" identifier + number_literal)) ;) (expression_statement "pcVar35 = ppcVar16[1];" (assignment_expression "pcVar35 = ppcVar16[1]" identifier = (subscript_expression "ppcVar16[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar28 = ppcVar16[2];" (assignment_expression "pcVar28 = ppcVar16[2]" identifier = (subscript_expression "ppcVar16[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar36 = ppcVar16[3];" (assignment_expression "pcVar36 = ppcVar16[3]" identifier = (subscript_expression "ppcVar16[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar14 = *ppcVar16;" (assignment_expression "*puVar14 = *ppcVar16" (pointer_expression "*puVar14" * identifier) = (pointer_expression "*ppcVar16" * identifier)) ;) (expression_statement "puVar14[1] = pcVar35;" (assignment_expression "puVar14[1] = pcVar35" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[2] = pcVar28;" (assignment_expression "puVar14[2] = pcVar28" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[3] = pcVar36;" (assignment_expression "puVar14[3] = pcVar36" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar14 + 4;" (assignment_expression "puVar30 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppcVar15 != &pcStack_1f8)" ( (binary_expression "ppcVar15 != &pcStack_1f8" identifier != (pointer_expression "&pcStack_1f8" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "pcVar36 = ppcVar16[5];" (assignment_expression "pcVar36 = ppcVar16[5]" identifier = (subscript_expression "ppcVar16[5]" identifier [ number_literal ])) ;) (expression_statement "puVar14[4] = *ppcVar15;" (assignment_expression "puVar14[4] = *ppcVar15" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = (pointer_expression "*ppcVar15" * identifier)) ;) (expression_statement "puVar14[5] = pcVar36;" (assignment_expression "puVar14[5] = pcVar36" (subscript_expression "puVar14[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar23 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar23 + 0x3c) = puVar21" (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 "iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;" (assignment_expression "iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38)" (cast_expression "(int)puVar21" ( (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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_204 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_200 != -4) && (iStack_214 != 0)) {\n      if (*(int *)(iStack_214 + 100) == 0) {\n        *(int *)(iStack_214 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_214 + 100) = *(int *)(iStack_214 + 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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_204 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_200 != -4) && (iStack_214 != 0)) {\n      if (*(int *)(iStack_214 + 100) == 0) {\n        *(int *)(iStack_214 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_214 + 100) = *(int *)(iStack_214 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;" (assignment_expression "*(int *)(iVar23 + 0x14) = iVar20 * 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 "iVar20 * 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 *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_204 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 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 *)(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_200 != -4) && (iStack_214 != 0)) {\n      if (*(int *)(iStack_214 + 100) == 0) {\n        *(int *)(iStack_214 + 0x60) = iVar20 * -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) = iVar20 * -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) = iVar20 * -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) = iVar20 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_214 + 0x60) = iVar20 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_214 + 0x60) = iVar20 * -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 "iVar20 * -0x33333333 + -1" (binary_expression "iVar20 * -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 "pcVar36 = *(code **)(pcStack_220 + -0x7810);" (assignment_expression "pcVar36 = *(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 "pcVar28 = add_output_section_generic;" (assignment_expression "pcVar28 = add_output_section_generic" identifier = identifier) ;) (expression_statement "iVar20 = *(int *)(pcStack_220 + -0x7fc4) + 0x3574;" (assignment_expression "iVar20 = *(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 "(*pcVar36)(iVar20,0x231,*(int *)(pcStack_220 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar36)(iVar20,0x231,*(int *)(pcStack_220 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(iVar20,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 = pcVar36 + 0x276418;" (assignment_expression "pcStack_288 = pcVar36 + 0x276418" identifier = (binary_expression "pcVar36 + 0x276418" 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 = iVar23;" (assignment_expression "iStack_254 = iVar23" identifier = identifier) ;) (expression_statement "iStack_250 = iVar22;" (assignment_expression "iStack_250 = iVar22" identifier = identifier) ;) (expression_statement "pcStack_24c = pcVar28;" (assignment_expression "pcStack_24c = pcVar28" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar36 + 0x26f17c))(&uStack_280);" (call_expression "(**(code **)(pcVar36 + 0x26f17c))(&uStack_280)" (parenthesized_expression "(**(code **)(pcVar36 + 0x26f17c))" ( (pointer_expression "**(code **)(pcVar36 + 0x26f17c)" * (pointer_expression "*(code **)(pcVar36 + 0x26f17c)" * (cast_expression "(code **)(pcVar36 + 0x26f17c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x26f17c)" ( (binary_expression "pcVar36 + 0x26f17c" identifier + number_literal) ))))) )) (argument_list "(&uStack_280)" ( (pointer_expression "&uStack_280" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar20 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar20 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar20 + 0x3c)" * (cast_expression "(undefined4 **)(iVar20 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 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 (puVar21 == *(undefined4 **)(iVar20 + 0x40)) {\n    (**(code **)(pcStack_288 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_280);\n    puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n    iVar22 = iStack_224;\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_280;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_260);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar20 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar20 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar20 + 0x40)" * (cast_expression "(undefined4 **)(iVar20 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x40)" ( (binary_expression "iVar20 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_288 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_280);\n    puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n    iVar22 = iStack_224;\n  }" { (expression_statement "(**(code **)(pcStack_288 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_280);" (call_expression "(**(code **)(pcStack_288 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_280)" (parenthesized_expression "(**(code **)(pcStack_288 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_288 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_288 + -0x5ce0)" * (cast_expression "(code **)(pcStack_288 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_288 + -0x5ce0)" ( (binary_expression "pcStack_288 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar20 + 0x38,puVar21,&uStack_280)" ( (binary_expression "iVar20 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_280" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar20 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar20 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar20 + 0x3c)" * (cast_expression "(undefined4 **)(iVar20 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = iStack_224;" (assignment_expression "iVar22 = iStack_224" identifier = identifier) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_280;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_260);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_280;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_260);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_280;" (assignment_expression "puVar14 = &uStack_280" identifier = (pointer_expression "&uStack_280" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_260);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar22 = puVar6[1];" (assignment_expression "iVar22 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = iVar22;" (assignment_expression "puVar5[1] = iVar22" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_260)" ( (binary_expression "puVar14 != &uStack_260" identifier != (pointer_expression "&uStack_260" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar20 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar20 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar20 + 0x3c)" * (cast_expression "(undefined4 **)(iVar20 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar23 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3;" (assignment_expression "iVar23 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar20 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar20 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar20 + 0x38)" * (cast_expression "(int *)(iVar20 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x38)" ( (binary_expression "iVar20 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar20 + 0x20) << 1) {\n    *(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar20 + 0x10) = 0;\n    pcVar35[0x20] = (code)((byte)pcVar35[0x20] & 0xf7 | 8);\n    if (iStack_26c << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }\n    if ((iStack_268 != -4) && (iStack_27c != 0)) {\n      if (*(int *)(iStack_27c + 100) == 0) {\n        *(int *)(iStack_27c + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_27c + 100) = *(int *)(iStack_27c + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar20 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar20 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar20 + 0x20) << 1" (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar20 + 0x10) = 0;\n    pcVar35[0x20] = (code)((byte)pcVar35[0x20] & 0xf7 | 8);\n    if (iStack_26c << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }\n    if ((iStack_268 != -4) && (iStack_27c != 0)) {\n      if (*(int *)(iStack_27c + 100) == 0) {\n        *(int *)(iStack_27c + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_27c + 100) = *(int *)(iStack_27c + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;" (assignment_expression "*(int *)(iVar20 + 0x14) = iVar23 * 0x33333338" (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar23 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar20 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0x10)" * (cast_expression "(undefined4 *)(iVar20 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar35[0x20] = (code)((byte)pcVar35[0x20] & 0xf7 | 8);" (assignment_expression "pcVar35[0x20] = (code)((byte)pcVar35[0x20] & 0xf7 | 8)" (subscript_expression "pcVar35[0x20]" identifier [ number_literal ]) = (call_expression "(code)((byte)pcVar35[0x20] & 0xf7 | 8)" (parenthesized_expression "(code)" ( identifier )) (argument_list "((byte)pcVar35[0x20] & 0xf7 | 8)" ( (binary_expression "(byte)pcVar35[0x20] & 0xf7 | 8" (binary_expression "(byte)pcVar35[0x20] & 0xf7" (cast_expression "(byte)pcVar35[0x20]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar35[0x20]" identifier [ number_literal ])) & number_literal) | number_literal) )))) ;) (if_statement "if (iStack_26c << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 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 *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;" (assignment_expression "*(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1" (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar20 + 0x30) + 1" (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 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) = iVar23 * -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) = iVar23 * -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) = iVar23 * -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) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_27c + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_27c + 0x60) = iVar23 * -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 "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -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 "pcVar36 = *(code **)(pcStack_288 + -0x7810);" (assignment_expression "pcVar36 = *(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 "pcVar28 = add_output_section;" (assignment_expression "pcVar28 = add_output_section" identifier = identifier) ;) (expression_statement "iVar23 = *(int *)(pcStack_288 + -0x7fc4) + 0x3574;" (assignment_expression "iVar23 = *(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 "(*pcVar36)(iVar23,0x231,*(int *)(pcStack_288 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar36)(iVar23,0x231,*(int *)(pcStack_288 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(iVar23,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 = pcVar36 + 0x276260;" (assignment_expression "pcStack_2f0 = pcVar36 + 0x276260" identifier = (binary_expression "pcVar36 + 0x276260" 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 = iVar20;" (assignment_expression "iStack_2bc = iVar20" identifier = identifier) ;) (expression_statement "pcStack_2b8 = pcVar35;" (assignment_expression "pcStack_2b8 = pcVar35" identifier = identifier) ;) (expression_statement "pcStack_2b4 = pcVar28;" (assignment_expression "pcStack_2b4 = pcVar28" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar36 + 0x26efc4))(&uStack_2e8);" (call_expression "(**(code **)(pcVar36 + 0x26efc4))(&uStack_2e8)" (parenthesized_expression "(**(code **)(pcVar36 + 0x26efc4))" ( (pointer_expression "**(code **)(pcVar36 + 0x26efc4)" * (pointer_expression "*(code **)(pcVar36 + 0x26efc4)" * (cast_expression "(code **)(pcVar36 + 0x26efc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x26efc4)" ( (binary_expression "pcVar36 + 0x26efc4" identifier + number_literal) ))))) )) (argument_list "(&uStack_2e8)" ( (pointer_expression "&uStack_2e8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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 "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 (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_2f0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_2e8);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n    iVar20 = iStack_28c;\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_2e8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_2c8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar23 + 0x40))" ( (binary_expression "puVar21 == *(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_2f0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_2e8);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n    iVar20 = iStack_28c;\n  }" { (expression_statement "(**(code **)(pcStack_2f0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_2e8);" (call_expression "(**(code **)(pcStack_2f0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_2e8)" (parenthesized_expression "(**(code **)(pcStack_2f0 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_2f0 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_2f0 + -0x5ce0)" * (cast_expression "(code **)(pcStack_2f0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2f0 + -0x5ce0)" ( (binary_expression "pcStack_2f0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x38,puVar21,&uStack_2e8)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_2e8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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 "iVar20 = iStack_28c;" (assignment_expression "iVar20 = iStack_28c" identifier = identifier) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_2e8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_2c8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_2e8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_2c8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_2e8;" (assignment_expression "puVar14 = &uStack_2e8" identifier = (pointer_expression "&uStack_2e8" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_2c8);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar20 = puVar6[1];" (assignment_expression "iVar20 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = iVar20;" (assignment_expression "puVar5[1] = iVar20" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_2c8)" ( (binary_expression "puVar14 != &uStack_2c8" identifier != (pointer_expression "&uStack_2c8" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar23 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar23 + 0x3c) = puVar21" (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 "iVar27 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;" (assignment_expression "iVar27 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38)" (cast_expression "(int)puVar21" ( (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) = iVar27 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_2d4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_2d0 != -4) && (iStack_2e4 != 0)) {\n      if (*(int *)(iStack_2e4 + 100) == 0) {\n        *(int *)(iStack_2e4 + 0x60) = iVar27 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_2e4 + 100) = *(int *)(iStack_2e4 + 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) = iVar27 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_2d4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_2d0 != -4) && (iStack_2e4 != 0)) {\n      if (*(int *)(iStack_2e4 + 100) == 0) {\n        *(int *)(iStack_2e4 + 0x60) = iVar27 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_2e4 + 100) = *(int *)(iStack_2e4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar23 + 0x14) = iVar27 * 0x33333338;" (assignment_expression "*(int *)(iVar23 + 0x14) = iVar27 * 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 "iVar27 * 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 *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_2d4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 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 *)(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_2d0 != -4) && (iStack_2e4 != 0)) {\n      if (*(int *)(iStack_2e4 + 100) == 0) {\n        *(int *)(iStack_2e4 + 0x60) = iVar27 * -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) = iVar27 * -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) = iVar27 * -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) = iVar27 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_2e4 + 0x60) = iVar27 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_2e4 + 0x60) = iVar27 * -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 "iVar27 * -0x33333333 + -1" (binary_expression "iVar27 * -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 "pcVar35 = *(code **)(pcStack_2f0 + -0x7810);" (assignment_expression "pcVar35 = *(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 "pcVar36 = add_global;" (assignment_expression "pcVar36 = add_global" identifier = identifier) ;) (expression_statement "iVar27 = *(int *)(pcStack_2f0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar27 = *(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 "(*pcVar35)(iVar27,0x231,*(int *)(pcStack_2f0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar27,0x231,*(int *)(pcStack_2f0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar27,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 = pcVar35 + 0x2760a8;" (assignment_expression "pcStack_358 = pcVar35 + 0x2760a8" identifier = (binary_expression "pcVar35 + 0x2760a8" 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 = iVar23;" (assignment_expression "iStack_324 = iVar23" identifier = identifier) ;) (expression_statement "iStack_320 = iVar22;" (assignment_expression "iStack_320 = iVar22" identifier = identifier) ;) (expression_statement "pcStack_31c = pcVar36;" (assignment_expression "pcStack_31c = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26ead0))(&uStack_350);" (call_expression "(**(code **)(pcVar35 + 0x26ead0))(&uStack_350)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26ead0))" ( (pointer_expression "**(code **)(pcVar35 + 0x26ead0)" * (pointer_expression "*(code **)(pcVar35 + 0x26ead0)" * (cast_expression "(code **)(pcVar35 + 0x26ead0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26ead0)" ( (binary_expression "pcVar35 + 0x26ead0" identifier + number_literal) ))))) )) (argument_list "(&uStack_350)" ( (pointer_expression "&uStack_350" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar27 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar27 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 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 (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {\n    iVar22 = iStack_2fc;\n    (**(code **)(pcStack_358 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_350);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_350;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_330);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar27 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar27 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar27 + 0x40)" * (cast_expression "(undefined4 **)(iVar27 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x40)" ( (binary_expression "iVar27 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar22 = iStack_2fc;\n    (**(code **)(pcStack_358 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_350);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }" { (expression_statement "iVar22 = iStack_2fc;" (assignment_expression "iVar22 = iStack_2fc" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_358 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_350);" (call_expression "(**(code **)(pcStack_358 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_350)" (parenthesized_expression "(**(code **)(pcStack_358 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_358 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_358 + -0x5ce0)" * (cast_expression "(code **)(pcStack_358 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_358 + -0x5ce0)" ( (binary_expression "pcStack_358 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar27 + 0x38,puVar21,&uStack_350)" ( (binary_expression "iVar27 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_350" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar27 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar27 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_350;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_330);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_350;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_330);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_350;" (assignment_expression "puVar14 = &uStack_350" identifier = (pointer_expression "&uStack_350" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_330);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar22 = puVar6[1];" (assignment_expression "iVar22 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = iVar22;" (assignment_expression "puVar5[1] = iVar22" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_330)" ( (binary_expression "puVar14 != &uStack_330" identifier != (pointer_expression "&uStack_330" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar27 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar27 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar23 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;" (assignment_expression "iVar23 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar27 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar27 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar27 + 0x38)" * (cast_expression "(int *)(iVar27 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x38)" ( (binary_expression "iVar27 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar27 + 0x20) << 1) {\n    *(int *)(iVar27 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_33c << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_338 != -4) && (iStack_34c != 0)) {\n      if (*(int *)(iStack_34c + 100) == 0) {\n        *(int *)(iStack_34c + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_34c + 100) = *(int *)(iStack_34c + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar27 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar27 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar27 + 0x20) << 1" (pointer_expression "*(int *)(iVar27 + 0x20)" * (cast_expression "(int *)(iVar27 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x20)" ( (binary_expression "iVar27 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar27 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_33c << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_338 != -4) && (iStack_34c != 0)) {\n      if (*(int *)(iStack_34c + 100) == 0) {\n        *(int *)(iStack_34c + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_34c + 100) = *(int *)(iStack_34c + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar27 + 0x14) = iVar23 * 0x33333338;" (assignment_expression "*(int *)(iVar27 + 0x14) = iVar23 * 0x33333338" (pointer_expression "*(int *)(iVar27 + 0x14)" * (cast_expression "(int *)(iVar27 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x14)" ( (binary_expression "iVar27 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar23 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar27 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar27 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar27 + 0x10)" * (cast_expression "(undefined4 *)(iVar27 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x10)" ( (binary_expression "iVar27 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar20 + 0x20)" * (cast_expression "(byte *)(iVar20 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar20 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar20 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar20 + 0x20)" * (cast_expression "(byte *)(iVar20 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_33c << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 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 *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;" (assignment_expression "*(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1" (pointer_expression "*(int *)(iVar27 + 0x30)" * (cast_expression "(int *)(iVar27 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x30)" ( (binary_expression "iVar27 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar27 + 0x30) + 1" (pointer_expression "*(int *)(iVar27 + 0x30)" * (cast_expression "(int *)(iVar27 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x30)" ( (binary_expression "iVar27 + 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) = iVar23 * -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) = iVar23 * -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) = iVar23 * -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) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_34c + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_34c + 0x60) = iVar23 * -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 "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -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 "pcVar35 = *(code **)(pcStack_358 + -0x7810);" (assignment_expression "pcVar35 = *(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 "pcVar36 = add_symbolless_global_addend;" (assignment_expression "pcVar36 = add_symbolless_global_addend" identifier = identifier) ;) (expression_statement "iVar23 = *(int *)(pcStack_358 + -0x7fc4) + 0x3574;" (assignment_expression "iVar23 = *(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 "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_358 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_358 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar23,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 = pcVar35 + 0x275ef4;" (assignment_expression "pcStack_3c0 = pcVar35 + 0x275ef4" identifier = (binary_expression "pcVar35 + 0x275ef4" identifier + number_literal)) ;) (expression_statement "iStack_3cc = 1;" (assignment_expression "iStack_3cc = 1" identifier = number_literal) ;) (expression_statement "uStack_3c8 = 0;" (assignment_expression "uStack_3c8 = 0" identifier = number_literal) ;) (expression_statement "uStack_3d0 = 0;" (assignment_expression "uStack_3d0 = 0" identifier = number_literal) ;) (expression_statement "uStack_3d4 = uStack_36c;" (assignment_expression "uStack_3d4 = uStack_36c" identifier = identifier) ;) (expression_statement "uStack_3d8 = uStack_370;" (assignment_expression "uStack_3d8 = uStack_370" identifier = identifier) ;) (expression_statement "puStack_390 = &uStack_350;" (assignment_expression "puStack_390 = &uStack_350" identifier = (pointer_expression "&uStack_350" & identifier)) ;) (expression_statement "iStack_38c = iVar27;" (assignment_expression "iStack_38c = iVar27" identifier = identifier) ;) (expression_statement "iStack_388 = iVar20;" (assignment_expression "iStack_388 = iVar20" identifier = identifier) ;) (expression_statement "pcStack_384 = pcVar36;" (assignment_expression "pcStack_384 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e91c))(&uStack_3b8);" (call_expression "(**(code **)(pcVar35 + 0x26e91c))(&uStack_3b8)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26e91c))" ( (pointer_expression "**(code **)(pcVar35 + 0x26e91c)" * (pointer_expression "*(code **)(pcVar35 + 0x26e91c)" * (cast_expression "(code **)(pcVar35 + 0x26e91c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26e91c)" ( (binary_expression "pcVar35 + 0x26e91c" identifier + number_literal) ))))) )) (argument_list "(&uStack_3b8)" ( (pointer_expression "&uStack_3b8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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 "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 (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    iVar20 = iStack_364;\n    (**(code **)(pcStack_3c0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_3b8);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_3b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_398);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar23 + 0x40))" ( (binary_expression "puVar21 == *(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    iVar20 = iStack_364;\n    (**(code **)(pcStack_3c0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_3b8);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }" { (expression_statement "iVar20 = iStack_364;" (assignment_expression "iVar20 = iStack_364" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_3c0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_3b8);" (call_expression "(**(code **)(pcStack_3c0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_3b8)" (parenthesized_expression "(**(code **)(pcStack_3c0 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_3c0 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_3c0 + -0x5ce0)" * (cast_expression "(code **)(pcStack_3c0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3c0 + -0x5ce0)" ( (binary_expression "pcStack_3c0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x38,puVar21,&uStack_3b8)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_3b8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_3b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_398);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_3b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_398);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_3b8;" (assignment_expression "puVar14 = &uStack_3b8" identifier = (pointer_expression "&uStack_3b8" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_398);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar20 = puVar6[1];" (assignment_expression "iVar20 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = iVar20;" (assignment_expression "puVar5[1] = iVar20" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_398)" ( (binary_expression "puVar14 != &uStack_398" identifier != (pointer_expression "&uStack_398" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar23 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar23 + 0x3c) = puVar21" (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 "iVar27 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;" (assignment_expression "iVar27 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38)" (cast_expression "(int)puVar21" ( (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) = iVar27 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_3a4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_3a0 != -4) && (iStack_3b4 != 0)) {\n      if (*(int *)(iStack_3b4 + 100) == 0) {\n        *(int *)(iStack_3b4 + 0x60) = iVar27 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_3b4 + 100) = *(int *)(iStack_3b4 + 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) = iVar27 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_3a4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_3a0 != -4) && (iStack_3b4 != 0)) {\n      if (*(int *)(iStack_3b4 + 100) == 0) {\n        *(int *)(iStack_3b4 + 0x60) = iVar27 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_3b4 + 100) = *(int *)(iStack_3b4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar23 + 0x14) = iVar27 * 0x33333338;" (assignment_expression "*(int *)(iVar23 + 0x14) = iVar27 * 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 "iVar27 * 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 *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_3a4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 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 *)(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_3a0 != -4) && (iStack_3b4 != 0)) {\n      if (*(int *)(iStack_3b4 + 100) == 0) {\n        *(int *)(iStack_3b4 + 0x60) = iVar27 * -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) = iVar27 * -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) = iVar27 * -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) = iVar27 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_3b4 + 0x60) = iVar27 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_3b4 + 0x60) = iVar27 * -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 "iVar27 * -0x33333333 + -1" (binary_expression "iVar27 * -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 "pcVar35 = *(code **)(pcStack_3c0 + -0x7810);" (assignment_expression "pcVar35 = *(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 "pcVar36 = add_global_relative;" (assignment_expression "pcVar36 = add_global_relative" identifier = identifier) ;) (expression_statement "iVar27 = *(int *)(pcStack_3c0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar27 = *(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 "(*pcVar35)(iVar27,0x231,*(int *)(pcStack_3c0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar27,0x231,*(int *)(pcStack_3c0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar27,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 = pcVar35 + 0x275d3c;" (assignment_expression "pcStack_428 = pcVar35 + 0x275d3c" identifier = (binary_expression "pcVar35 + 0x275d3c" identifier + number_literal)) ;) (expression_statement "uStack_430 = uStack_3c8 & 0xff;" (assignment_expression "uStack_430 = uStack_3c8 & 0xff" identifier = (binary_expression "uStack_3c8 & 0xff" identifier & number_literal)) ;) (expression_statement "uStack_434 = 1;" (assignment_expression "uStack_434 = 1" identifier = number_literal) ;) (expression_statement "uStack_438 = 1;" (assignment_expression "uStack_438 = 1" identifier = number_literal) ;) (expression_statement "uStack_440 = uStack_3d8;" (assignment_expression "uStack_440 = uStack_3d8" identifier = identifier) ;) (expression_statement "uStack_43c = uStack_3d4;" (assignment_expression "uStack_43c = uStack_3d4" identifier = identifier) ;) (expression_statement "puStack_3f8 = &uStack_3b8;" (assignment_expression "puStack_3f8 = &uStack_3b8" identifier = (pointer_expression "&uStack_3b8" & identifier)) ;) (expression_statement "iStack_3f4 = iVar23;" (assignment_expression "iStack_3f4 = iVar23" identifier = identifier) ;) (expression_statement "iStack_3f0 = iVar22;" (assignment_expression "iStack_3f0 = iVar22" identifier = identifier) ;) (expression_statement "pcStack_3ec = pcVar36;" (assignment_expression "pcStack_3ec = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e764))(&uStack_420);" (call_expression "(**(code **)(pcVar35 + 0x26e764))(&uStack_420)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26e764))" ( (pointer_expression "**(code **)(pcVar35 + 0x26e764)" * (pointer_expression "*(code **)(pcVar35 + 0x26e764)" * (cast_expression "(code **)(pcVar35 + 0x26e764)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26e764)" ( (binary_expression "pcVar35 + 0x26e764" identifier + number_literal) ))))) )) (argument_list "(&uStack_420)" ( (pointer_expression "&uStack_420" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar27 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar27 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 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 (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {\n    iVar22 = iStack_3cc;\n    (**(code **)(pcStack_428 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_420);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_420;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_400);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar27 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar27 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar27 + 0x40)" * (cast_expression "(undefined4 **)(iVar27 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x40)" ( (binary_expression "iVar27 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar22 = iStack_3cc;\n    (**(code **)(pcStack_428 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_420);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }" { (expression_statement "iVar22 = iStack_3cc;" (assignment_expression "iVar22 = iStack_3cc" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_428 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_420);" (call_expression "(**(code **)(pcStack_428 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_420)" (parenthesized_expression "(**(code **)(pcStack_428 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_428 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_428 + -0x5ce0)" * (cast_expression "(code **)(pcStack_428 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_428 + -0x5ce0)" ( (binary_expression "pcStack_428 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar27 + 0x38,puVar21,&uStack_420)" ( (binary_expression "iVar27 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_420" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar27 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar27 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_420;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_400);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_420;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_400);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_420;" (assignment_expression "puVar14 = &uStack_420" identifier = (pointer_expression "&uStack_420" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_400);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar22 = puVar6[1];" (assignment_expression "iVar22 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = iVar22;" (assignment_expression "puVar5[1] = iVar22" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_400)" ( (binary_expression "puVar14 != &uStack_400" identifier != (pointer_expression "&uStack_400" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar27 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar27 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar23 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;" (assignment_expression "iVar23 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar27 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar27 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar27 + 0x38)" * (cast_expression "(int *)(iVar27 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x38)" ( (binary_expression "iVar27 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar27 + 0x20) << 1) {\n    *(int *)(iVar27 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_40c << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_408 != -4) && (iStack_41c != 0)) {\n      if (*(int *)(iStack_41c + 100) == 0) {\n        *(int *)(iStack_41c + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_41c + 100) = *(int *)(iStack_41c + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar27 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar27 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar27 + 0x20) << 1" (pointer_expression "*(int *)(iVar27 + 0x20)" * (cast_expression "(int *)(iVar27 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x20)" ( (binary_expression "iVar27 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar27 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_40c << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_408 != -4) && (iStack_41c != 0)) {\n      if (*(int *)(iStack_41c + 100) == 0) {\n        *(int *)(iStack_41c + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_41c + 100) = *(int *)(iStack_41c + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar27 + 0x14) = iVar23 * 0x33333338;" (assignment_expression "*(int *)(iVar27 + 0x14) = iVar23 * 0x33333338" (pointer_expression "*(int *)(iVar27 + 0x14)" * (cast_expression "(int *)(iVar27 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x14)" ( (binary_expression "iVar27 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar23 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar27 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar27 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar27 + 0x10)" * (cast_expression "(undefined4 *)(iVar27 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x10)" ( (binary_expression "iVar27 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar20 + 0x20)" * (cast_expression "(byte *)(iVar20 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar20 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar20 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar20 + 0x20)" * (cast_expression "(byte *)(iVar20 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_40c << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 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 *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;" (assignment_expression "*(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1" (pointer_expression "*(int *)(iVar27 + 0x30)" * (cast_expression "(int *)(iVar27 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x30)" ( (binary_expression "iVar27 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar27 + 0x30) + 1" (pointer_expression "*(int *)(iVar27 + 0x30)" * (cast_expression "(int *)(iVar27 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x30)" ( (binary_expression "iVar27 + 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) = iVar23 * -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) = iVar23 * -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) = iVar23 * -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) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_41c + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_41c + 0x60) = iVar23 * -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 "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -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 "pcVar35 = *(code **)(pcStack_428 + -0x7810);" (assignment_expression "pcVar35 = *(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 "pcVar36 = add_global;" (assignment_expression "pcVar36 = add_global" identifier = identifier) ;) (expression_statement "iVar23 = *(int *)(pcStack_428 + -0x7fc4) + 0x3574;" (assignment_expression "iVar23 = *(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 "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_428 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_428 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar23,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 = pcVar35 + 0x275b80;" (assignment_expression "pcStack_490 = pcVar35 + 0x275b80" identifier = (binary_expression "pcVar35 + 0x275b80" 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 = iVar27;" (assignment_expression "iStack_45c = iVar27" identifier = identifier) ;) (expression_statement "iStack_458 = iVar20;" (assignment_expression "iStack_458 = iVar20" identifier = identifier) ;) (expression_statement "pcStack_454 = pcVar36;" (assignment_expression "pcStack_454 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e7d0))(&uStack_488);" (call_expression "(**(code **)(pcVar35 + 0x26e7d0))(&uStack_488)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26e7d0))" ( (pointer_expression "**(code **)(pcVar35 + 0x26e7d0)" * (pointer_expression "*(code **)(pcVar35 + 0x26e7d0)" * (cast_expression "(code **)(pcVar35 + 0x26e7d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26e7d0)" ( (binary_expression "pcVar35 + 0x26e7d0" identifier + number_literal) ))))) )) (argument_list "(&uStack_488)" ( (pointer_expression "&uStack_488" & identifier) ))) ;) (expression_statement "puVar24 = *(uint **)(iVar23 + 0x3c);" (assignment_expression "puVar24 = *(uint **)(iVar23 + 0x3c)" identifier = (pointer_expression "*(uint **)(iVar23 + 0x3c)" * (cast_expression "(uint **)(iVar23 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x3c)" ( (binary_expression "iVar23 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_464 = uStack_42c;" (assignment_expression "uStack_464 = uStack_42c" identifier = identifier) ;) (expression_statement "uStack_468 = uStack_430;" (assignment_expression "uStack_468 = uStack_430" identifier = identifier) ;) (if_statement "if (puVar24 == *(uint **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_490 + -0x5ce0))(iVar23 + 0x38,puVar24,&uStack_488);\n    puVar24 = *(uint **)(iVar23 + 0x3c);\n    uVar33 = uStack_42c;\n  }\n  else {\n    puVar1 = puVar24;\n    puVar18 = &uStack_488;\n    do {\n      puVar17 = puVar18;\n      puVar4 = puVar1;\n      puVar18 = puVar17 + 4;\n      uVar33 = puVar17[1];\n      uVar29 = puVar17[2];\n      uVar9 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar33;\n      puVar4[2] = uVar29;\n      puVar4[3] = uVar9;\n      puVar1 = puVar4 + 4;\n    } while (puVar18 != &uStack_468);\n    puVar24 = puVar24 + 10;\n    uVar9 = puVar17[5];\n    puVar4[4] = *puVar18;\n    puVar4[5] = uVar9;\n    *(uint **)(iVar23 + 0x3c) = puVar24;\n  }" if (parenthesized_expression "(puVar24 == *(uint **)(iVar23 + 0x40))" ( (binary_expression "puVar24 == *(uint **)(iVar23 + 0x40)" identifier == (pointer_expression "*(uint **)(iVar23 + 0x40)" * (cast_expression "(uint **)(iVar23 + 0x40)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x40)" ( (binary_expression "iVar23 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_490 + -0x5ce0))(iVar23 + 0x38,puVar24,&uStack_488);\n    puVar24 = *(uint **)(iVar23 + 0x3c);\n    uVar33 = uStack_42c;\n  }" { (expression_statement "(**(code **)(pcStack_490 + -0x5ce0))(iVar23 + 0x38,puVar24,&uStack_488);" (call_expression "(**(code **)(pcStack_490 + -0x5ce0))(iVar23 + 0x38,puVar24,&uStack_488)" (parenthesized_expression "(**(code **)(pcStack_490 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_490 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_490 + -0x5ce0)" * (cast_expression "(code **)(pcStack_490 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_490 + -0x5ce0)" ( (binary_expression "pcStack_490 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x38,puVar24,&uStack_488)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_488" & identifier) ))) ;) (expression_statement "puVar24 = *(uint **)(iVar23 + 0x3c);" (assignment_expression "puVar24 = *(uint **)(iVar23 + 0x3c)" identifier = (pointer_expression "*(uint **)(iVar23 + 0x3c)" * (cast_expression "(uint **)(iVar23 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x3c)" ( (binary_expression "iVar23 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uVar33 = uStack_42c;" (assignment_expression "uVar33 = uStack_42c" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar24;\n    puVar18 = &uStack_488;\n    do {\n      puVar17 = puVar18;\n      puVar4 = puVar1;\n      puVar18 = puVar17 + 4;\n      uVar33 = puVar17[1];\n      uVar29 = puVar17[2];\n      uVar9 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar33;\n      puVar4[2] = uVar29;\n      puVar4[3] = uVar9;\n      puVar1 = puVar4 + 4;\n    } while (puVar18 != &uStack_468);\n    puVar24 = puVar24 + 10;\n    uVar9 = puVar17[5];\n    puVar4[4] = *puVar18;\n    puVar4[5] = uVar9;\n    *(uint **)(iVar23 + 0x3c) = puVar24;\n  }" else (compound_statement "{\n    puVar1 = puVar24;\n    puVar18 = &uStack_488;\n    do {\n      puVar17 = puVar18;\n      puVar4 = puVar1;\n      puVar18 = puVar17 + 4;\n      uVar33 = puVar17[1];\n      uVar29 = puVar17[2];\n      uVar9 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar33;\n      puVar4[2] = uVar29;\n      puVar4[3] = uVar9;\n      puVar1 = puVar4 + 4;\n    } while (puVar18 != &uStack_468);\n    puVar24 = puVar24 + 10;\n    uVar9 = puVar17[5];\n    puVar4[4] = *puVar18;\n    puVar4[5] = uVar9;\n    *(uint **)(iVar23 + 0x3c) = puVar24;\n  }" { (expression_statement "puVar1 = puVar24;" (assignment_expression "puVar1 = puVar24" identifier = identifier) ;) (expression_statement "puVar18 = &uStack_488;" (assignment_expression "puVar18 = &uStack_488" identifier = (pointer_expression "&uStack_488" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar18;\n      puVar4 = puVar1;\n      puVar18 = puVar17 + 4;\n      uVar33 = puVar17[1];\n      uVar29 = puVar17[2];\n      uVar9 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar33;\n      puVar4[2] = uVar29;\n      puVar4[3] = uVar9;\n      puVar1 = puVar4 + 4;\n    } while (puVar18 != &uStack_468);" do (compound_statement "{\n      puVar17 = puVar18;\n      puVar4 = puVar1;\n      puVar18 = puVar17 + 4;\n      uVar33 = puVar17[1];\n      uVar29 = puVar17[2];\n      uVar9 = puVar17[3];\n      *puVar4 = *puVar17;\n      puVar4[1] = uVar33;\n      puVar4[2] = uVar29;\n      puVar4[3] = uVar9;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar17 = puVar18;" (assignment_expression "puVar17 = puVar18" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "puVar18 = puVar17 + 4;" (assignment_expression "puVar18 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) (expression_statement "uVar33 = puVar17[1];" (assignment_expression "uVar33 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar29 = puVar17[2];" (assignment_expression "uVar29 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar17[3];" (assignment_expression "uVar9 = 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] = uVar33;" (assignment_expression "puVar4[1] = uVar33" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar29;" (assignment_expression "puVar4[2] = uVar29" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar9;" (assignment_expression "puVar4[3] = uVar9" (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 "(puVar18 != &uStack_468)" ( (binary_expression "puVar18 != &uStack_468" identifier != (pointer_expression "&uStack_468" & identifier)) )) ;) (expression_statement "puVar24 = puVar24 + 10;" (assignment_expression "puVar24 = puVar24 + 10" identifier = (binary_expression "puVar24 + 10" identifier + number_literal)) ;) (expression_statement "uVar9 = puVar17[5];" (assignment_expression "uVar9 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *puVar18;" (assignment_expression "puVar4[4] = *puVar18" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "puVar4[5] = uVar9;" (assignment_expression "puVar4[5] = uVar9" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(uint **)(iVar23 + 0x3c) = puVar24;" (assignment_expression "*(uint **)(iVar23 + 0x3c) = puVar24" (pointer_expression "*(uint **)(iVar23 + 0x3c)" * (cast_expression "(uint **)(iVar23 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x3c)" ( (binary_expression "iVar23 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar20 = (int)puVar24 - *(int *)(iVar23 + 0x38) >> 3;" (assignment_expression "iVar20 = (int)puVar24 - *(int *)(iVar23 + 0x38) >> 3" identifier = (binary_expression "(int)puVar24 - *(int *)(iVar23 + 0x38) >> 3" (binary_expression "(int)puVar24 - *(int *)(iVar23 + 0x38)" (cast_expression "(int)puVar24" ( (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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_474 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_470 != -4) && (iStack_484 != 0)) {\n      if (*(int *)(iStack_484 + 100) == 0) {\n        *(int *)(iStack_484 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_484 + 100) = *(int *)(iStack_484 + 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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_474 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_470 != -4) && (iStack_484 != 0)) {\n      if (*(int *)(iStack_484 + 100) == 0) {\n        *(int *)(iStack_484 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_484 + 100) = *(int *)(iStack_484 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;" (assignment_expression "*(int *)(iVar23 + 0x14) = iVar20 * 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 "iVar20 * 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 *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_474 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 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 *)(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_470 != -4) && (iStack_484 != 0)) {\n      if (*(int *)(iStack_484 + 100) == 0) {\n        *(int *)(iStack_484 + 0x60) = iVar20 * -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) = iVar20 * -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) = iVar20 * -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) = iVar20 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_484 + 0x60) = iVar20 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_484 + 0x60) = iVar20 * -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 "iVar20 * -0x33333333 + -1" (binary_expression "iVar20 * -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 "pcVar35 = *(code **)(pcStack_490 + -0x7810);" (assignment_expression "pcVar35 = *(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 "pcVar36 = add_symbolless_global_addend;" (assignment_expression "pcVar36 = add_symbolless_global_addend" identifier = identifier) ;) (expression_statement "iVar20 = *(int *)(pcStack_490 + -0x7fc4) + 0x3574;" (assignment_expression "iVar20 = *(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 "(*pcVar35)(iVar20,0x231,*(int *)(pcStack_490 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar20,0x231,*(int *)(pcStack_490 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar20,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 = pcVar35 + 0x2759c0;" (assignment_expression "pcStack_500 = pcVar35 + 0x2759c0" identifier = (binary_expression "pcVar35 + 0x2759c0" 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 = iVar23;" (assignment_expression "iStack_4cc = iVar23" identifier = identifier) ;) (expression_statement "iStack_4c8 = iVar22;" (assignment_expression "iStack_4c8 = iVar22" identifier = identifier) ;) (expression_statement "pcStack_4c4 = pcVar36;" (assignment_expression "pcStack_4c4 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e610))(&uStack_4f8);" (call_expression "(**(code **)(pcVar35 + 0x26e610))(&uStack_4f8)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26e610))" ( (pointer_expression "**(code **)(pcVar35 + 0x26e610)" * (pointer_expression "*(code **)(pcVar35 + 0x26e610)" * (cast_expression "(code **)(pcVar35 + 0x26e610)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26e610)" ( (binary_expression "pcVar35 + 0x26e610" identifier + number_literal) ))))) )) (argument_list "(&uStack_4f8)" ( (pointer_expression "&uStack_4f8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar20 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar20 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar20 + 0x3c)" * (cast_expression "(undefined4 **)(iVar20 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 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 (puVar21 == *(undefined4 **)(iVar20 + 0x40)) {\n    iVar22 = iStack_49c;\n    (**(code **)(pcStack_500 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_4f8);\n    puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_4f8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_4d8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar20 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar20 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar20 + 0x40)" * (cast_expression "(undefined4 **)(iVar20 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x40)" ( (binary_expression "iVar20 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar22 = iStack_49c;\n    (**(code **)(pcStack_500 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_4f8);\n    puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n  }" { (expression_statement "iVar22 = iStack_49c;" (assignment_expression "iVar22 = iStack_49c" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_500 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_4f8);" (call_expression "(**(code **)(pcStack_500 + -0x5ce0))(iVar20 + 0x38,puVar21,&uStack_4f8)" (parenthesized_expression "(**(code **)(pcStack_500 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_500 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_500 + -0x5ce0)" * (cast_expression "(code **)(pcStack_500 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_500 + -0x5ce0)" ( (binary_expression "pcStack_500 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar20 + 0x38,puVar21,&uStack_4f8)" ( (binary_expression "iVar20 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_4f8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar20 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar20 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar20 + 0x3c)" * (cast_expression "(undefined4 **)(iVar20 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_4f8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_4d8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_4f8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_4d8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_4f8;" (assignment_expression "puVar14 = &uStack_4f8" identifier = (pointer_expression "&uStack_4f8" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_4d8);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar22 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar22;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar22 = puVar6[1];" (assignment_expression "iVar22 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = iVar22;" (assignment_expression "puVar5[1] = iVar22" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_4d8)" ( (binary_expression "puVar14 != &uStack_4d8" identifier != (pointer_expression "&uStack_4d8" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar20 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar20 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar20 + 0x3c)" * (cast_expression "(undefined4 **)(iVar20 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar23 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3;" (assignment_expression "iVar23 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar20 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar20 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar20 + 0x38)" * (cast_expression "(int *)(iVar20 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x38)" ( (binary_expression "iVar20 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar20 + 0x20) << 1) {\n    *(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar20 + 0x10) = 0;\n    *(byte *)(uVar33 + 0x20) = *(byte *)(uVar33 + 0x20) & 0xf7 | 8;\n    if (iStack_4e4 << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }\n    if ((iStack_4e0 != -4) && (iStack_4f4 != 0)) {\n      if (*(int *)(iStack_4f4 + 100) == 0) {\n        *(int *)(iStack_4f4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_4f4 + 100) = *(int *)(iStack_4f4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar20 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar20 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar20 + 0x20) << 1" (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;\n    *(undefined4 *)(iVar20 + 0x10) = 0;\n    *(byte *)(uVar33 + 0x20) = *(byte *)(uVar33 + 0x20) & 0xf7 | 8;\n    if (iStack_4e4 << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }\n    if ((iStack_4e0 != -4) && (iStack_4f4 != 0)) {\n      if (*(int *)(iStack_4f4 + 100) == 0) {\n        *(int *)(iStack_4f4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_4f4 + 100) = *(int *)(iStack_4f4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar20 + 0x14) = iVar23 * 0x33333338;" (assignment_expression "*(int *)(iVar20 + 0x14) = iVar23 * 0x33333338" (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar23 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar20 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0x10)" * (cast_expression "(undefined4 *)(iVar20 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(uVar33 + 0x20) = *(byte *)(uVar33 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(uVar33 + 0x20) = *(byte *)(uVar33 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(uVar33 + 0x20)" * (cast_expression "(byte *)(uVar33 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar33 + 0x20)" ( (binary_expression "uVar33 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(uVar33 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(uVar33 + 0x20) & 0xf7" (pointer_expression "*(byte *)(uVar33 + 0x20)" * (cast_expression "(byte *)(uVar33 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar33 + 0x20)" ( (binary_expression "uVar33 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_4e4 << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 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 *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;" (assignment_expression "*(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1" (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar20 + 0x30) + 1" (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 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) = iVar23 * -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) = iVar23 * -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) = iVar23 * -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) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_4f4 + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_4f4 + 0x60) = iVar23 * -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 "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -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 "pcVar35 = *(code **)(pcStack_500 + -0x7810);" (assignment_expression "pcVar35 = *(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 "pcVar36 = add_global_relative;" (assignment_expression "pcVar36 = add_global_relative" identifier = identifier) ;) (expression_statement "iVar23 = *(int *)(pcStack_500 + -0x7fc4) + 0x3574;" (assignment_expression "iVar23 = *(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 "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_500 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_500 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar23,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 = pcVar35 + 0x2757fc;" (assignment_expression "pcStack_570 = pcVar35 + 0x2757fc" identifier = (binary_expression "pcVar35 + 0x2757fc" 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 = iVar20;" (assignment_expression "iStack_53c = iVar20" identifier = identifier) ;) (expression_statement "uStack_538 = uVar33;" (assignment_expression "uStack_538 = uVar33" identifier = identifier) ;) (expression_statement "pcStack_534 = pcVar36;" (assignment_expression "pcStack_534 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e44c))(&uStack_568);" (call_expression "(**(code **)(pcVar35 + 0x26e44c))(&uStack_568)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26e44c))" ( (pointer_expression "**(code **)(pcVar35 + 0x26e44c)" * (pointer_expression "*(code **)(pcVar35 + 0x26e44c)" * (cast_expression "(code **)(pcVar35 + 0x26e44c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26e44c)" ( (binary_expression "pcVar35 + 0x26e44c" identifier + number_literal) ))))) )) (argument_list "(&uStack_568)" ( (pointer_expression "&uStack_568" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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 "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 (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_570 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_568);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_568;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_548);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar23 + 0x40))" ( (binary_expression "puVar21 == *(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_570 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_568);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_570 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_568);" (call_expression "(**(code **)(pcStack_570 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_568)" (parenthesized_expression "(**(code **)(pcStack_570 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_570 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_570 + -0x5ce0)" * (cast_expression "(code **)(pcStack_570 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_570 + -0x5ce0)" ( (binary_expression "pcStack_570 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x38,puVar21,&uStack_568)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_568" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_568;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_548);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_568;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_548);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_568;" (assignment_expression "puVar14 = &uStack_568" identifier = (pointer_expression "&uStack_568" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_548);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar32 = puVar6[1];" (assignment_expression "uVar32 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = uVar32;" (assignment_expression "puVar5[1] = uVar32" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_548)" ( (binary_expression "puVar14 != &uStack_548" identifier != (pointer_expression "&uStack_548" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar23 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar23 + 0x3c) = puVar21" (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 "iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;" (assignment_expression "iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38)" (cast_expression "(int)puVar21" ( (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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_554 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_550 != -4) && (iStack_564 != 0)) {\n      if (*(int *)(iStack_564 + 100) == 0) {\n        *(int *)(iStack_564 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_564 + 100) = *(int *)(iStack_564 + 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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_554 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_550 != -4) && (iStack_564 != 0)) {\n      if (*(int *)(iStack_564 + 100) == 0) {\n        *(int *)(iStack_564 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_564 + 100) = *(int *)(iStack_564 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;" (assignment_expression "*(int *)(iVar23 + 0x14) = iVar20 * 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 "iVar20 * 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 *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_554 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 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 *)(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_550 != -4) && (iStack_564 != 0)) {\n      if (*(int *)(iStack_564 + 100) == 0) {\n        *(int *)(iStack_564 + 0x60) = iVar20 * -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) = iVar20 * -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) = iVar20 * -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) = iVar20 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_564 + 0x60) = iVar20 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_564 + 0x60) = iVar20 * -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 "iVar20 * -0x33333333 + -1" (binary_expression "iVar20 * -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 "pcVar35 = *(code **)(pcStack_570 + -0x7810);" (assignment_expression "pcVar35 = *(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 "pcVar36 = add_local;" (assignment_expression "pcVar36 = add_local" identifier = identifier) ;) (expression_statement "iVar27 = *(int *)(pcStack_570 + -0x7fc4) + 0x3574;" (assignment_expression "iVar27 = *(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 "(*pcVar35)(iVar27,0x231,*(int *)(pcStack_570 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar27,0x231,*(int *)(pcStack_570 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar27,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 "iVar20 = iStack_590;" (assignment_expression "iVar20 = iStack_590" identifier = identifier) ;) (expression_statement "pcStack_5e0 = pcVar35 + 0x275634;" (assignment_expression "pcStack_5e0 = pcVar35 + 0x275634" identifier = (binary_expression "pcVar35 + 0x275634" 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_5e8 = 0;" (assignment_expression "uStack_5e8 = 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 = iVar23;" (assignment_expression "iStack_5ac = iVar23" identifier = identifier) ;) (expression_statement "iStack_5a8 = iVar22;" (assignment_expression "iStack_5a8 = iVar22" identifier = identifier) ;) (expression_statement "pcStack_5a4 = pcVar36;" (assignment_expression "pcStack_5a4 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e06c))(&uStack_5d8);" (call_expression "(**(code **)(pcVar35 + 0x26e06c))(&uStack_5d8)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26e06c))" ( (pointer_expression "**(code **)(pcVar35 + 0x26e06c)" * (pointer_expression "*(code **)(pcVar35 + 0x26e06c)" * (cast_expression "(code **)(pcVar35 + 0x26e06c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26e06c)" ( (binary_expression "pcVar35 + 0x26e06c" identifier + number_literal) ))))) )) (argument_list "(&uStack_5d8)" ( (pointer_expression "&uStack_5d8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar27 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar27 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 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 (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {\n    (**(code **)(pcStack_5e0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_5d8);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_5d8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_5b8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar27 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar27 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar27 + 0x40)" * (cast_expression "(undefined4 **)(iVar27 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x40)" ( (binary_expression "iVar27 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_5e0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_5d8);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_5e0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_5d8);" (call_expression "(**(code **)(pcStack_5e0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_5d8)" (parenthesized_expression "(**(code **)(pcStack_5e0 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_5e0 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_5e0 + -0x5ce0)" * (cast_expression "(code **)(pcStack_5e0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5e0 + -0x5ce0)" ( (binary_expression "pcStack_5e0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar27 + 0x38,puVar21,&uStack_5d8)" ( (binary_expression "iVar27 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_5d8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar27 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar27 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_5d8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_5b8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_5d8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_5b8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_5d8;" (assignment_expression "puVar14 = &uStack_5d8" identifier = (pointer_expression "&uStack_5d8" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_5b8);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar32 = puVar6[1];" (assignment_expression "uVar32 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = uVar32;" (assignment_expression "puVar5[1] = uVar32" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_5b8)" ( (binary_expression "puVar14 != &uStack_5b8" identifier != (pointer_expression "&uStack_5b8" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar27 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar27 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar22 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;" (assignment_expression "iVar22 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar27 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar27 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar27 + 0x38)" * (cast_expression "(int *)(iVar27 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x38)" ( (binary_expression "iVar27 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar27 + 0x20) << 1) {\n    *(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_5c4 << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_5c0 != -4) && (iStack_5d4 != 0)) {\n      if (*(int *)(iStack_5d4 + 100) == 0) {\n        *(int *)(iStack_5d4 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_5d4 + 100) = *(int *)(iStack_5d4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar27 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar27 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar27 + 0x20) << 1" (pointer_expression "*(int *)(iVar27 + 0x20)" * (cast_expression "(int *)(iVar27 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x20)" ( (binary_expression "iVar27 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_5c4 << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_5c0 != -4) && (iStack_5d4 != 0)) {\n      if (*(int *)(iStack_5d4 + 100) == 0) {\n        *(int *)(iStack_5d4 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_5d4 + 100) = *(int *)(iStack_5d4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;" (assignment_expression "*(int *)(iVar27 + 0x14) = iVar22 * 0x33333338" (pointer_expression "*(int *)(iVar27 + 0x14)" * (cast_expression "(int *)(iVar27 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x14)" ( (binary_expression "iVar27 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar22 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar27 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar27 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar27 + 0x10)" * (cast_expression "(undefined4 *)(iVar27 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x10)" ( (binary_expression "iVar27 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar20 + 0x20)" * (cast_expression "(byte *)(iVar20 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar20 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar20 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar20 + 0x20)" * (cast_expression "(byte *)(iVar20 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_5c4 << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 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 *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;" (assignment_expression "*(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1" (pointer_expression "*(int *)(iVar27 + 0x30)" * (cast_expression "(int *)(iVar27 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x30)" ( (binary_expression "iVar27 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar27 + 0x30) + 1" (pointer_expression "*(int *)(iVar27 + 0x30)" * (cast_expression "(int *)(iVar27 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x30)" ( (binary_expression "iVar27 + 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) = iVar22 * -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) = iVar22 * -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) = iVar22 * -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) = iVar22 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_5d4 + 0x60) = iVar22 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_5d4 + 0x60) = iVar22 * -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 "iVar22 * -0x33333333 + -1" (binary_expression "iVar22 * -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 "pcVar35 = *(code **)(pcStack_5e0 + -0x7810);" (assignment_expression "pcVar35 = *(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 "pcVar36 = add_local;" (assignment_expression "pcVar36 = add_local" identifier = identifier) ;) (expression_statement "iVar23 = *(int *)(pcStack_5e0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar23 = *(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 "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_5e0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_5e0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar23,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 "iVar22 = iStack_600;" (assignment_expression "iVar22 = iStack_600" identifier = identifier) ;) (expression_statement "pcStack_650 = pcVar35 + 0x275474;" (assignment_expression "pcStack_650 = pcVar35 + 0x275474" identifier = (binary_expression "pcVar35 + 0x275474" identifier + number_literal)) ;) (expression_statement "iStack_618 = iVar20;" (assignment_expression "iStack_618 = iVar20" identifier = identifier) ;) (expression_statement "uStack_668 = uStack_5f8;" (assignment_expression "uStack_668 = uStack_5f8" identifier = identifier) ;) (expression_statement "uStack_654 = 0;" (assignment_expression "uStack_654 = 0" identifier = number_literal) ;) (expression_statement "uStack_658 = 0;" (assignment_expression "uStack_658 = 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 "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 = iVar27;" (assignment_expression "iStack_61c = iVar27" identifier = identifier) ;) (expression_statement "pcStack_614 = pcVar36;" (assignment_expression "pcStack_614 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e030))(&uStack_648);" (call_expression "(**(code **)(pcVar35 + 0x26e030))(&uStack_648)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26e030))" ( (pointer_expression "**(code **)(pcVar35 + 0x26e030)" * (pointer_expression "*(code **)(pcVar35 + 0x26e030)" * (cast_expression "(code **)(pcVar35 + 0x26e030)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26e030)" ( (binary_expression "pcVar35 + 0x26e030" identifier + number_literal) ))))) )) (argument_list "(&uStack_648)" ( (pointer_expression "&uStack_648" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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 "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 (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_650 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_648);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_648;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_628);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar23 + 0x40))" ( (binary_expression "puVar21 == *(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_650 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_648);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_650 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_648);" (call_expression "(**(code **)(pcStack_650 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_648)" (parenthesized_expression "(**(code **)(pcStack_650 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_650 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_650 + -0x5ce0)" * (cast_expression "(code **)(pcStack_650 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_650 + -0x5ce0)" ( (binary_expression "pcStack_650 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x38,puVar21,&uStack_648)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_648" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_648;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_628);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_648;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_628);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_648;" (assignment_expression "puVar14 = &uStack_648" identifier = (pointer_expression "&uStack_648" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_628);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar32 = puVar6[1];" (assignment_expression "uVar32 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = uVar32;" (assignment_expression "puVar5[1] = uVar32" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_628)" ( (binary_expression "puVar14 != &uStack_628" identifier != (pointer_expression "&uStack_628" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar23 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar23 + 0x3c) = puVar21" (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 "iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;" (assignment_expression "iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38)" (cast_expression "(int)puVar21" ( (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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_634 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_630 != -4) && (iStack_644 != 0)) {\n      if (*(int *)(iStack_644 + 100) == 0) {\n        *(int *)(iStack_644 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_644 + 100) = *(int *)(iStack_644 + 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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_634 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_630 != -4) && (iStack_644 != 0)) {\n      if (*(int *)(iStack_644 + 100) == 0) {\n        *(int *)(iStack_644 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_644 + 100) = *(int *)(iStack_644 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;" (assignment_expression "*(int *)(iVar23 + 0x14) = iVar20 * 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 "iVar20 * 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 *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_634 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 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 *)(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_630 != -4) && (iStack_644 != 0)) {\n      if (*(int *)(iStack_644 + 100) == 0) {\n        *(int *)(iStack_644 + 0x60) = iVar20 * -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) = iVar20 * -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) = iVar20 * -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) = iVar20 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_644 + 0x60) = iVar20 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_644 + 0x60) = iVar20 * -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 "iVar20 * -0x33333333 + -1" (binary_expression "iVar20 * -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 "pcVar35 = *(code **)(pcStack_650 + -0x7810);" (assignment_expression "pcVar35 = *(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 "pcVar36 = add_local_relative;" (assignment_expression "pcVar36 = add_local_relative" identifier = identifier) ;) (expression_statement "iVar27 = *(int *)(pcStack_650 + -0x7fc4) + 0x3574;" (assignment_expression "iVar27 = *(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 "(*pcVar35)(iVar27,0x231,*(int *)(pcStack_650 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar27,0x231,*(int *)(pcStack_650 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar27,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 "iVar20 = iStack_670;" (assignment_expression "iVar20 = iStack_670" identifier = identifier) ;) (expression_statement "pcStack_6c0 = pcVar35 + 0x2752b8;" (assignment_expression "pcStack_6c0 = pcVar35 + 0x2752b8" identifier = (binary_expression "pcVar35 + 0x2752b8" identifier + number_literal)) ;) (expression_statement "uStack_6c4 = uStack_658 & 0xff;" (assignment_expression "uStack_6c4 = uStack_658 & 0xff" identifier = (binary_expression "uStack_658 & 0xff" identifier & number_literal)) ;) (expression_statement "uStack_6cc = 1;" (assignment_expression "uStack_6cc = 1" identifier = number_literal) ;) (expression_statement "uStack_6d0 = 1;" (assignment_expression "uStack_6d0 = 1" identifier = number_literal) ;) (expression_statement "uStack_6d8 = uStack_668;" (assignment_expression "uStack_6d8 = uStack_668" identifier = identifier) ;) (expression_statement "iStack_688 = iVar22;" (assignment_expression "iStack_688 = iVar22" identifier = identifier) ;) (expression_statement "uStack_6c8 = 0;" (assignment_expression "uStack_6c8 = 0" identifier = number_literal) ;) (expression_statement "uStack_6d4 = uStack_664;" (assignment_expression "uStack_6d4 = uStack_664" identifier = identifier) ;) (expression_statement "iStack_6e0 = iStack_66c;" (assignment_expression "iStack_6e0 = iStack_66c" identifier = identifier) ;) (expression_statement "puStack_690 = &uStack_648;" (assignment_expression "puStack_690 = &uStack_648" identifier = (pointer_expression "&uStack_648" & identifier)) ;) (expression_statement "iStack_68c = iVar23;" (assignment_expression "iStack_68c = iVar23" identifier = identifier) ;) (expression_statement "pcStack_684 = pcVar36;" (assignment_expression "pcStack_684 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26dcf0))(&uStack_6b8);" (call_expression "(**(code **)(pcVar35 + 0x26dcf0))(&uStack_6b8)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26dcf0))" ( (pointer_expression "**(code **)(pcVar35 + 0x26dcf0)" * (pointer_expression "*(code **)(pcVar35 + 0x26dcf0)" * (cast_expression "(code **)(pcVar35 + 0x26dcf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26dcf0)" ( (binary_expression "pcVar35 + 0x26dcf0" identifier + number_literal) ))))) )) (argument_list "(&uStack_6b8)" ( (pointer_expression "&uStack_6b8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar27 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar27 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 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 (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {\n    (**(code **)(pcStack_6c0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_6b8);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_6b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_698);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar27 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar27 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar27 + 0x40)" * (cast_expression "(undefined4 **)(iVar27 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x40)" ( (binary_expression "iVar27 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_6c0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_6b8);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_6c0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_6b8);" (call_expression "(**(code **)(pcStack_6c0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_6b8)" (parenthesized_expression "(**(code **)(pcStack_6c0 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_6c0 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_6c0 + -0x5ce0)" * (cast_expression "(code **)(pcStack_6c0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_6c0 + -0x5ce0)" ( (binary_expression "pcStack_6c0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar27 + 0x38,puVar21,&uStack_6b8)" ( (binary_expression "iVar27 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_6b8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar27 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar27 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_6b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_698);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_6b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_698);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_6b8;" (assignment_expression "puVar14 = &uStack_6b8" identifier = (pointer_expression "&uStack_6b8" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_698);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar32 = puVar6[1];" (assignment_expression "uVar32 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = uVar32;" (assignment_expression "puVar5[1] = uVar32" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_698)" ( (binary_expression "puVar14 != &uStack_698" identifier != (pointer_expression "&uStack_698" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar27 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar27 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar22 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;" (assignment_expression "iVar22 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar27 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar27 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar27 + 0x38)" * (cast_expression "(int *)(iVar27 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x38)" ( (binary_expression "iVar27 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar27 + 0x20) << 1) {\n    *(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_6a4 << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_6a0 != -4) && (iStack_6b4 != 0)) {\n      if (*(int *)(iStack_6b4 + 100) == 0) {\n        *(int *)(iStack_6b4 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_6b4 + 100) = *(int *)(iStack_6b4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar27 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar27 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar27 + 0x20) << 1" (pointer_expression "*(int *)(iVar27 + 0x20)" * (cast_expression "(int *)(iVar27 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x20)" ( (binary_expression "iVar27 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_6a4 << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_6a0 != -4) && (iStack_6b4 != 0)) {\n      if (*(int *)(iStack_6b4 + 100) == 0) {\n        *(int *)(iStack_6b4 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_6b4 + 100) = *(int *)(iStack_6b4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;" (assignment_expression "*(int *)(iVar27 + 0x14) = iVar22 * 0x33333338" (pointer_expression "*(int *)(iVar27 + 0x14)" * (cast_expression "(int *)(iVar27 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x14)" ( (binary_expression "iVar27 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar22 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar27 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar27 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar27 + 0x10)" * (cast_expression "(undefined4 *)(iVar27 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x10)" ( (binary_expression "iVar27 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar20 + 0x20)" * (cast_expression "(byte *)(iVar20 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar20 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar20 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar20 + 0x20)" * (cast_expression "(byte *)(iVar20 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_6a4 << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 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 *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;" (assignment_expression "*(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1" (pointer_expression "*(int *)(iVar27 + 0x30)" * (cast_expression "(int *)(iVar27 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x30)" ( (binary_expression "iVar27 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar27 + 0x30) + 1" (pointer_expression "*(int *)(iVar27 + 0x30)" * (cast_expression "(int *)(iVar27 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x30)" ( (binary_expression "iVar27 + 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) = iVar22 * -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) = iVar22 * -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) = iVar22 * -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) = iVar22 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_6b4 + 0x60) = iVar22 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_6b4 + 0x60) = iVar22 * -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 "iVar22 * -0x33333333 + -1" (binary_expression "iVar22 * -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 "pcVar35 = *(code **)(pcStack_6c0 + -0x7810);" (assignment_expression "pcVar35 = *(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 "pcVar36 = add_symbolless_local_addend;" (assignment_expression "pcVar36 = add_symbolless_local_addend" identifier = identifier) ;) (expression_statement "iVar23 = *(int *)(pcStack_6c0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar23 = *(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 "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_6c0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_6c0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar23,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 "iVar22 = iStack_6e0;" (assignment_expression "iVar22 = iStack_6e0" identifier = identifier) ;) (expression_statement "pcStack_730 = pcVar35 + 0x2750f0;" (assignment_expression "pcStack_730 = pcVar35 + 0x2750f0" identifier = (binary_expression "pcVar35 + 0x2750f0" identifier + number_literal)) ;) (expression_statement "iStack_6f8 = iVar20;" (assignment_expression "iStack_6f8 = iVar20" identifier = identifier) ;) (expression_statement "uStack_73c = 1;" (assignment_expression "uStack_73c = 1" identifier = number_literal) ;) (expression_statement "uStack_734 = 0;" (assignment_expression "uStack_734 = 0" identifier = number_literal) ;) (expression_statement "uStack_738 = 0;" (assignment_expression "uStack_738 = 0" identifier = number_literal) ;) (expression_statement "uStack_740 = 0;" (assignment_expression "uStack_740 = 0" identifier = number_literal) ;) (expression_statement "uStack_744 = uStack_6d4;" (assignment_expression "uStack_744 = uStack_6d4" identifier = identifier) ;) (expression_statement "uStack_748 = uStack_6d8;" (assignment_expression "uStack_748 = uStack_6d8" identifier = identifier) ;) (expression_statement "iStack_750 = iStack_6e0;" (assignment_expression "iStack_750 = 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 = iVar27;" (assignment_expression "iStack_6fc = iVar27" identifier = identifier) ;) (expression_statement "pcStack_6f4 = pcVar36;" (assignment_expression "pcStack_6f4 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26dcac))(&uStack_728);" (call_expression "(**(code **)(pcVar35 + 0x26dcac))(&uStack_728)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26dcac))" ( (pointer_expression "**(code **)(pcVar35 + 0x26dcac)" * (pointer_expression "*(code **)(pcVar35 + 0x26dcac)" * (cast_expression "(code **)(pcVar35 + 0x26dcac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26dcac)" ( (binary_expression "pcVar35 + 0x26dcac" identifier + number_literal) ))))) )) (argument_list "(&uStack_728)" ( (pointer_expression "&uStack_728" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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 "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 (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_730 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_728);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_728;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_708);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar23 + 0x40))" ( (binary_expression "puVar21 == *(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_730 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_728);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_730 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_728);" (call_expression "(**(code **)(pcStack_730 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_728)" (parenthesized_expression "(**(code **)(pcStack_730 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_730 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_730 + -0x5ce0)" * (cast_expression "(code **)(pcStack_730 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_730 + -0x5ce0)" ( (binary_expression "pcStack_730 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x38,puVar21,&uStack_728)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_728" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_728;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_708);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_728;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_708);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_728;" (assignment_expression "puVar14 = &uStack_728" identifier = (pointer_expression "&uStack_728" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_708);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar32 = puVar6[1];" (assignment_expression "uVar32 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = uVar32;" (assignment_expression "puVar5[1] = uVar32" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_708)" ( (binary_expression "puVar14 != &uStack_708" identifier != (pointer_expression "&uStack_708" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar23 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar23 + 0x3c) = puVar21" (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 "iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;" (assignment_expression "iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38)" (cast_expression "(int)puVar21" ( (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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_714 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_710 != -4) && (iStack_724 != 0)) {\n      if (*(int *)(iStack_724 + 100) == 0) {\n        *(int *)(iStack_724 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_724 + 100) = *(int *)(iStack_724 + 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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_714 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_710 != -4) && (iStack_724 != 0)) {\n      if (*(int *)(iStack_724 + 100) == 0) {\n        *(int *)(iStack_724 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_724 + 100) = *(int *)(iStack_724 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;" (assignment_expression "*(int *)(iVar23 + 0x14) = iVar20 * 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 "iVar20 * 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 *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_714 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 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 *)(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_710 != -4) && (iStack_724 != 0)) {\n      if (*(int *)(iStack_724 + 100) == 0) {\n        *(int *)(iStack_724 + 0x60) = iVar20 * -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) = iVar20 * -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) = iVar20 * -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) = iVar20 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_724 + 0x60) = iVar20 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_724 + 0x60) = iVar20 * -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 "iVar20 * -0x33333333 + -1" (binary_expression "iVar20 * -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 "pcVar35 = *(code **)(pcStack_730 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_730 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_730 + -0x7810)" * (cast_expression "(code **)(pcStack_730 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_730 + -0x7810)" ( (binary_expression "pcStack_730 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_symbolless_local_addend;" (assignment_expression "pcVar36 = add_symbolless_local_addend" identifier = identifier) ;) (expression_statement "iVar27 = *(int *)(pcStack_730 + -0x7fc4) + 0x3574;" (assignment_expression "iVar27 = *(int *)(pcStack_730 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_730 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_730 + -0x7fc4)" * (cast_expression "(int *)(pcStack_730 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_730 + -0x7fc4)" ( (binary_expression "pcStack_730 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar27,0x231,*(int *)(pcStack_730 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar27,0x231,*(int *)(pcStack_730 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar27,0x231,*(int *)(pcStack_730 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_730 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_730 + -0x7924)" * (cast_expression "(int *)(pcStack_730 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_730 + -0x7924)" ( (binary_expression "pcStack_730 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar20 = iStack_750;" (assignment_expression "iVar20 = iStack_750" identifier = identifier) ;) (expression_statement "pcStack_7a0 = pcVar35 + 0x274f30;" (assignment_expression "pcStack_7a0 = pcVar35 + 0x274f30" identifier = (binary_expression "pcVar35 + 0x274f30" identifier + number_literal)) ;) (expression_statement "uStack_7ac = 1;" (assignment_expression "uStack_7ac = 1" identifier = number_literal) ;) (expression_statement "uStack_7b8 = uStack_748;" (assignment_expression "uStack_7b8 = uStack_748" identifier = identifier) ;) (expression_statement "iStack_768 = iVar22;" (assignment_expression "iStack_768 = iVar22" identifier = identifier) ;) (expression_statement "uStack_7a4 = 0;" (assignment_expression "uStack_7a4 = 0" identifier = number_literal) ;) (expression_statement "uStack_7a8 = 0;" (assignment_expression "uStack_7a8 = 0" identifier = number_literal) ;) (expression_statement "uStack_7b0 = 0;" (assignment_expression "uStack_7b0 = 0" identifier = number_literal) ;) (expression_statement "uStack_7b4 = uStack_744;" (assignment_expression "uStack_7b4 = uStack_744" identifier = identifier) ;) (expression_statement "iStack_7c0 = iStack_74c;" (assignment_expression "iStack_7c0 = iStack_74c" identifier = identifier) ;) (expression_statement "puStack_770 = &uStack_728;" (assignment_expression "puStack_770 = &uStack_728" identifier = (pointer_expression "&uStack_728" & identifier)) ;) (expression_statement "iStack_76c = iVar23;" (assignment_expression "iStack_76c = iVar23" identifier = identifier) ;) (expression_statement "pcStack_764 = pcVar36;" (assignment_expression "pcStack_764 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26d968))(&uStack_798);" (call_expression "(**(code **)(pcVar35 + 0x26d968))(&uStack_798)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26d968))" ( (pointer_expression "**(code **)(pcVar35 + 0x26d968)" * (pointer_expression "*(code **)(pcVar35 + 0x26d968)" * (cast_expression "(code **)(pcVar35 + 0x26d968)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26d968)" ( (binary_expression "pcVar35 + 0x26d968" identifier + number_literal) ))))) )) (argument_list "(&uStack_798)" ( (pointer_expression "&uStack_798" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar27 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar27 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_774 = uStack_73c;" (assignment_expression "uStack_774 = uStack_73c" identifier = identifier) ;) (expression_statement "uStack_778 = uStack_740;" (assignment_expression "uStack_778 = uStack_740" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar27 + 0x40)) {\n    (**(code **)(pcStack_7a0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_798);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_798;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_778);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar27 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar27 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar27 + 0x40)" * (cast_expression "(undefined4 **)(iVar27 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x40)" ( (binary_expression "iVar27 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_7a0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_798);\n    puVar21 = *(undefined4 **)(iVar27 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_7a0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_798);" (call_expression "(**(code **)(pcStack_7a0 + -0x5ce0))(iVar27 + 0x38,puVar21,&uStack_798)" (parenthesized_expression "(**(code **)(pcStack_7a0 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_7a0 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_7a0 + -0x5ce0)" * (cast_expression "(code **)(pcStack_7a0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_7a0 + -0x5ce0)" ( (binary_expression "pcStack_7a0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar27 + 0x38,puVar21,&uStack_798)" ( (binary_expression "iVar27 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_798" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar27 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar27 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_798;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_778);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_798;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_778);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar27 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_798;" (assignment_expression "puVar14 = &uStack_798" identifier = (pointer_expression "&uStack_798" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_778);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar32 = puVar6[1];" (assignment_expression "uVar32 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = uVar32;" (assignment_expression "puVar5[1] = uVar32" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_778)" ( (binary_expression "puVar14 != &uStack_778" identifier != (pointer_expression "&uStack_778" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar27 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar27 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar27 + 0x3c)" * (cast_expression "(undefined4 **)(iVar27 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x3c)" ( (binary_expression "iVar27 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar22 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3;" (assignment_expression "iVar22 = (int)puVar21 - *(int *)(iVar27 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar27 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar27 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar27 + 0x38)" * (cast_expression "(int *)(iVar27 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x38)" ( (binary_expression "iVar27 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar27 + 0x20) << 1) {\n    *(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_784 << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_780 != -4) && (iStack_794 != 0)) {\n      if (*(int *)(iStack_794 + 100) == 0) {\n        *(int *)(iStack_794 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_794 + 100) = *(int *)(iStack_794 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar27 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar27 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar27 + 0x20) << 1" (pointer_expression "*(int *)(iVar27 + 0x20)" * (cast_expression "(int *)(iVar27 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x20)" ( (binary_expression "iVar27 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar27 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_784 << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }\n    if ((iStack_780 != -4) && (iStack_794 != 0)) {\n      if (*(int *)(iStack_794 + 100) == 0) {\n        *(int *)(iStack_794 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_794 + 100) = *(int *)(iStack_794 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar27 + 0x14) = iVar22 * 0x33333338;" (assignment_expression "*(int *)(iVar27 + 0x14) = iVar22 * 0x33333338" (pointer_expression "*(int *)(iVar27 + 0x14)" * (cast_expression "(int *)(iVar27 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x14)" ( (binary_expression "iVar27 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar22 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar27 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar27 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar27 + 0x10)" * (cast_expression "(undefined4 *)(iVar27 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x10)" ( (binary_expression "iVar27 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar20 + 0x20)" * (cast_expression "(byte *)(iVar20 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar20 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar20 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar20 + 0x20)" * (cast_expression "(byte *)(iVar20 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_784 << 0x1c < 0) {\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_784 << 0x1c < 0)" ( (binary_expression "iStack_784 << 0x1c < 0" (binary_expression "iStack_784 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1;" (assignment_expression "*(int *)(iVar27 + 0x30) = *(int *)(iVar27 + 0x30) + 1" (pointer_expression "*(int *)(iVar27 + 0x30)" * (cast_expression "(int *)(iVar27 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x30)" ( (binary_expression "iVar27 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar27 + 0x30) + 1" (pointer_expression "*(int *)(iVar27 + 0x30)" * (cast_expression "(int *)(iVar27 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x30)" ( (binary_expression "iVar27 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_780 != -4) && (iStack_794 != 0)) {\n      if (*(int *)(iStack_794 + 100) == 0) {\n        *(int *)(iStack_794 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_794 + 100) = *(int *)(iStack_794 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_780 != -4) && (iStack_794 != 0))" ( (binary_expression "(iStack_780 != -4) && (iStack_794 != 0)" (parenthesized_expression "(iStack_780 != -4)" ( (binary_expression "iStack_780 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_794 != 0)" ( (binary_expression "iStack_794 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_794 + 100) == 0) {\n        *(int *)(iStack_794 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_794 + 100) = *(int *)(iStack_794 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_794 + 100) == 0) {\n        *(int *)(iStack_794 + 0x60) = iVar22 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_794 + 100) == 0)" ( (binary_expression "*(int *)(iStack_794 + 100) == 0" (pointer_expression "*(int *)(iStack_794 + 100)" * (cast_expression "(int *)(iStack_794 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_794 + 100)" ( (binary_expression "iStack_794 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_794 + 0x60) = iVar22 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_794 + 0x60) = iVar22 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_794 + 0x60) = iVar22 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_794 + 0x60)" * (cast_expression "(int *)(iStack_794 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_794 + 0x60)" ( (binary_expression "iStack_794 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar22 * -0x33333333 + -1" (binary_expression "iVar22 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_794 + 100) = *(int *)(iStack_794 + 100) + 1;" (assignment_expression "*(int *)(iStack_794 + 100) = *(int *)(iStack_794 + 100) + 1" (pointer_expression "*(int *)(iStack_794 + 100)" * (cast_expression "(int *)(iStack_794 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_794 + 100)" ( (binary_expression "iStack_794 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_794 + 100) + 1" (pointer_expression "*(int *)(iStack_794 + 100)" * (cast_expression "(int *)(iStack_794 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_794 + 100)" ( (binary_expression "iStack_794 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_7a0 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_7a0 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_7a0 + -0x7810)" * (cast_expression "(code **)(pcStack_7a0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_7a0 + -0x7810)" ( (binary_expression "pcStack_7a0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_local_section;" (assignment_expression "pcVar36 = add_local_section" identifier = identifier) ;) (expression_statement "iVar23 = *(int *)(pcStack_7a0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar23 = *(int *)(pcStack_7a0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_7a0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_7a0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_7a0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_7a0 + -0x7fc4)" ( (binary_expression "pcStack_7a0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_7a0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_7a0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar23,0x231,*(int *)(pcStack_7a0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_7a0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_7a0 + -0x7924)" * (cast_expression "(int *)(pcStack_7a0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_7a0 + -0x7924)" ( (binary_expression "pcStack_7a0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar22 = iStack_7c0;" (assignment_expression "iVar22 = iStack_7c0" identifier = identifier) ;) (expression_statement "pcStack_810 = pcVar35 + 0x274d6c;" (assignment_expression "pcStack_810 = pcVar35 + 0x274d6c" identifier = (binary_expression "pcVar35 + 0x274d6c" identifier + number_literal)) ;) (expression_statement "iStack_7d8 = iVar20;" (assignment_expression "iStack_7d8 = iVar20" identifier = identifier) ;) (expression_statement "uStack_818 = 1;" (assignment_expression "uStack_818 = 1" identifier = number_literal) ;) (expression_statement "uStack_814 = 0;" (assignment_expression "uStack_814 = 0" identifier = number_literal) ;) (expression_statement "uStack_81c = 0;" (assignment_expression "uStack_81c = 0" identifier = number_literal) ;) (expression_statement "uStack_820 = 0;" (assignment_expression "uStack_820 = 0" identifier = number_literal) ;) (expression_statement "uStack_824 = uStack_7b4;" (assignment_expression "uStack_824 = uStack_7b4" identifier = identifier) ;) (expression_statement "uStack_828 = uStack_7b8;" (assignment_expression "uStack_828 = uStack_7b8" identifier = identifier) ;) (expression_statement "iStack_830 = iStack_7c0;" (assignment_expression "iStack_830 = iStack_7c0" identifier = identifier) ;) (expression_statement "puStack_7e0 = &uStack_798;" (assignment_expression "puStack_7e0 = &uStack_798" identifier = (pointer_expression "&uStack_798" & identifier)) ;) (expression_statement "iStack_7dc = iVar27;" (assignment_expression "iStack_7dc = iVar27" identifier = identifier) ;) (expression_statement "pcStack_7d4 = pcVar36;" (assignment_expression "pcStack_7d4 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26d928))(&uStack_808);" (call_expression "(**(code **)(pcVar35 + 0x26d928))(&uStack_808)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26d928))" ( (pointer_expression "**(code **)(pcVar35 + 0x26d928)" * (pointer_expression "*(code **)(pcVar35 + 0x26d928)" * (cast_expression "(code **)(pcVar35 + 0x26d928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26d928)" ( (binary_expression "pcVar35 + 0x26d928" identifier + number_literal) ))))) )) (argument_list "(&uStack_808)" ( (pointer_expression "&uStack_808" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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 "uStack_7e4 = uStack_7ac;" (assignment_expression "uStack_7e4 = uStack_7ac" identifier = identifier) ;) (expression_statement "uStack_7e8 = uStack_7b0;" (assignment_expression "uStack_7e8 = uStack_7b0" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_810 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_808);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_808;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_7e8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar23 + 0x40))" ( (binary_expression "puVar21 == *(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_810 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_808);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_810 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_808);" (call_expression "(**(code **)(pcStack_810 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_808)" (parenthesized_expression "(**(code **)(pcStack_810 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_810 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_810 + -0x5ce0)" * (cast_expression "(code **)(pcStack_810 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_810 + -0x5ce0)" ( (binary_expression "pcStack_810 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x38,puVar21,&uStack_808)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_808" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar23 + 0x3c);" (assignment_expression "puVar21 = *(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) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_808;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_7e8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_808;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_7e8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_808;" (assignment_expression "puVar14 = &uStack_808" identifier = (pointer_expression "&uStack_808" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_7e8);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar32;\n      puVar5[2] = uVar26;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    }" { (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar5 = puVar30;" (assignment_expression "puVar5 = puVar30" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar32 = puVar6[1];" (assignment_expression "uVar32 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar5 = *puVar6;" (assignment_expression "*puVar5 = *puVar6" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar5[1] = uVar32;" (assignment_expression "puVar5[1] = uVar32" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar26;" (assignment_expression "puVar5[2] = uVar26" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar8;" (assignment_expression "puVar5[3] = uVar8" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30 = puVar5 + 4;" (assignment_expression "puVar30 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != &uStack_7e8)" ( (binary_expression "puVar14 != &uStack_7e8" identifier != (pointer_expression "&uStack_7e8" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = *puVar14;" (assignment_expression "puVar5[4] = *puVar14" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar5[5] = uVar8;" (assignment_expression "puVar5[5] = uVar8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar23 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar23 + 0x3c) = puVar21" (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 "iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;" (assignment_expression "iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar23 + 0x38)" (cast_expression "(int)puVar21" ( (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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_7f4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_7f0 != -4) && (iStack_804 != 0)) {\n      if (*(int *)(iStack_804 + 100) == 0) {\n        *(int *)(iStack_804 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_804 + 100) = *(int *)(iStack_804 + 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) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;\n    if (iStack_7f4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_7f0 != -4) && (iStack_804 != 0)) {\n      if (*(int *)(iStack_804 + 100) == 0) {\n        *(int *)(iStack_804 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_804 + 100) = *(int *)(iStack_804 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;" (assignment_expression "*(int *)(iVar23 + 0x14) = iVar20 * 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 "iVar20 * 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 *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar22 + 0x20) = *(byte *)(iVar22 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar22 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar22 + 0x20)" * (cast_expression "(byte *)(iVar22 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_7f4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_7f4 << 0x1c < 0)" ( (binary_expression "iStack_7f4 << 0x1c < 0" (binary_expression "iStack_7f4 << 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_7f0 != -4) && (iStack_804 != 0)) {\n      if (*(int *)(iStack_804 + 100) == 0) {\n        *(int *)(iStack_804 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_804 + 100) = *(int *)(iStack_804 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_7f0 != -4) && (iStack_804 != 0))" ( (binary_expression "(iStack_7f0 != -4) && (iStack_804 != 0)" (parenthesized_expression "(iStack_7f0 != -4)" ( (binary_expression "iStack_7f0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_804 != 0)" ( (binary_expression "iStack_804 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_804 + 100) == 0) {\n        *(int *)(iStack_804 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_804 + 100) = *(int *)(iStack_804 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_804 + 100) == 0) {\n        *(int *)(iStack_804 + 0x60) = iVar20 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_804 + 100) == 0)" ( (binary_expression "*(int *)(iStack_804 + 100) == 0" (pointer_expression "*(int *)(iStack_804 + 100)" * (cast_expression "(int *)(iStack_804 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_804 + 100)" ( (binary_expression "iStack_804 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_804 + 0x60) = iVar20 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_804 + 0x60) = iVar20 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_804 + 0x60) = iVar20 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_804 + 0x60)" * (cast_expression "(int *)(iStack_804 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_804 + 0x60)" ( (binary_expression "iStack_804 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar20 * -0x33333333 + -1" (binary_expression "iVar20 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_804 + 100) = *(int *)(iStack_804 + 100) + 1;" (assignment_expression "*(int *)(iStack_804 + 100) = *(int *)(iStack_804 + 100) + 1" (pointer_expression "*(int *)(iStack_804 + 100)" * (cast_expression "(int *)(iStack_804 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_804 + 100)" ( (binary_expression "iStack_804 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_804 + 100) + 1" (pointer_expression "*(int *)(iStack_804 + 100)" * (cast_expression "(int *)(iStack_804 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_804 + 100)" ( (binary_expression "iStack_804 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "iVar27 = 0x231;" (assignment_expression "iVar27 = 0x231" identifier = number_literal) ;) (expression_statement "pcVar35 = *(code **)(pcStack_810 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_810 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_810 + -0x7810)" * (cast_expression "(code **)(pcStack_810 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_810 + -0x7810)" ( (binary_expression "pcStack_810 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = (undefined4 *)(*(int *)(pcStack_810 + -0x7924) + -0x2b1c);" (assignment_expression "puVar30 = (undefined4 *)(*(int *)(pcStack_810 + -0x7924) + -0x2b1c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcStack_810 + -0x7924) + -0x2b1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_810 + -0x7924) + -0x2b1c)" ( (binary_expression "*(int *)(pcStack_810 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_810 + -0x7924)" * (cast_expression "(int *)(pcStack_810 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_810 + -0x7924)" ( (binary_expression "pcStack_810 + -0x7924" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar36 = Output_data_reloc_base<4,_true,_64,_true>::add;" (update_expression "pcVar36 = Output_data_reloc_base<4,_true,_64,_true>::add" (binary_expression "pcVar36 = Output_data_reloc_base<4,_true,_64,_true>::add" (assignment_expression "pcVar36 = Output_data_reloc_base<4" identifier = (binary_expression "Output_data_reloc_base<4" identifier < number_literal)) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > (ERROR "::" : :) identifier) --) ;) (expression_statement "iVar20 = *(int *)(pcStack_810 + -0x7fc4) + 0x3574;" (assignment_expression "iVar20 = *(int *)(pcStack_810 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_810 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_810 + -0x7fc4)" * (cast_expression "(int *)(pcStack_810 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_810 + -0x7fc4)" ( (binary_expression "pcStack_810 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)();" (call_expression "(*pcVar35)()" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pOStack_858 = (Output_data *)(pcVar35 + 0x274bac);" (assignment_expression "pOStack_858 = (Output_data *)(pcVar35 + 0x274bac)" identifier = (cast_expression "(Output_data *)(pcVar35 + 0x274bac)" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + 0x274bac)" ( (binary_expression "pcVar35 + 0x274bac" identifier + number_literal) )))) ;) (expression_statement "iStack_848 = iVar22;" (assignment_expression "iStack_848 = iVar22" identifier = identifier) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar20 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar20 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar20 + 0x3c)" * (cast_expression "(undefined4 **)(iVar20 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "puStack_850 = &uStack_808;" (assignment_expression "puStack_850 = &uStack_808" identifier = (pointer_expression "&uStack_808" & identifier)) ;) (expression_statement "iStack_84c = iVar23;" (assignment_expression "iStack_84c = iVar23" identifier = identifier) ;) (expression_statement "pcStack_844 = pcVar36;" (assignment_expression "pcStack_844 = pcVar36" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar20 + 0x40)) {\n    (**(code **)(pcVar35 + 0x26eefc))(iVar20 + 0x38);\n    puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n  }\n  else {\n    puVar14 = puVar30;\n    puVar5 = puVar21;\n    do {\n      puVar10 = puVar5;\n      puVar6 = puVar14;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar10 = *puVar6;\n      puVar10[1] = uVar32;\n      puVar10[2] = uVar26;\n      puVar10[3] = uVar8;\n      puVar5 = puVar10 + 4;\n    } while (puVar14 != puVar30 + 8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar10[4] = *puVar14;\n    puVar10[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar20 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar20 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar20 + 0x40)" * (cast_expression "(undefined4 **)(iVar20 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x40)" ( (binary_expression "iVar20 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcVar35 + 0x26eefc))(iVar20 + 0x38);\n    puVar21 = *(undefined4 **)(iVar20 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcVar35 + 0x26eefc))(iVar20 + 0x38);" (call_expression "(**(code **)(pcVar35 + 0x26eefc))(iVar20 + 0x38)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26eefc))" ( (pointer_expression "**(code **)(pcVar35 + 0x26eefc)" * (pointer_expression "*(code **)(pcVar35 + 0x26eefc)" * (cast_expression "(code **)(pcVar35 + 0x26eefc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26eefc)" ( (binary_expression "pcVar35 + 0x26eefc" identifier + number_literal) ))))) )) (argument_list "(iVar20 + 0x38)" ( (binary_expression "iVar20 + 0x38" identifier + number_literal) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar20 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar20 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar20 + 0x3c)" * (cast_expression "(undefined4 **)(iVar20 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar14 = puVar30;\n    puVar5 = puVar21;\n    do {\n      puVar10 = puVar5;\n      puVar6 = puVar14;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar10 = *puVar6;\n      puVar10[1] = uVar32;\n      puVar10[2] = uVar26;\n      puVar10[3] = uVar8;\n      puVar5 = puVar10 + 4;\n    } while (puVar14 != puVar30 + 8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar10[4] = *puVar14;\n    puVar10[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar14 = puVar30;\n    puVar5 = puVar21;\n    do {\n      puVar10 = puVar5;\n      puVar6 = puVar14;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar10 = *puVar6;\n      puVar10[1] = uVar32;\n      puVar10[2] = uVar26;\n      puVar10[3] = uVar8;\n      puVar5 = puVar10 + 4;\n    } while (puVar14 != puVar30 + 8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar10[4] = *puVar14;\n    puVar10[5] = uVar8;\n    *(undefined4 **)(iVar20 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar14 = puVar30;" (assignment_expression "puVar14 = puVar30" identifier = identifier) ;) (expression_statement "puVar5 = puVar21;" (assignment_expression "puVar5 = puVar21" identifier = identifier) ;) (do_statement "do {\n      puVar10 = puVar5;\n      puVar6 = puVar14;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar10 = *puVar6;\n      puVar10[1] = uVar32;\n      puVar10[2] = uVar26;\n      puVar10[3] = uVar8;\n      puVar5 = puVar10 + 4;\n    } while (puVar14 != puVar30 + 8);" do (compound_statement "{\n      puVar10 = puVar5;\n      puVar6 = puVar14;\n      puVar14 = puVar6 + 4;\n      uVar32 = puVar6[1];\n      uVar26 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar10 = *puVar6;\n      puVar10[1] = uVar32;\n      puVar10[2] = uVar26;\n      puVar10[3] = uVar8;\n      puVar5 = puVar10 + 4;\n    }" { (expression_statement "puVar10 = puVar5;" (assignment_expression "puVar10 = puVar5" identifier = identifier) ;) (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar14 = puVar6 + 4;" (assignment_expression "puVar14 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar32 = puVar6[1];" (assignment_expression "uVar32 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar6[2];" (assignment_expression "uVar26 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar6[3];" (assignment_expression "uVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar10 = *puVar6;" (assignment_expression "*puVar10 = *puVar6" (pointer_expression "*puVar10" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar10[1] = uVar32;" (assignment_expression "puVar10[1] = uVar32" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[2] = uVar26;" (assignment_expression "puVar10[2] = uVar26" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[3] = uVar8;" (assignment_expression "puVar10[3] = uVar8" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = puVar10 + 4;" (assignment_expression "puVar5 = puVar10 + 4" identifier = (binary_expression "puVar10 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != puVar30 + 8)" ( (binary_expression "puVar14 != puVar30 + 8" identifier != (binary_expression "puVar30 + 8" identifier + number_literal)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "uVar8 = puVar6[5];" (assignment_expression "uVar8 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar10[4] = *puVar14;" (assignment_expression "puVar10[4] = *puVar14" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar10[5] = uVar8;" (assignment_expression "puVar10[5] = uVar8" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar20 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar20 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar20 + 0x3c)" * (cast_expression "(undefined4 **)(iVar20 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x3c)" ( (binary_expression "iVar20 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar22 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3;" (assignment_expression "iVar22 = (int)puVar21 - *(int *)(iVar20 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar20 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar20 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar20 + 0x38)" * (cast_expression "(int *)(iVar20 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x38)" ( (binary_expression "iVar20 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar20 + 0x20) << 1) {\n    iVar23 = puVar30[5];\n    *(int *)(iVar20 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar20 + 0x10) = 0;\n    *(byte *)(iVar27 + 0x20) = *(byte *)(iVar27 + 0x20) & 0xf7 | 8;\n    if (iVar23 << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }\n    if ((puVar30[6] != -4) && (iVar20 = puVar30[1], iVar20 != 0)) {\n      if (*(int *)(iVar20 + 100) == 0) {\n        *(int *)(iVar20 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iVar20 + 100) = *(int *)(iVar20 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar20 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar20 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar20 + 0x20) << 1" (pointer_expression "*(int *)(iVar20 + 0x20)" * (cast_expression "(int *)(iVar20 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    iVar23 = puVar30[5];\n    *(int *)(iVar20 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar20 + 0x10) = 0;\n    *(byte *)(iVar27 + 0x20) = *(byte *)(iVar27 + 0x20) & 0xf7 | 8;\n    if (iVar23 << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }\n    if ((puVar30[6] != -4) && (iVar20 = puVar30[1], iVar20 != 0)) {\n      if (*(int *)(iVar20 + 100) == 0) {\n        *(int *)(iVar20 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iVar20 + 100) = *(int *)(iVar20 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "iVar23 = puVar30[5];" (assignment_expression "iVar23 = puVar30[5]" identifier = (subscript_expression "puVar30[5]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar20 + 0x14) = iVar22 * 0x33333338;" (assignment_expression "*(int *)(iVar20 + 0x14) = iVar22 * 0x33333338" (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar22 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar20 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0x10)" * (cast_expression "(undefined4 *)(iVar20 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar27 + 0x20) = *(byte *)(iVar27 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar27 + 0x20) = *(byte *)(iVar27 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar27 + 0x20)" * (cast_expression "(byte *)(iVar27 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x20)" ( (binary_expression "iVar27 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar27 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar27 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar27 + 0x20)" * (cast_expression "(byte *)(iVar27 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x20)" ( (binary_expression "iVar27 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iVar23 << 0x1c < 0) {\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }" if (parenthesized_expression "(iVar23 << 0x1c < 0)" ( (binary_expression "iVar23 << 0x1c < 0" (binary_expression "iVar23 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1;" (assignment_expression "*(int *)(iVar20 + 0x30) = *(int *)(iVar20 + 0x30) + 1" (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar20 + 0x30) + 1" (pointer_expression "*(int *)(iVar20 + 0x30)" * (cast_expression "(int *)(iVar20 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x30)" ( (binary_expression "iVar20 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((puVar30[6] != -4) && (iVar20 = puVar30[1], iVar20 != 0)) {\n      if (*(int *)(iVar20 + 100) == 0) {\n        *(int *)(iVar20 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iVar20 + 100) = *(int *)(iVar20 + 100) + 1;\n    }" if (parenthesized_expression "((puVar30[6] != -4) && (iVar20 = puVar30[1], iVar20 != 0))" ( (binary_expression "(puVar30[6] != -4) && (iVar20 = puVar30[1], iVar20 != 0)" (parenthesized_expression "(puVar30[6] != -4)" ( (binary_expression "puVar30[6] != -4" (subscript_expression "puVar30[6]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar20 = puVar30[1], iVar20 != 0)" ( (comma_expression "iVar20 = puVar30[1], iVar20 != 0" (assignment_expression "iVar20 = puVar30[1]" identifier = (subscript_expression "puVar30[1]" identifier [ number_literal ])) , (binary_expression "iVar20 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      if (*(int *)(iVar20 + 100) == 0) {\n        *(int *)(iVar20 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iVar20 + 100) = *(int *)(iVar20 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iVar20 + 100) == 0) {\n        *(int *)(iVar20 + 0x60) = iVar22 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iVar20 + 100) == 0)" ( (binary_expression "*(int *)(iVar20 + 100) == 0" (pointer_expression "*(int *)(iVar20 + 100)" * (cast_expression "(int *)(iVar20 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 100)" ( (binary_expression "iVar20 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iVar20 + 0x60) = iVar22 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iVar20 + 0x60) = iVar22 * -0x33333333 + -1;" (assignment_expression "*(int *)(iVar20 + 0x60) = iVar22 * -0x33333333 + -1" (pointer_expression "*(int *)(iVar20 + 0x60)" * (cast_expression "(int *)(iVar20 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x60)" ( (binary_expression "iVar20 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar22 * -0x33333333 + -1" (binary_expression "iVar22 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iVar20 + 100) = *(int *)(iVar20 + 100) + 1;" (assignment_expression "*(int *)(iVar20 + 100) = *(int *)(iVar20 + 100) + 1" (pointer_expression "*(int *)(iVar20 + 100)" * (cast_expression "(int *)(iVar20 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 100)" ( (binary_expression "iVar20 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar20 + 100) + 1" (pointer_expression "*(int *)(iVar20 + 100)" * (cast_expression "(int *)(iVar20 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 100)" ( (binary_expression "iVar20 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)&pOStack_858[-0x301].offset_;" (assignment_expression "pcVar35 = *(code **)&pOStack_858[-0x301].offset_" identifier = (pointer_expression "*(code **)&pOStack_858[-0x301].offset_" * (cast_expression "(code **)&pOStack_858[-0x301].offset_" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOStack_858[-0x301].offset_" & (field_expression "pOStack_858[-0x301].offset_" (subscript_expression "pOStack_858[-0x301]" identifier [ number_literal ]) . field_identifier))))) ;) (expression_statement "pcVar36 = Output_data_reloc<4,_true,_64,_true>::add_local;" (update_expression "pcVar36 = Output_data_reloc<4,_true,_64,_true>::add_local" (binary_expression "pcVar36 = Output_data_reloc<4,_true,_64,_true>::add_local" (assignment_expression "pcVar36 = Output_data_reloc<4" identifier = (binary_expression "Output_data_reloc<4" identifier < number_literal)) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > (ERROR "::" : :) identifier) --) ;) (expression_statement "this_00 = (Output_data_reloc_base<4,_true,_64,_true> *)\n            ((int)pOStack_858[-0x332].address_ + 0x3574);" (assignment_expression "this_00 = (Output_data_reloc_base<4,_true,_64,_true> *)\n            ((int)pOStack_858[-0x332].address_ + 0x3574)" identifier = (call_expression "(Output_data_reloc_base<4,_true,_64,_true> *)\n            ((int)pOStack_858[-0x332].address_ + 0x3574)" (parenthesized_expression "(Output_data_reloc_base<4,_true,_64,_true> *)" ( (comma_expression "Output_data_reloc_base<4,_true,_64,_true> *" (binary_expression "Output_data_reloc_base<4" identifier < number_literal) , (comma_expression "_true,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) (argument_list "((int)pOStack_858[-0x332].address_ + 0x3574)" ( (binary_expression "(int)pOStack_858[-0x332].address_ + 0x3574" (cast_expression "(int)pOStack_858[-0x332].address_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOStack_858[-0x332].address_" (subscript_expression "pOStack_858[-0x332]" identifier [ number_literal ]) . field_identifier)) + number_literal) )))) ;) (expression_statement "(*pcVar35)(this_00,0x231,(int)pOStack_858[-0x308].offset_ + -0x2b1c);" (call_expression "(*pcVar35)(this_00,0x231,(int)pOStack_858[-0x308].offset_ + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(this_00,0x231,(int)pOStack_858[-0x308].offset_ + -0x2b1c)" ( identifier , number_literal , (binary_expression "(int)pOStack_858[-0x308].offset_ + -0x2b1c" (cast_expression "(int)pOStack_858[-0x308].offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOStack_858[-0x308].offset_" (subscript_expression "pOStack_858[-0x308]" identifier [ number_literal ]) . field_identifier)) + number_literal) ))) ;) (expression_statement "iStack_874 = iVar20;" (assignment_expression "iStack_874 = iVar20" identifier = identifier) ;) (expression_statement "puStack_870 = puVar30;" (assignment_expression "puStack_870 = puVar30" identifier = identifier) ;) (expression_statement "pcStack_86c = pcVar36;" (assignment_expression "pcStack_86c = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26d47c))((Output_reloc_type *)auStack_8a0);" (call_expression "(**(code **)(pcVar35 + 0x26d47c))((Output_reloc_type *)auStack_8a0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26d47c))" ( (pointer_expression "**(code **)(pcVar35 + 0x26d47c)" * (pointer_expression "*(code **)(pcVar35 + 0x26d47c)" * (cast_expression "(code **)(pcVar35 + 0x26d47c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26d47c)" ( (binary_expression "pcVar35 + 0x26d47c" identifier + number_literal) ))))) )) (argument_list "((Output_reloc_type *)auStack_8a0)" ( (cast_expression "(Output_reloc_type *)auStack_8a0" ( (type_descriptor "Output_reloc_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "auStack_8a0._36_4_ = pcStack_844;" (assignment_expression "auStack_8a0._36_4_ = pcStack_844" (field_expression "auStack_8a0._36_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_8a0._32_4_ = iStack_848;" (assignment_expression "auStack_8a0._32_4_ = iStack_848" (field_expression "auStack_8a0._32_4_" identifier . field_identifier) = identifier) ;) (expression_statement "Output_data_reloc_base<4,_true,_64,_true>::add\n            (this_00,pOStack_858,(Output_reloc_type *)auStack_8a0);" (update_expression "Output_data_reloc_base<4,_true,_64,_true>::add\n            (this_00,pOStack_858,(Output_reloc_type *)auStack_8a0)" (binary_expression "Output_data_reloc_base<4,_true,_64,_true>::add\n            (this_00,pOStack_858,(Output_reloc_type *)auStack_8a0)" (binary_expression "Output_data_reloc_base<4" identifier < number_literal) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > (ERROR "::" : :) (call_expression "add\n            (this_00,pOStack_858,(Output_reloc_type *)auStack_8a0)" identifier (argument_list "(this_00,pOStack_858,(Output_reloc_type *)auStack_8a0)" ( identifier , identifier , (cast_expression "(Output_reloc_type *)auStack_8a0" ( (type_descriptor "Output_reloc_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) --) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_002523f0(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  undefined4 *puVar6;\n  code **ppcVar7;\n  code **ppcVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  code *pcVar15;\n  undefined4 uVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  code *pcStack_138;\n  undefined4 uStack_134;\n  undefined4 *puStack_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  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_d8;\n  undefined4 uStack_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  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_004c4170)(&local_38,param_2,param_4,param_5);\n  puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar9 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar10 * 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) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = FUN_002525ac;\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 + 0x276c94;\n  uStack_a8 = 1;\n  uStack_ac = local_4c;\n  uStack_b0 = local_50;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar19;\n  (**(code **)(puVar18 + 0x26f9f4))(&uStack_98);\n  puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar9 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }\n  iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar11 * 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) = iVar11 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(puStack_a0 + -0x7810);\n  pcVar20 = FUN_0025275c;\n  iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar19 + 0x276ae4;\n  uStack_110 = uStack_b0;\n  uStack_108 = 0;\n  uStack_10c = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar20;\n  (**(code **)(pcVar19 + 0x26f844))(&uStack_f8);\n  puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  uStack_d4 = uStack_a4;\n  uStack_d8 = uStack_a8;\n  if (puVar9 == *(undefined4 **)(iVar11 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }\n  iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar11 + 0x20) << 1) {\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(pcStack_100 + -0x7810);\n  iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;\n  pcVar20 = FUN_00252908;\n  iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar12,0x231);\n  uVar13 = 0;\n  uVar3 = uStack_108;\n  puStack_130 = &uStack_f8;\n  iStack_12c = iVar11;\n  iStack_128 = iVar10;\n  pcStack_124 = pcVar20;\n  (**(code **)(pcVar19 + 0x271868))(&pcStack_158);\n  puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_134 = uStack_fc;\n  pcStack_138 = pcStack_100;\n  if (puVar9 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c);\n  return;\n}\n\n" (function_definition "void FUN_002523f0(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  undefined4 *puVar6;\n  code **ppcVar7;\n  code **ppcVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  code *pcVar15;\n  undefined4 uVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  code *pcStack_138;\n  undefined4 uStack_134;\n  undefined4 *puStack_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  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_d8;\n  undefined4 uStack_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  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_004c4170)(&local_38,param_2,param_4,param_5);\n  puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar9 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar10 * 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) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = FUN_002525ac;\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 + 0x276c94;\n  uStack_a8 = 1;\n  uStack_ac = local_4c;\n  uStack_b0 = local_50;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar19;\n  (**(code **)(puVar18 + 0x26f9f4))(&uStack_98);\n  puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar9 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }\n  iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar11 * 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) = iVar11 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(puStack_a0 + -0x7810);\n  pcVar20 = FUN_0025275c;\n  iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar19 + 0x276ae4;\n  uStack_110 = uStack_b0;\n  uStack_108 = 0;\n  uStack_10c = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar20;\n  (**(code **)(pcVar19 + 0x26f844))(&uStack_f8);\n  puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  uStack_d4 = uStack_a4;\n  uStack_d8 = uStack_a8;\n  if (puVar9 == *(undefined4 **)(iVar11 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }\n  iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar11 + 0x20) << 1) {\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(pcStack_100 + -0x7810);\n  iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;\n  pcVar20 = FUN_00252908;\n  iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar12,0x231);\n  uVar13 = 0;\n  uVar3 = uStack_108;\n  puStack_130 = &uStack_f8;\n  iStack_12c = iVar11;\n  iStack_128 = iVar10;\n  pcStack_124 = pcVar20;\n  (**(code **)(pcVar19 + 0x271868))(&pcStack_158);\n  puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_134 = uStack_fc;\n  pcStack_138 = pcStack_100;\n  if (puVar9 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c);\n  return;\n}" primitive_type (function_declarator "FUN_002523f0(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  undefined4 *puVar6;\n  code **ppcVar7;\n  code **ppcVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  code *pcVar15;\n  undefined4 uVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  code *pcStack_138;\n  undefined4 uStack_134;\n  undefined4 *puStack_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  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_d8;\n  undefined4 uStack_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  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_004c4170)(&local_38,param_2,param_4,param_5);\n  puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar9 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar10 * 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) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = FUN_002525ac;\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 + 0x276c94;\n  uStack_a8 = 1;\n  uStack_ac = local_4c;\n  uStack_b0 = local_50;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar19;\n  (**(code **)(puVar18 + 0x26f9f4))(&uStack_98);\n  puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar9 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }\n  iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar11 * 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) = iVar11 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(puStack_a0 + -0x7810);\n  pcVar20 = FUN_0025275c;\n  iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar19 + 0x276ae4;\n  uStack_110 = uStack_b0;\n  uStack_108 = 0;\n  uStack_10c = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar20;\n  (**(code **)(pcVar19 + 0x26f844))(&uStack_f8);\n  puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  uStack_d4 = uStack_a4;\n  uStack_d8 = uStack_a8;\n  if (puVar9 == *(undefined4 **)(iVar11 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }\n  iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar11 + 0x20) << 1) {\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(pcStack_100 + -0x7810);\n  iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;\n  pcVar20 = FUN_00252908;\n  iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar12,0x231);\n  uVar13 = 0;\n  uVar3 = uStack_108;\n  puStack_130 = &uStack_f8;\n  iStack_12c = iVar11;\n  iStack_128 = iVar10;\n  pcStack_124 = pcVar20;\n  (**(code **)(pcVar19 + 0x271868))(&pcStack_158);\n  puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_134 = uStack_fc;\n  pcStack_138 = pcStack_100;\n  if (puVar9 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -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 "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "code **ppcVar7;" type_identifier (pointer_declarator "**ppcVar7" * (pointer_declarator "*ppcVar7" * identifier)) ;) (declaration "code **ppcVar8;" type_identifier (pointer_declarator "**ppcVar8" * (pointer_declarator "*ppcVar8" * identifier)) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "code *pcStack_158;" type_identifier (pointer_declarator "*pcStack_158" * identifier) ;) (declaration "int iStack_154;" primitive_type identifier ;) (declaration "int iStack_144;" primitive_type identifier ;) (declaration "int iStack_140;" primitive_type identifier ;) (declaration "code *pcStack_138;" type_identifier (pointer_declarator "*pcStack_138" * identifier) ;) (declaration "undefined4 uStack_134;" type_identifier identifier ;) (declaration "undefined4 *puStack_130;" type_identifier (pointer_declarator "*puStack_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 "undefined4 uStack_fc;" type_identifier identifier ;) (declaration "undefined4 uStack_f8;" type_identifier identifier ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int iStack_e0;" primitive_type identifier ;) (declaration "undefined4 uStack_d8;" type_identifier identifier ;) (declaration "undefined4 uStack_d4;" type_identifier 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 "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_004c4170)(&local_38,param_2,param_4,param_5);" (call_expression "(*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5)" (parenthesized_expression "(*(code *)PTR_Output_reloc_004c4170)" ( (pointer_expression "*(code *)PTR_Output_reloc_004c4170" * (cast_expression "(code *)PTR_Output_reloc_004c4170" ( (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 "puVar9 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar9 = *(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 (puVar9 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }" if (parenthesized_expression "(puVar9 == *(undefined4 **)(param_1 + 0x40))" ( (binary_expression "puVar9 == *(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,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }" { (expression_statement "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);" (call_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38)" (parenthesized_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)" ( (comma_expression "*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560" (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,false>const&>_004c3560" true , (comma_expression "64,false>const&>_004c3560" number_literal , (binary_expression "false>const&>_004c3560" (binary_expression "false>const" false > identifier) (ERROR "&" &) > identifier)))) )) (argument_list "(param_1 + 0x38,puVar9,&local_38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar9 = *(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 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }" else (compound_statement "{\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }" { (expression_statement "puVar1 = puVar9;" (assignment_expression "puVar1 = puVar9" identifier = identifier) ;) (expression_statement "puVar4 = &local_38;" (assignment_expression "puVar4 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);" do (compound_statement "{\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar4 = puVar6 + 4;" (assignment_expression "puVar4 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "param_10 = puVar6[1];" (assignment_expression "param_10 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar6[2];" (assignment_expression "uVar13 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar6[3];" (assignment_expression "uVar3 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar6;" (assignment_expression "*puVar2 = *puVar6" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar6" * 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] = uVar13;" (assignment_expression "puVar2[2] = uVar13" (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 "puVar9 = puVar9 + 10;" (assignment_expression "puVar9 = puVar9 + 10" identifier = (binary_expression "puVar9 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar6[5];" (assignment_expression "uVar3 = puVar6[5]" identifier = (subscript_expression "puVar6[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) = puVar9;" (assignment_expression "*(undefined4 **)(param_1 + 0x3c) = puVar9" (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 "iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3;" (assignment_expression "iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3" identifier = (binary_expression "(int)puVar9 - *(int *)(param_1 + 0x38) >> 3" (binary_expression "(int)puVar9 - *(int *)(param_1 + 0x38)" (cast_expression "(int)puVar9" ( (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) = iVar10 * 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) = iVar10 * -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) = iVar10 * 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) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(param_1 + 0x14) = iVar10 * 0x33333338;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar10 * 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 "iVar10 * 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) = iVar10 * -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) = iVar10 * -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) = iVar10 * -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) = iVar10 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(local_34 + 0x60) = iVar10 * -0x33333333 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar10 * -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 "iVar10 * -0x33333333 + -1" (binary_expression "iVar10 * -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 "pcVar19 = FUN_002525ac;" (assignment_expression "pcVar19 = FUN_002525ac" 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 + 0x276c94;" (assignment_expression "puStack_a0 = puVar18 + 0x276c94" identifier = (binary_expression "puVar18 + 0x276c94" identifier + number_literal)) ;) (expression_statement "uStack_a8 = 1;" (assignment_expression "uStack_a8 = 1" identifier = number_literal) ;) (expression_statement "uStack_ac = local_4c;" (assignment_expression "uStack_ac = local_4c" identifier = identifier) ;) (expression_statement "uStack_b0 = local_50;" (assignment_expression "uStack_b0 = local_50" 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 = pcVar19;" (assignment_expression "pcStack_64 = pcVar19" identifier = identifier) ;) (expression_statement "(**(code **)(puVar18 + 0x26f9f4))(&uStack_98);" (call_expression "(**(code **)(puVar18 + 0x26f9f4))(&uStack_98)" (parenthesized_expression "(**(code **)(puVar18 + 0x26f9f4))" ( (pointer_expression "**(code **)(puVar18 + 0x26f9f4)" * (pointer_expression "*(code **)(puVar18 + 0x26f9f4)" * (cast_expression "(code **)(puVar18 + 0x26f9f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x26f9f4)" ( (binary_expression "puVar18 + 0x26f9f4" identifier + number_literal) ))))) )) (argument_list "(&uStack_98)" ( (pointer_expression "&uStack_98" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(puVar5 + 0x3c);" (assignment_expression "puVar9 = *(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 (puVar9 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }" if (parenthesized_expression "(puVar9 == *(undefined4 **)(puVar5 + 0x40))" ( (binary_expression "puVar9 == *(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 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }" { (expression_statement "(**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);" (call_expression "(**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98)" (parenthesized_expression "(**(code **)(puStack_a0 + -0x5ce0))" ( (pointer_expression "**(code **)(puStack_a0 + -0x5ce0)" * (pointer_expression "*(code **)(puStack_a0 + -0x5ce0)" * (cast_expression "(code **)(puStack_a0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a0 + -0x5ce0)" ( (binary_expression "puStack_a0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(puVar5 + 0x38,puVar9,&uStack_98)" ( (binary_expression "puVar5 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_98" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(puVar5 + 0x3c);" (assignment_expression "puVar9 = *(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 "iVar10 = iStack_44;" (assignment_expression "iVar10 = iStack_44" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }" else (compound_statement "{\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }" { (expression_statement "puVar1 = puVar9;" (assignment_expression "puVar1 = puVar9" identifier = identifier) ;) (expression_statement "puVar4 = &uStack_98;" (assignment_expression "puVar4 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);" do (compound_statement "{\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar4 = puVar6 + 4;" (assignment_expression "puVar4 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar10 = puVar6[1];" (assignment_expression "iVar10 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar6[2];" (assignment_expression "uVar13 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar6[3];" (assignment_expression "uVar3 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar6;" (assignment_expression "*puVar2 = *puVar6" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar2[1] = iVar10;" (assignment_expression "puVar2[1] = iVar10" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar13;" (assignment_expression "puVar2[2] = uVar13" (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 "puVar9 = puVar9 + 10;" (assignment_expression "puVar9 = puVar9 + 10" identifier = (binary_expression "puVar9 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar6[5];" (assignment_expression "uVar3 = puVar6[5]" identifier = (subscript_expression "puVar6[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) = puVar9;" (assignment_expression "*(undefined4 **)(puVar5 + 0x3c) = puVar9" (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 "iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3;" (assignment_expression "iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3" identifier = (binary_expression "(int)puVar9 - *(int *)(puVar5 + 0x38) >> 3" (binary_expression "(int)puVar9 - *(int *)(puVar5 + 0x38)" (cast_expression "(int)puVar9" ( (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) = iVar11 * 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) = iVar11 * -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) = iVar11 * 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) = iVar11 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(puVar5 + 0x14) = iVar11 * 0x33333338;" (assignment_expression "*(int *)(puVar5 + 0x14) = iVar11 * 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 "iVar11 * 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) = iVar11 * -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) = iVar11 * -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) = iVar11 * -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) = iVar11 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_94 + 0x60) = iVar11 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_94 + 0x60) = iVar11 * -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 "iVar11 * -0x33333333 + -1" (binary_expression "iVar11 * -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 "pcVar19 = *(code **)(puStack_a0 + -0x7810);" (assignment_expression "pcVar19 = *(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 "pcVar20 = FUN_0025275c;" (assignment_expression "pcVar20 = FUN_0025275c" identifier = identifier) ;) (expression_statement "iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar11 = *(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 "(*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar11,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 = pcVar19 + 0x276ae4;" (assignment_expression "pcStack_100 = pcVar19 + 0x276ae4" identifier = (binary_expression "pcVar19 + 0x276ae4" identifier + number_literal)) ;) (expression_statement "uStack_110 = uStack_b0;" (assignment_expression "uStack_110 = uStack_b0" identifier = identifier) ;) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" identifier = number_literal) ;) (expression_statement "uStack_10c = uStack_ac;" (assignment_expression "uStack_10c = 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 = pcVar20;" (assignment_expression "pcStack_c4 = pcVar20" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar19 + 0x26f844))(&uStack_f8);" (call_expression "(**(code **)(pcVar19 + 0x26f844))(&uStack_f8)" (parenthesized_expression "(**(code **)(pcVar19 + 0x26f844))" ( (pointer_expression "**(code **)(pcVar19 + 0x26f844)" * (pointer_expression "*(code **)(pcVar19 + 0x26f844)" * (cast_expression "(code **)(pcVar19 + 0x26f844)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x26f844)" ( (binary_expression "pcVar19 + 0x26f844" identifier + number_literal) ))))) )) (argument_list "(&uStack_f8)" ( (pointer_expression "&uStack_f8" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar11 + 0x3c);" (assignment_expression "puVar9 = *(undefined4 **)(iVar11 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar11 + 0x3c)" * (cast_expression "(undefined4 **)(iVar11 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x3c)" ( (binary_expression "iVar11 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_d4 = uStack_a4;" (assignment_expression "uStack_d4 = uStack_a4" identifier = identifier) ;) (expression_statement "uStack_d8 = uStack_a8;" (assignment_expression "uStack_d8 = uStack_a8" identifier = identifier) ;) (if_statement "if (puVar9 == *(undefined4 **)(iVar11 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }" if (parenthesized_expression "(puVar9 == *(undefined4 **)(iVar11 + 0x40))" ( (binary_expression "puVar9 == *(undefined4 **)(iVar11 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar11 + 0x40)" * (cast_expression "(undefined4 **)(iVar11 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x40)" ( (binary_expression "iVar11 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);" (call_expression "(**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8)" (parenthesized_expression "(**(code **)(pcStack_100 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_100 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_100 + -0x5ce0)" * (cast_expression "(code **)(pcStack_100 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_100 + -0x5ce0)" ( (binary_expression "pcStack_100 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar11 + 0x38,puVar9,&uStack_f8)" ( (binary_expression "iVar11 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_f8" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar11 + 0x3c);" (assignment_expression "puVar9 = *(undefined4 **)(iVar11 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar11 + 0x3c)" * (cast_expression "(undefined4 **)(iVar11 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x3c)" ( (binary_expression "iVar11 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }" else (compound_statement "{\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }" { (expression_statement "puVar1 = puVar9;" (assignment_expression "puVar1 = puVar9" identifier = identifier) ;) (expression_statement "puVar4 = &uStack_f8;" (assignment_expression "puVar4 = &uStack_f8" identifier = (pointer_expression "&uStack_f8" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);" do (compound_statement "{\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar4 = puVar6 + 4;" (assignment_expression "puVar4 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar16 = puVar6[1];" (assignment_expression "uVar16 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar6[2];" (assignment_expression "uVar13 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar6[3];" (assignment_expression "uVar3 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar6;" (assignment_expression "*puVar2 = *puVar6" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar2[1] = uVar16;" (assignment_expression "puVar2[1] = uVar16" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar13;" (assignment_expression "puVar2[2] = uVar13" (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_d8)" ( (binary_expression "puVar4 != &uStack_d8" identifier != (pointer_expression "&uStack_d8" & identifier)) )) ;) (expression_statement "puVar9 = puVar9 + 10;" (assignment_expression "puVar9 = puVar9 + 10" identifier = (binary_expression "puVar9 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar6[5];" (assignment_expression "uVar3 = puVar6[5]" identifier = (subscript_expression "puVar6[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 **)(iVar11 + 0x3c) = puVar9;" (assignment_expression "*(undefined4 **)(iVar11 + 0x3c) = puVar9" (pointer_expression "*(undefined4 **)(iVar11 + 0x3c)" * (cast_expression "(undefined4 **)(iVar11 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x3c)" ( (binary_expression "iVar11 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3;" (assignment_expression "iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3" identifier = (binary_expression "(int)puVar9 - *(int *)(iVar11 + 0x38) >> 3" (binary_expression "(int)puVar9 - *(int *)(iVar11 + 0x38)" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar11 + 0x38)" * (cast_expression "(int *)(iVar11 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x38)" ( (binary_expression "iVar11 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar11 + 0x20) << 1) {\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar11 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar11 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar11 + 0x20) << 1" (pointer_expression "*(int *)(iVar11 + 0x20)" * (cast_expression "(int *)(iVar11 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x20)" ( (binary_expression "iVar11 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;" (assignment_expression "*(int *)(iVar11 + 0x14) = iVar12 * 0x33333338" (pointer_expression "*(int *)(iVar11 + 0x14)" * (cast_expression "(int *)(iVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar12 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar11 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar11 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar11 + 0x10)" * (cast_expression "(undefined4 *)(iVar11 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar10 + 0x20)" * (cast_expression "(byte *)(iVar10 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar10 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar10 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar10 + 0x20)" * (cast_expression "(byte *)(iVar10 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 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 *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;" (assignment_expression "*(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1" (pointer_expression "*(int *)(iVar11 + 0x30)" * (cast_expression "(int *)(iVar11 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x30)" ( (binary_expression "iVar11 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar11 + 0x30) + 1" (pointer_expression "*(int *)(iVar11 + 0x30)" * (cast_expression "(int *)(iVar11 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x30)" ( (binary_expression "iVar11 + 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) = iVar12 * -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) = iVar12 * -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) = iVar12 * -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) = iVar12 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_f4 + 0x60) = iVar12 * -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 "iVar12 * -0x33333333 + -1" (binary_expression "iVar12 * -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 "pcVar19 = *(code **)(pcStack_100 + -0x7810);" (assignment_expression "pcVar19 = *(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 "iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;" (assignment_expression "iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c" identifier = (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 "pcVar20 = FUN_00252908;" (assignment_expression "pcVar20 = FUN_00252908" identifier = identifier) ;) (expression_statement "iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;" (assignment_expression "iVar12 = *(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 "(*pcVar19)(iVar12,0x231);" (call_expression "(*pcVar19)(iVar12,0x231)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar12,0x231)" ( identifier , number_literal ))) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = uStack_108;" (assignment_expression "uVar3 = uStack_108" identifier = identifier) ;) (expression_statement "puStack_130 = &uStack_f8;" (assignment_expression "puStack_130 = &uStack_f8" identifier = (pointer_expression "&uStack_f8" & identifier)) ;) (expression_statement "iStack_12c = iVar11;" (assignment_expression "iStack_12c = iVar11" identifier = identifier) ;) (expression_statement "iStack_128 = iVar10;" (assignment_expression "iStack_128 = iVar10" identifier = identifier) ;) (expression_statement "pcStack_124 = pcVar20;" (assignment_expression "pcStack_124 = pcVar20" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar19 + 0x271868))(&pcStack_158);" (call_expression "(**(code **)(pcVar19 + 0x271868))(&pcStack_158)" (parenthesized_expression "(**(code **)(pcVar19 + 0x271868))" ( (pointer_expression "**(code **)(pcVar19 + 0x271868)" * (pointer_expression "*(code **)(pcVar19 + 0x271868)" * (cast_expression "(code **)(pcVar19 + 0x271868)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x271868)" ( (binary_expression "pcVar19 + 0x271868" identifier + number_literal) ))))) )) (argument_list "(&pcStack_158)" ( (pointer_expression "&pcStack_158" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar12 + 0x3c);" (assignment_expression "puVar9 = *(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_134 = uStack_fc;" (assignment_expression "uStack_134 = uStack_fc" identifier = identifier) ;) (expression_statement "pcStack_138 = pcStack_100;" (assignment_expression "pcStack_138 = pcStack_100" identifier = identifier) ;) (if_statement "if (puVar9 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }" if (parenthesized_expression "(puVar9 == *(undefined4 **)(iVar12 + 0x40))" ( (binary_expression "puVar9 == *(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 **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);" (call_expression "(**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13)" (parenthesized_expression "(**(code **)(pcVar19 + 0x270c58))" ( (pointer_expression "**(code **)(pcVar19 + 0x270c58)" * (pointer_expression "*(code **)(pcVar19 + 0x270c58)" * (cast_expression "(code **)(pcVar19 + 0x270c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x270c58)" ( (binary_expression "pcVar19 + 0x270c58" identifier + number_literal) ))))) )) (argument_list "(iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13)" ( (binary_expression "iVar12 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&pcStack_158" & identifier) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar12 + 0x3c);" (assignment_expression "puVar9 = *(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 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }" else (compound_statement "{\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }" { (expression_statement "puVar1 = puVar9;" (assignment_expression "puVar1 = puVar9" identifier = identifier) ;) (expression_statement "ppcVar8 = &pcStack_158;" (assignment_expression "ppcVar8 = &pcStack_158" identifier = (pointer_expression "&pcStack_158" & identifier)) ;) (do_statement "do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);" do (compound_statement "{\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "ppcVar7 = ppcVar8;" (assignment_expression "ppcVar7 = ppcVar8" identifier = identifier) ;) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "ppcVar8 = ppcVar7 + 4;" (assignment_expression "ppcVar8 = ppcVar7 + 4" identifier = (binary_expression "ppcVar7 + 4" identifier + number_literal)) ;) (expression_statement "pcVar17 = ppcVar7[1];" (assignment_expression "pcVar17 = ppcVar7[1]" identifier = (subscript_expression "ppcVar7[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar15 = ppcVar7[2];" (assignment_expression "pcVar15 = ppcVar7[2]" identifier = (subscript_expression "ppcVar7[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar20 = ppcVar7[3];" (assignment_expression "pcVar20 = ppcVar7[3]" identifier = (subscript_expression "ppcVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *ppcVar7;" (assignment_expression "*puVar4 = *ppcVar7" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*ppcVar7" * identifier)) ;) (expression_statement "puVar4[1] = pcVar17;" (assignment_expression "puVar4[1] = pcVar17" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = pcVar15;" (assignment_expression "puVar4[2] = pcVar15" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = pcVar20;" (assignment_expression "puVar4[3] = pcVar20" (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 "(ppcVar8 != &pcStack_138)" ( (binary_expression "ppcVar8 != &pcStack_138" identifier != (pointer_expression "&pcStack_138" & identifier)) )) ;) (expression_statement "puVar9 = puVar9 + 10;" (assignment_expression "puVar9 = puVar9 + 10" identifier = (binary_expression "puVar9 + 10" identifier + number_literal)) ;) (expression_statement "pcVar20 = ppcVar7[5];" (assignment_expression "pcVar20 = ppcVar7[5]" identifier = (subscript_expression "ppcVar7[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *ppcVar8;" (assignment_expression "puVar4[4] = *ppcVar8" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*ppcVar8" * identifier)) ;) (expression_statement "puVar4[5] = pcVar20;" (assignment_expression "puVar4[5] = pcVar20" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(iVar12 + 0x3c) = puVar9;" (assignment_expression "*(undefined4 **)(iVar12 + 0x3c) = puVar9" (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 "iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3;" (assignment_expression "iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3" identifier = (binary_expression "(int)puVar9 - *(int *)(iVar12 + 0x38) >> 3" (binary_expression "(int)puVar9 - *(int *)(iVar12 + 0x38)" (cast_expression "(int)puVar9" ( (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) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 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) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar12 + 0x14) = iVar10 * 0x33333338;" (assignment_expression "*(int *)(iVar12 + 0x14) = iVar10 * 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 "iVar10 * 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 *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar14 + 0x20)" * (cast_expression "(byte *)(iVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar14 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar14 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar14 + 0x20)" * (cast_expression "(byte *)(iVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 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 *)(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_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -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) = iVar10 * -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) = iVar10 * -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) = iVar10 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_154 + 0x60) = iVar10 * -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 "iVar10 * -0x33333333 + -1" (binary_expression "iVar10 * -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 "(**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c);" (call_expression "(**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c)" (parenthesized_expression "(**(code **)(pcVar19 + 0x26f128))" ( (pointer_expression "**(code **)(pcVar19 + 0x26f128)" * (pointer_expression "*(code **)(pcVar19 + 0x26f128)" * (cast_expression "(code **)(pcVar19 + 0x26f128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x26f128)" ( (binary_expression "pcVar19 + 0x26f128" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c)" ( (binary_expression "*(int *)(pcVar19 + 0x26e974) + 0x3574" (pointer_expression "*(int *)(pcVar19 + 0x26e974)" * (cast_expression "(int *)(pcVar19 + 0x26e974)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x26e974)" ( (binary_expression "pcVar19 + 0x26e974" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar19 + 0x26f014) + -0x2b1c" (pointer_expression "*(int *)(pcVar19 + 0x26f014)" * (cast_expression "(int *)(pcVar19 + 0x26f014)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x26f014)" ( (binary_expression "pcVar19 + 0x26f014" 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 * 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 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 (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 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 * 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 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 = LIT) ;) (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 (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 = (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_002523f0(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  undefined4 *puVar6;\n  code **ppcVar7;\n  code **ppcVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  code *pcVar15;\n  undefined4 uVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  code *pcStack_138;\n  undefined4 uStack_134;\n  undefined4 *puStack_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  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_d8;\n  undefined4 uStack_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  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_004c4170)(&local_38,param_2,param_4,param_5);\n  puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar9 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar10 * 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) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = FUN_002525ac;\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 + 0x276c94;\n  uStack_a8 = 1;\n  uStack_ac = local_4c;\n  uStack_b0 = local_50;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar19;\n  (**(code **)(puVar18 + 0x26f9f4))(&uStack_98);\n  puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar9 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }\n  iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar11 * 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) = iVar11 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(puStack_a0 + -0x7810);\n  pcVar20 = FUN_0025275c;\n  iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar19 + 0x276ae4;\n  uStack_110 = uStack_b0;\n  uStack_108 = 0;\n  uStack_10c = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar20;\n  (**(code **)(pcVar19 + 0x26f844))(&uStack_f8);\n  puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  uStack_d4 = uStack_a4;\n  uStack_d8 = uStack_a8;\n  if (puVar9 == *(undefined4 **)(iVar11 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }\n  iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar11 + 0x20) << 1) {\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(pcStack_100 + -0x7810);\n  iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;\n  pcVar20 = FUN_00252908;\n  iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar12,0x231);\n  uVar13 = 0;\n  uVar3 = uStack_108;\n  puStack_130 = &uStack_f8;\n  iStack_12c = iVar11;\n  iStack_128 = iVar10;\n  pcStack_124 = pcVar20;\n  (**(code **)(pcVar19 + 0x271868))(&pcStack_158);\n  puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_134 = uStack_fc;\n  pcStack_138 = pcStack_100;\n  if (puVar9 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_002523f0(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_002523f0") (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  undefined4 *puVar6;\n  code **ppcVar7;\n  code **ppcVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  code *pcVar15;\n  undefined4 uVar16;\n  code *pcVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcStack_158;\n  int iStack_154;\n  int iStack_144;\n  int iStack_140;\n  code *pcStack_138;\n  undefined4 uStack_134;\n  undefined4 *puStack_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  undefined4 uStack_fc;\n  undefined4 uStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined4 uStack_d8;\n  undefined4 uStack_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  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_004c4170)(&local_38,param_2,param_4,param_5);\n  puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar9 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar10 * 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) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = FUN_002525ac;\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 + 0x276c94;\n  uStack_a8 = 1;\n  uStack_ac = local_4c;\n  uStack_b0 = local_50;\n  puStack_70 = &local_38;\n  iStack_6c = param_1;\n  iStack_68 = param_3;\n  pcStack_64 = pcVar19;\n  (**(code **)(puVar18 + 0x26f9f4))(&uStack_98);\n  puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n  iStack_74 = iStack_44;\n  uStack_78 = local_48;\n  if (puVar9 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }\n  iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3;\n  if (-1 < *(int *)(puVar5 + 0x20) << 1) {\n    *(int *)(puVar5 + 0x14) = iVar11 * 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) = iVar11 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(puStack_a0 + -0x7810);\n  pcVar20 = FUN_0025275c;\n  iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar19 + 0x276ae4;\n  uStack_110 = uStack_b0;\n  uStack_108 = 0;\n  uStack_10c = uStack_ac;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar5;\n  iStack_c8 = param_10;\n  pcStack_c4 = pcVar20;\n  (**(code **)(pcVar19 + 0x26f844))(&uStack_f8);\n  puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  uStack_d4 = uStack_a4;\n  uStack_d8 = uStack_a8;\n  if (puVar9 == *(undefined4 **)(iVar11 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }\n  iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar11 + 0x20) << 1) {\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar19 = *(code **)(pcStack_100 + -0x7810);\n  iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;\n  pcVar20 = FUN_00252908;\n  iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar19)(iVar12,0x231);\n  uVar13 = 0;\n  uVar3 = uStack_108;\n  puStack_130 = &uStack_f8;\n  iStack_12c = iVar11;\n  iStack_128 = iVar10;\n  pcStack_124 = pcVar20;\n  (**(code **)(pcVar19 + 0x271868))(&pcStack_158);\n  puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  uStack_134 = uStack_fc;\n  pcStack_138 = pcStack_100;\n  if (puVar9 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }\n  iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar12 + 0x20) << 1) {\n    *(int *)(iVar12 + 0x14) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }\n  (**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -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 "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "code **ppcVar7;" (type_identifier "code") (pointer_declarator "**ppcVar7" (* "*") (pointer_declarator "*ppcVar7" (* "*") (identifier "ppcVar7"))) (; ";")) (declaration "code **ppcVar8;" (type_identifier "code") (pointer_declarator "**ppcVar8" (* "*") (pointer_declarator "*ppcVar8" (* "*") (identifier "ppcVar8"))) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "code *pcVar15;" (type_identifier "code") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "code *pcVar17;" (type_identifier "code") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "undefined *puVar18;" (type_identifier "undefined") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "code *pcVar19;" (type_identifier "code") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "code *pcStack_158;" (type_identifier "code") (pointer_declarator "*pcStack_158" (* "*") (identifier "pcStack_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 "code *pcStack_138;" (type_identifier "code") (pointer_declarator "*pcStack_138" (* "*") (identifier "pcStack_138")) (; ";")) (declaration "undefined4 uStack_134;" (type_identifier "undefined4") (identifier "uStack_134") (; ";")) (declaration "undefined4 *puStack_130;" (type_identifier "undefined4") (pointer_declarator "*puStack_130" (* "*") (identifier "puStack_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 "undefined4 uStack_fc;" (type_identifier "undefined4") (identifier "uStack_fc") (; ";")) (declaration "undefined4 uStack_f8;" (type_identifier "undefined4") (identifier "uStack_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 "undefined4 uStack_d8;" (type_identifier "undefined4") (identifier "uStack_d8") (; ";")) (declaration "undefined4 uStack_d4;" (type_identifier "undefined4") (identifier "uStack_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 "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_004c4170)(&local_38,param_2,param_4,param_5);" (call_expression "(*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5)" (parenthesized_expression "(*(code *)PTR_Output_reloc_004c4170)" (( "(") (pointer_expression "*(code *)PTR_Output_reloc_004c4170" (* "*") (cast_expression "(code *)PTR_Output_reloc_004c4170" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_Output_reloc_004c4170"))) () ")")) (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 "puVar9 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar9 = *(undefined4 **)(param_1 + 0x3c)" (identifier "puVar9") (= "=") (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 (puVar9 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }" (if "if") (parenthesized_expression "(puVar9 == *(undefined4 **)(param_1 + 0x40))" (( "(") (binary_expression "puVar9 == *(undefined4 **)(param_1 + 0x40)" (identifier "puVar9") (== "==") (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,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);\n    puVar9 = *(undefined4 **)(param_1 + 0x3c);\n  }" ({ "{") (expression_statement "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38);" (call_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar9,&local_38)" (parenthesized_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)" (( "(") (comma_expression "*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560" (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,false>const&>_004c3560" (true "true") (, ",") (comma_expression "64,false>const&>_004c3560" (number_literal "64") (, ",") (binary_expression "false>const&>_004c3560" (binary_expression "false>const" (false "false") (> ">") (identifier "const")) (ERROR "&" (& "&")) (> ">") (identifier "_004c3560"))))) () ")")) (argument_list "(param_1 + 0x38,puVar9,&local_38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) (, ",") (identifier "puVar9") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (expression_statement "puVar9 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar9 = *(undefined4 **)(param_1 + 0x3c)" (identifier "puVar9") (= "=") (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 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }" (else "else") (compound_statement "{\n    puVar1 = puVar9;\n    puVar4 = &local_38;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar9;\n  }" ({ "{") (expression_statement "puVar1 = puVar9;" (assignment_expression "puVar1 = puVar9" (identifier "puVar1") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar4 = &local_38;" (assignment_expression "puVar4 = &local_38" (identifier "puVar4") (= "=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (; ";")) (do_statement "do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &local_18);" (do "do") (compound_statement "{\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      param_10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = param_10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" ({ "{") (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" (identifier "puVar6") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" (identifier "puVar2") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar4 = puVar6 + 4;" (assignment_expression "puVar4 = puVar6 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "param_10 = puVar6[1];" (assignment_expression "param_10 = puVar6[1]" (identifier "param_10") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar13 = puVar6[2];" (assignment_expression "uVar13 = puVar6[2]" (identifier "uVar13") (= "=") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar3 = puVar6[3];" (assignment_expression "uVar3 = puVar6[3]" (identifier "uVar3") (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar2 = *puVar6;" (assignment_expression "*puVar2 = *puVar6" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (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] = uVar13;" (assignment_expression "puVar2[2] = uVar13" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (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 "puVar9 = puVar9 + 10;" (assignment_expression "puVar9 = puVar9 + 10" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 10" (identifier "puVar9") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "uVar3 = puVar6[5];" (assignment_expression "uVar3 = puVar6[5]" (identifier "uVar3") (= "=") (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (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) = puVar9;" (assignment_expression "*(undefined4 **)(param_1 + 0x3c) = puVar9" (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 "puVar9")) (; ";")) (} "}")))) (expression_statement "iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3;" (assignment_expression "iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3" (identifier "iVar10") (= "=") (binary_expression "(int)puVar9 - *(int *)(param_1 + 0x38) >> 3" (binary_expression "(int)puVar9 - *(int *)(param_1 + 0x38)" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (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) = iVar10 * 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) = iVar10 * -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) = iVar10 * 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) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" ({ "{") (expression_statement "*(int *)(param_1 + 0x14) = iVar10 * 0x33333338;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar10 * 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 "iVar10 * 0x33333338" (identifier "iVar10") (* "*") (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) = iVar10 * -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) = iVar10 * -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) = iVar10 * -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) = iVar10 * -0x33333333 + -1;\n      }" ({ "{") (expression_statement "*(int *)(local_34 + 0x60) = iVar10 * -0x33333333 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar10 * -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 "iVar10 * -0x33333333 + -1" (binary_expression "iVar10 * -0x33333333" (identifier "iVar10") (* "*") (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 "pcVar19 = FUN_002525ac;" (assignment_expression "pcVar19 = FUN_002525ac" (identifier "pcVar19") (= "=") (identifier "FUN_002525ac")) (; ";")) (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 + 0x276c94;" (assignment_expression "puStack_a0 = puVar18 + 0x276c94" (identifier "puStack_a0") (= "=") (binary_expression "puVar18 + 0x276c94" (identifier "puVar18") (+ "+") (number_literal "0x276c94"))) (; ";")) (expression_statement "uStack_a8 = 1;" (assignment_expression "uStack_a8 = 1" (identifier "uStack_a8") (= "=") (number_literal "1")) (; ";")) (expression_statement "uStack_ac = local_4c;" (assignment_expression "uStack_ac = local_4c" (identifier "uStack_ac") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "uStack_b0 = local_50;" (assignment_expression "uStack_b0 = local_50" (identifier "uStack_b0") (= "=") (identifier "local_50")) (; ";")) (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 = pcVar19;" (assignment_expression "pcStack_64 = pcVar19" (identifier "pcStack_64") (= "=") (identifier "pcVar19")) (; ";")) (expression_statement "(**(code **)(puVar18 + 0x26f9f4))(&uStack_98);" (call_expression "(**(code **)(puVar18 + 0x26f9f4))(&uStack_98)" (parenthesized_expression "(**(code **)(puVar18 + 0x26f9f4))" (( "(") (pointer_expression "**(code **)(puVar18 + 0x26f9f4)" (* "*") (pointer_expression "*(code **)(puVar18 + 0x26f9f4)" (* "*") (cast_expression "(code **)(puVar18 + 0x26f9f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x26f9f4)" (( "(") (binary_expression "puVar18 + 0x26f9f4" (identifier "puVar18") (+ "+") (number_literal "0x26f9f4")) () ")"))))) () ")")) (argument_list "(&uStack_98)" (( "(") (pointer_expression "&uStack_98" (& "&") (identifier "uStack_98")) () ")"))) (; ";")) (expression_statement "puVar9 = *(undefined4 **)(puVar5 + 0x3c);" (assignment_expression "puVar9 = *(undefined4 **)(puVar5 + 0x3c)" (identifier "puVar9") (= "=") (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 (puVar9 == *(undefined4 **)(puVar5 + 0x40)) {\n    (**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }" (if "if") (parenthesized_expression "(puVar9 == *(undefined4 **)(puVar5 + 0x40))" (( "(") (binary_expression "puVar9 == *(undefined4 **)(puVar5 + 0x40)" (identifier "puVar9") (== "==") (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 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);\n    puVar9 = *(undefined4 **)(puVar5 + 0x3c);\n    iVar10 = iStack_44;\n  }" ({ "{") (expression_statement "(**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);" (call_expression "(**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98)" (parenthesized_expression "(**(code **)(puStack_a0 + -0x5ce0))" (( "(") (pointer_expression "**(code **)(puStack_a0 + -0x5ce0)" (* "*") (pointer_expression "*(code **)(puStack_a0 + -0x5ce0)" (* "*") (cast_expression "(code **)(puStack_a0 + -0x5ce0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_a0 + -0x5ce0)" (( "(") (binary_expression "puStack_a0 + -0x5ce0" (identifier "puStack_a0") (+ "+") (number_literal "-0x5ce0")) () ")"))))) () ")")) (argument_list "(puVar5 + 0x38,puVar9,&uStack_98)" (( "(") (binary_expression "puVar5 + 0x38" (identifier "puVar5") (+ "+") (number_literal "0x38")) (, ",") (identifier "puVar9") (, ",") (pointer_expression "&uStack_98" (& "&") (identifier "uStack_98")) () ")"))) (; ";")) (expression_statement "puVar9 = *(undefined4 **)(puVar5 + 0x3c);" (assignment_expression "puVar9 = *(undefined4 **)(puVar5 + 0x3c)" (identifier "puVar9") (= "=") (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 "iVar10 = iStack_44;" (assignment_expression "iVar10 = iStack_44" (identifier "iVar10") (= "=") (identifier "iStack_44")) (; ";")) (} "}")) (else_clause "else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }" (else "else") (compound_statement "{\n    puVar1 = puVar9;\n    puVar4 = &uStack_98;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(puVar5 + 0x3c) = puVar9;\n  }" ({ "{") (expression_statement "puVar1 = puVar9;" (assignment_expression "puVar1 = puVar9" (identifier "puVar1") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar4 = &uStack_98;" (assignment_expression "puVar4 = &uStack_98" (identifier "puVar4") (= "=") (pointer_expression "&uStack_98" (& "&") (identifier "uStack_98"))) (; ";")) (do_statement "do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_78);" (do "do") (compound_statement "{\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      iVar10 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = iVar10;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" ({ "{") (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" (identifier "puVar6") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" (identifier "puVar2") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar4 = puVar6 + 4;" (assignment_expression "puVar4 = puVar6 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar10 = puVar6[1];" (assignment_expression "iVar10 = puVar6[1]" (identifier "iVar10") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar13 = puVar6[2];" (assignment_expression "uVar13 = puVar6[2]" (identifier "uVar13") (= "=") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar3 = puVar6[3];" (assignment_expression "uVar3 = puVar6[3]" (identifier "uVar3") (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar2 = *puVar6;" (assignment_expression "*puVar2 = *puVar6" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "puVar2[1] = iVar10;" (assignment_expression "puVar2[1] = iVar10" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "puVar2[2] = uVar13;" (assignment_expression "puVar2[2] = uVar13" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (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 "puVar9 = puVar9 + 10;" (assignment_expression "puVar9 = puVar9 + 10" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 10" (identifier "puVar9") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "uVar3 = puVar6[5];" (assignment_expression "uVar3 = puVar6[5]" (identifier "uVar3") (= "=") (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (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) = puVar9;" (assignment_expression "*(undefined4 **)(puVar5 + 0x3c) = puVar9" (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 "puVar9")) (; ";")) (} "}")))) (expression_statement "iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3;" (assignment_expression "iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3" (identifier "iVar11") (= "=") (binary_expression "(int)puVar9 - *(int *)(puVar5 + 0x38) >> 3" (binary_expression "(int)puVar9 - *(int *)(puVar5 + 0x38)" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (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) = iVar11 * 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) = iVar11 * -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) = iVar11 * 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) = iVar11 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;\n    }\n    return;\n  }" ({ "{") (expression_statement "*(int *)(puVar5 + 0x14) = iVar11 * 0x33333338;" (assignment_expression "*(int *)(puVar5 + 0x14) = iVar11 * 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 "iVar11 * 0x33333338" (identifier "iVar11") (* "*") (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) = iVar11 * -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) = iVar11 * -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) = iVar11 * -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) = iVar11 * -0x33333333 + -1;\n      }" ({ "{") (expression_statement "*(int *)(iStack_94 + 0x60) = iVar11 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_94 + 0x60) = iVar11 * -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 "iVar11 * -0x33333333 + -1" (binary_expression "iVar11 * -0x33333333" (identifier "iVar11") (* "*") (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 "pcVar19 = *(code **)(puStack_a0 + -0x7810);" (assignment_expression "pcVar19 = *(code **)(puStack_a0 + -0x7810)" (identifier "pcVar19") (= "=") (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 "pcVar20 = FUN_0025275c;" (assignment_expression "pcVar20 = FUN_0025275c" (identifier "pcVar20") (= "=") (identifier "FUN_0025275c")) (; ";")) (expression_statement "iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574" (identifier "iVar11") (= "=") (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 "(*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar19)" (( "(") (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) () ")")) (argument_list "(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c)" (( "(") (identifier "iVar11") (, ",") (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 = pcVar19 + 0x276ae4;" (assignment_expression "pcStack_100 = pcVar19 + 0x276ae4" (identifier "pcStack_100") (= "=") (binary_expression "pcVar19 + 0x276ae4" (identifier "pcVar19") (+ "+") (number_literal "0x276ae4"))) (; ";")) (expression_statement "uStack_110 = uStack_b0;" (assignment_expression "uStack_110 = uStack_b0" (identifier "uStack_110") (= "=") (identifier "uStack_b0")) (; ";")) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" (identifier "uStack_108") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_10c = uStack_ac;" (assignment_expression "uStack_10c = uStack_ac" (identifier "uStack_10c") (= "=") (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 = pcVar20;" (assignment_expression "pcStack_c4 = pcVar20" (identifier "pcStack_c4") (= "=") (identifier "pcVar20")) (; ";")) (expression_statement "(**(code **)(pcVar19 + 0x26f844))(&uStack_f8);" (call_expression "(**(code **)(pcVar19 + 0x26f844))(&uStack_f8)" (parenthesized_expression "(**(code **)(pcVar19 + 0x26f844))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x26f844)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x26f844)" (* "*") (cast_expression "(code **)(pcVar19 + 0x26f844)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x26f844)" (( "(") (binary_expression "pcVar19 + 0x26f844" (identifier "pcVar19") (+ "+") (number_literal "0x26f844")) () ")"))))) () ")")) (argument_list "(&uStack_f8)" (( "(") (pointer_expression "&uStack_f8" (& "&") (identifier "uStack_f8")) () ")"))) (; ";")) (expression_statement "puVar9 = *(undefined4 **)(iVar11 + 0x3c);" (assignment_expression "puVar9 = *(undefined4 **)(iVar11 + 0x3c)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined4 **)(iVar11 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar11 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x3c)" (( "(") (binary_expression "iVar11 + 0x3c" (identifier "iVar11") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "uStack_d4 = uStack_a4;" (assignment_expression "uStack_d4 = uStack_a4" (identifier "uStack_d4") (= "=") (identifier "uStack_a4")) (; ";")) (expression_statement "uStack_d8 = uStack_a8;" (assignment_expression "uStack_d8 = uStack_a8" (identifier "uStack_d8") (= "=") (identifier "uStack_a8")) (; ";")) (if_statement "if (puVar9 == *(undefined4 **)(iVar11 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }" (if "if") (parenthesized_expression "(puVar9 == *(undefined4 **)(iVar11 + 0x40))" (( "(") (binary_expression "puVar9 == *(undefined4 **)(iVar11 + 0x40)" (identifier "puVar9") (== "==") (pointer_expression "*(undefined4 **)(iVar11 + 0x40)" (* "*") (cast_expression "(undefined4 **)(iVar11 + 0x40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x40)" (( "(") (binary_expression "iVar11 + 0x40" (identifier "iVar11") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (compound_statement "{\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);\n    puVar9 = *(undefined4 **)(iVar11 + 0x3c);\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);" (call_expression "(**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8)" (parenthesized_expression "(**(code **)(pcStack_100 + -0x5ce0))" (( "(") (pointer_expression "**(code **)(pcStack_100 + -0x5ce0)" (* "*") (pointer_expression "*(code **)(pcStack_100 + -0x5ce0)" (* "*") (cast_expression "(code **)(pcStack_100 + -0x5ce0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_100 + -0x5ce0)" (( "(") (binary_expression "pcStack_100 + -0x5ce0" (identifier "pcStack_100") (+ "+") (number_literal "-0x5ce0")) () ")"))))) () ")")) (argument_list "(iVar11 + 0x38,puVar9,&uStack_f8)" (( "(") (binary_expression "iVar11 + 0x38" (identifier "iVar11") (+ "+") (number_literal "0x38")) (, ",") (identifier "puVar9") (, ",") (pointer_expression "&uStack_f8" (& "&") (identifier "uStack_f8")) () ")"))) (; ";")) (expression_statement "puVar9 = *(undefined4 **)(iVar11 + 0x3c);" (assignment_expression "puVar9 = *(undefined4 **)(iVar11 + 0x3c)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined4 **)(iVar11 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar11 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x3c)" (( "(") (binary_expression "iVar11 + 0x3c" (identifier "iVar11") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }" (else "else") (compound_statement "{\n    puVar1 = puVar9;\n    puVar4 = &uStack_f8;\n    do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);\n    puVar9 = puVar9 + 10;\n    uVar3 = puVar6[5];\n    puVar2[4] = *puVar4;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(iVar11 + 0x3c) = puVar9;\n  }" ({ "{") (expression_statement "puVar1 = puVar9;" (assignment_expression "puVar1 = puVar9" (identifier "puVar1") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar4 = &uStack_f8;" (assignment_expression "puVar4 = &uStack_f8" (identifier "puVar4") (= "=") (pointer_expression "&uStack_f8" (& "&") (identifier "uStack_f8"))) (; ";")) (do_statement "do {\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar4 != &uStack_d8);" (do "do") (compound_statement "{\n      puVar6 = puVar4;\n      puVar2 = puVar1;\n      puVar4 = puVar6 + 4;\n      uVar16 = puVar6[1];\n      uVar13 = puVar6[2];\n      uVar3 = puVar6[3];\n      *puVar2 = *puVar6;\n      puVar2[1] = uVar16;\n      puVar2[2] = uVar13;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" ({ "{") (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" (identifier "puVar6") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" (identifier "puVar2") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar4 = puVar6 + 4;" (assignment_expression "puVar4 = puVar6 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar16 = puVar6[1];" (assignment_expression "uVar16 = puVar6[1]" (identifier "uVar16") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar13 = puVar6[2];" (assignment_expression "uVar13 = puVar6[2]" (identifier "uVar13") (= "=") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar3 = puVar6[3];" (assignment_expression "uVar3 = puVar6[3]" (identifier "uVar3") (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar2 = *puVar6;" (assignment_expression "*puVar2 = *puVar6" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "puVar2[1] = uVar16;" (assignment_expression "puVar2[1] = uVar16" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "puVar2[2] = uVar13;" (assignment_expression "puVar2[2] = uVar13" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (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_d8)" (( "(") (binary_expression "puVar4 != &uStack_d8" (identifier "puVar4") (!= "!=") (pointer_expression "&uStack_d8" (& "&") (identifier "uStack_d8"))) () ")")) (; ";")) (expression_statement "puVar9 = puVar9 + 10;" (assignment_expression "puVar9 = puVar9 + 10" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 10" (identifier "puVar9") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "uVar3 = puVar6[5];" (assignment_expression "uVar3 = puVar6[5]" (identifier "uVar3") (= "=") (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (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 **)(iVar11 + 0x3c) = puVar9;" (assignment_expression "*(undefined4 **)(iVar11 + 0x3c) = puVar9" (pointer_expression "*(undefined4 **)(iVar11 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar11 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x3c)" (( "(") (binary_expression "iVar11 + 0x3c" (identifier "iVar11") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (} "}")))) (expression_statement "iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3;" (assignment_expression "iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3" (identifier "iVar12") (= "=") (binary_expression "(int)puVar9 - *(int *)(iVar11 + 0x38) >> 3" (binary_expression "(int)puVar9 - *(int *)(iVar11 + 0x38)" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (pointer_expression "*(int *)(iVar11 + 0x38)" (* "*") (cast_expression "(int *)(iVar11 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x38)" (( "(") (binary_expression "iVar11 + 0x38" (identifier "iVar11") (+ "+") (number_literal "0x38")) () ")"))))) (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if (-1 < *(int *)(iVar11 + 0x20) << 1) {\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(-1 < *(int *)(iVar11 + 0x20) << 1)" (( "(") (binary_expression "-1 < *(int *)(iVar11 + 0x20) << 1" (number_literal "-1") (< "<") (binary_expression "*(int *)(iVar11 + 0x20) << 1" (pointer_expression "*(int *)(iVar11 + 0x20)" (* "*") (cast_expression "(int *)(iVar11 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x20)" (( "(") (binary_expression "iVar11 + 0x20" (identifier "iVar11") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "1"))) () ")")) (compound_statement "{\n    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;\n    *(undefined4 *)(iVar11 + 0x10) = 0;\n    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;\n    if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }\n    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {\n      if (*(int *)(iStack_f4 + 100) == 0) {\n        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;\n    }\n    return;\n  }" ({ "{") (expression_statement "*(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;" (assignment_expression "*(int *)(iVar11 + 0x14) = iVar12 * 0x33333338" (pointer_expression "*(int *)(iVar11 + 0x14)" (* "*") (cast_expression "(int *)(iVar11 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar12 * 0x33333338" (identifier "iVar12") (* "*") (number_literal "0x33333338"))) (; ";")) (expression_statement "*(undefined4 *)(iVar11 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar11 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar11 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar10 + 0x20)" (* "*") (cast_expression "(byte *)(iVar10 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x20)" (( "(") (binary_expression "iVar10 + 0x20" (identifier "iVar10") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar10 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar10 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar10 + 0x20)" (* "*") (cast_expression "(byte *)(iVar10 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x20)" (( "(") (binary_expression "iVar10 + 0x20" (identifier "iVar10") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "0xf7")) (| "|") (number_literal "8"))) (; ";")) (if_statement "if (iStack_e4 << 0x1c < 0) {\n      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 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 *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;\n    }" ({ "{") (expression_statement "*(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;" (assignment_expression "*(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1" (pointer_expression "*(int *)(iVar11 + 0x30)" (* "*") (cast_expression "(int *)(iVar11 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x30)" (( "(") (binary_expression "iVar11 + 0x30" (identifier "iVar11") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "*(int *)(iVar11 + 0x30) + 1" (pointer_expression "*(int *)(iVar11 + 0x30)" (* "*") (cast_expression "(int *)(iVar11 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x30)" (( "(") (binary_expression "iVar11 + 0x30" (identifier "iVar11") (+ "+") (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) = iVar12 * -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) = iVar12 * -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) = iVar12 * -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) = iVar12 * -0x33333333 + -1;\n      }" ({ "{") (expression_statement "*(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_f4 + 0x60) = iVar12 * -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 "iVar12 * -0x33333333 + -1" (binary_expression "iVar12 * -0x33333333" (identifier "iVar12") (* "*") (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 "pcVar19 = *(code **)(pcStack_100 + -0x7810);" (assignment_expression "pcVar19 = *(code **)(pcStack_100 + -0x7810)" (identifier "pcVar19") (= "=") (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 "iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;" (assignment_expression "iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c" (identifier "iVar14") (= "=") (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 "pcVar20 = FUN_00252908;" (assignment_expression "pcVar20 = FUN_00252908" (identifier "pcVar20") (= "=") (identifier "FUN_00252908")) (; ";")) (expression_statement "iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;" (assignment_expression "iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574" (identifier "iVar12") (= "=") (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 "(*pcVar19)(iVar12,0x231);" (call_expression "(*pcVar19)(iVar12,0x231)" (parenthesized_expression "(*pcVar19)" (( "(") (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) () ")")) (argument_list "(iVar12,0x231)" (( "(") (identifier "iVar12") (, ",") (number_literal "0x231") () ")"))) (; ";")) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = uStack_108;" (assignment_expression "uVar3 = uStack_108" (identifier "uVar3") (= "=") (identifier "uStack_108")) (; ";")) (expression_statement "puStack_130 = &uStack_f8;" (assignment_expression "puStack_130 = &uStack_f8" (identifier "puStack_130") (= "=") (pointer_expression "&uStack_f8" (& "&") (identifier "uStack_f8"))) (; ";")) (expression_statement "iStack_12c = iVar11;" (assignment_expression "iStack_12c = iVar11" (identifier "iStack_12c") (= "=") (identifier "iVar11")) (; ";")) (expression_statement "iStack_128 = iVar10;" (assignment_expression "iStack_128 = iVar10" (identifier "iStack_128") (= "=") (identifier "iVar10")) (; ";")) (expression_statement "pcStack_124 = pcVar20;" (assignment_expression "pcStack_124 = pcVar20" (identifier "pcStack_124") (= "=") (identifier "pcVar20")) (; ";")) (expression_statement "(**(code **)(pcVar19 + 0x271868))(&pcStack_158);" (call_expression "(**(code **)(pcVar19 + 0x271868))(&pcStack_158)" (parenthesized_expression "(**(code **)(pcVar19 + 0x271868))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x271868)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x271868)" (* "*") (cast_expression "(code **)(pcVar19 + 0x271868)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x271868)" (( "(") (binary_expression "pcVar19 + 0x271868" (identifier "pcVar19") (+ "+") (number_literal "0x271868")) () ")"))))) () ")")) (argument_list "(&pcStack_158)" (( "(") (pointer_expression "&pcStack_158" (& "&") (identifier "pcStack_158")) () ")"))) (; ";")) (expression_statement "puVar9 = *(undefined4 **)(iVar12 + 0x3c);" (assignment_expression "puVar9 = *(undefined4 **)(iVar12 + 0x3c)" (identifier "puVar9") (= "=") (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_134 = uStack_fc;" (assignment_expression "uStack_134 = uStack_fc" (identifier "uStack_134") (= "=") (identifier "uStack_fc")) (; ";")) (expression_statement "pcStack_138 = pcStack_100;" (assignment_expression "pcStack_138 = pcStack_100" (identifier "pcStack_138") (= "=") (identifier "pcStack_100")) (; ";")) (if_statement "if (puVar9 == *(undefined4 **)(iVar12 + 0x40)) {\n    (**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }\n  else {\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }" (if "if") (parenthesized_expression "(puVar9 == *(undefined4 **)(iVar12 + 0x40))" (( "(") (binary_expression "puVar9 == *(undefined4 **)(iVar12 + 0x40)" (identifier "puVar9") (== "==") (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 **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);\n    puVar9 = *(undefined4 **)(iVar12 + 0x3c);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);" (call_expression "(**(code **)(pcVar19 + 0x270c58))\n              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13)" (parenthesized_expression "(**(code **)(pcVar19 + 0x270c58))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x270c58)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x270c58)" (* "*") (cast_expression "(code **)(pcVar19 + 0x270c58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x270c58)" (( "(") (binary_expression "pcVar19 + 0x270c58" (identifier "pcVar19") (+ "+") (number_literal "0x270c58")) () ")"))))) () ")")) (argument_list "(iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13)" (( "(") (binary_expression "iVar12 + 0x38" (identifier "iVar12") (+ "+") (number_literal "0x38")) (, ",") (identifier "puVar9") (, ",") (pointer_expression "&pcStack_158" (& "&") (identifier "pcStack_158")) (, ",") (identifier "uStack_fc") (, ",") (identifier "uVar3") (, ",") (identifier "uStack_104") (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "puVar9 = *(undefined4 **)(iVar12 + 0x3c);" (assignment_expression "puVar9 = *(undefined4 **)(iVar12 + 0x3c)" (identifier "puVar9") (= "=") (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 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }" (else "else") (compound_statement "{\n    puVar1 = puVar9;\n    ppcVar8 = &pcStack_158;\n    do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);\n    puVar9 = puVar9 + 10;\n    pcVar20 = ppcVar7[5];\n    puVar4[4] = *ppcVar8;\n    puVar4[5] = pcVar20;\n    *(undefined4 **)(iVar12 + 0x3c) = puVar9;\n  }" ({ "{") (expression_statement "puVar1 = puVar9;" (assignment_expression "puVar1 = puVar9" (identifier "puVar1") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "ppcVar8 = &pcStack_158;" (assignment_expression "ppcVar8 = &pcStack_158" (identifier "ppcVar8") (= "=") (pointer_expression "&pcStack_158" (& "&") (identifier "pcStack_158"))) (; ";")) (do_statement "do {\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    } while (ppcVar8 != &pcStack_138);" (do "do") (compound_statement "{\n      ppcVar7 = ppcVar8;\n      puVar4 = puVar1;\n      ppcVar8 = ppcVar7 + 4;\n      pcVar17 = ppcVar7[1];\n      pcVar15 = ppcVar7[2];\n      pcVar20 = ppcVar7[3];\n      *puVar4 = *ppcVar7;\n      puVar4[1] = pcVar17;\n      puVar4[2] = pcVar15;\n      puVar4[3] = pcVar20;\n      puVar1 = puVar4 + 4;\n    }" ({ "{") (expression_statement "ppcVar7 = ppcVar8;" (assignment_expression "ppcVar7 = ppcVar8" (identifier "ppcVar7") (= "=") (identifier "ppcVar8")) (; ";")) (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" (identifier "puVar4") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "ppcVar8 = ppcVar7 + 4;" (assignment_expression "ppcVar8 = ppcVar7 + 4" (identifier "ppcVar8") (= "=") (binary_expression "ppcVar7 + 4" (identifier "ppcVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pcVar17 = ppcVar7[1];" (assignment_expression "pcVar17 = ppcVar7[1]" (identifier "pcVar17") (= "=") (subscript_expression "ppcVar7[1]" (identifier "ppcVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar15 = ppcVar7[2];" (assignment_expression "pcVar15 = ppcVar7[2]" (identifier "pcVar15") (= "=") (subscript_expression "ppcVar7[2]" (identifier "ppcVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar20 = ppcVar7[3];" (assignment_expression "pcVar20 = ppcVar7[3]" (identifier "pcVar20") (= "=") (subscript_expression "ppcVar7[3]" (identifier "ppcVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar4 = *ppcVar7;" (assignment_expression "*puVar4 = *ppcVar7" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*ppcVar7" (* "*") (identifier "ppcVar7"))) (; ";")) (expression_statement "puVar4[1] = pcVar17;" (assignment_expression "puVar4[1] = pcVar17" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "pcVar17")) (; ";")) (expression_statement "puVar4[2] = pcVar15;" (assignment_expression "puVar4[2] = pcVar15" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "pcVar15")) (; ";")) (expression_statement "puVar4[3] = pcVar20;" (assignment_expression "puVar4[3] = pcVar20" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "pcVar20")) (; ";")) (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 "(ppcVar8 != &pcStack_138)" (( "(") (binary_expression "ppcVar8 != &pcStack_138" (identifier "ppcVar8") (!= "!=") (pointer_expression "&pcStack_138" (& "&") (identifier "pcStack_138"))) () ")")) (; ";")) (expression_statement "puVar9 = puVar9 + 10;" (assignment_expression "puVar9 = puVar9 + 10" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 10" (identifier "puVar9") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "pcVar20 = ppcVar7[5];" (assignment_expression "pcVar20 = ppcVar7[5]" (identifier "pcVar20") (= "=") (subscript_expression "ppcVar7[5]" (identifier "ppcVar7") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar4[4] = *ppcVar8;" (assignment_expression "puVar4[4] = *ppcVar8" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*ppcVar8" (* "*") (identifier "ppcVar8"))) (; ";")) (expression_statement "puVar4[5] = pcVar20;" (assignment_expression "puVar4[5] = pcVar20" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "pcVar20")) (; ";")) (expression_statement "*(undefined4 **)(iVar12 + 0x3c) = puVar9;" (assignment_expression "*(undefined4 **)(iVar12 + 0x3c) = puVar9" (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 "puVar9")) (; ";")) (} "}")))) (expression_statement "iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3;" (assignment_expression "iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3" (identifier "iVar10") (= "=") (binary_expression "(int)puVar9 - *(int *)(iVar12 + 0x38) >> 3" (binary_expression "(int)puVar9 - *(int *)(iVar12 + 0x38)" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (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) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 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) = iVar10 * 0x33333338;\n    *(undefined4 *)(iVar12 + 0x10) = 0;\n    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;\n    if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;\n    }\n    if ((iStack_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;\n    }\n    return;\n  }" ({ "{") (expression_statement "*(int *)(iVar12 + 0x14) = iVar10 * 0x33333338;" (assignment_expression "*(int *)(iVar12 + 0x14) = iVar10 * 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 "iVar10 * 0x33333338" (identifier "iVar10") (* "*") (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 *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar14 + 0x20)" (* "*") (cast_expression "(byte *)(iVar14 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x20)" (( "(") (binary_expression "iVar14 + 0x20" (identifier "iVar14") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar14 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar14 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar14 + 0x20)" (* "*") (cast_expression "(byte *)(iVar14 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x20)" (( "(") (binary_expression "iVar14 + 0x20" (identifier "iVar14") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "0xf7")) (| "|") (number_literal "8"))) (; ";")) (if_statement "if (iStack_144 << 0x1c < 0) {\n      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 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 *)(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_140 != -4) && (iStack_154 != 0)) {\n      if (*(int *)(iStack_154 + 100) == 0) {\n        *(int *)(iStack_154 + 0x60) = iVar10 * -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) = iVar10 * -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) = iVar10 * -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) = iVar10 * -0x33333333 + -1;\n      }" ({ "{") (expression_statement "*(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_154 + 0x60) = iVar10 * -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 "iVar10 * -0x33333333 + -1" (binary_expression "iVar10 * -0x33333333" (identifier "iVar10") (* "*") (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 "(**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c);" (call_expression "(**(code **)(pcVar19 + 0x26f128))\n            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c)" (parenthesized_expression "(**(code **)(pcVar19 + 0x26f128))" (( "(") (pointer_expression "**(code **)(pcVar19 + 0x26f128)" (* "*") (pointer_expression "*(code **)(pcVar19 + 0x26f128)" (* "*") (cast_expression "(code **)(pcVar19 + 0x26f128)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar19 + 0x26f128)" (( "(") (binary_expression "pcVar19 + 0x26f128" (identifier "pcVar19") (+ "+") (number_literal "0x26f128")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c)" (( "(") (binary_expression "*(int *)(pcVar19 + 0x26e974) + 0x3574" (pointer_expression "*(int *)(pcVar19 + 0x26e974)" (* "*") (cast_expression "(int *)(pcVar19 + 0x26e974)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x26e974)" (( "(") (binary_expression "pcVar19 + 0x26e974" (identifier "pcVar19") (+ "+") (number_literal "0x26e974")) () ")")))) (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0x231") (, ",") (binary_expression "*(int *)(pcVar19 + 0x26f014) + -0x2b1c" (pointer_expression "*(int *)(pcVar19 + 0x26f014)" (* "*") (cast_expression "(int *)(pcVar19 + 0x26f014)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar19 + 0x26f014)" (( "(") (binary_expression "pcVar19 + 0x26f014" (identifier "pcVar19") (+ "+") (number_literal "0x26f014")) () ")")))) (+ "+") (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,_false> * this, uint
   type, Output_data * od, Sized_relobj<64,_false> * relobj, uint shndx, Address address, Addend
   addend) */

void __thiscall
var_4::var_3<4,var_120,_64,var_8>::add_relative
          (var_3<4,var_120,_64,var_8> *this,type_2 type,type_8 *od,
          var_2<64,var_8> *relobj,type_2 shndx,type_9 address,type_10 addend)

{
  type_2 *puVar1;
  type_1 pOVar2;
  type_1 pOVar3;
  type_2 *var_76;
  type_3 *var_24;
  type_3 *var_23;
  type_4 aVar7;
  type_3 uVar8;
  type_2 uVar9;
  type_3 *var_117;
  type_4 *var_10;
  type_4 *var_11;
  type_5 *var_20;
  type_3 *var_25;
  type_6 **var_38;
  type_6 **var_37;
  type_2 *var_75;
  type_2 *var_77;
  var_1<4,var_120,_64,var_120> *this_00;
  type_1 var_12;
  int var_13;
  type_3 *var_21;
  int var_26;
  int var_32;
  type_2 *var_73;
  type_4 aVar25;
  type_3 uVar26;
  int var_39;
  type_6 *pcVar28;
  type_2 uVar29;
  type_3 *var_118;
  var_2<64,var_8> *pSVar31;
  type_3 uVar32;
  type_2 var_82;
  type_5 *var_19;
  type_6 *var_30;
  type_6 *var_43;
  type_7 auStack_8a0 [44];
  int iStack_874;
  type_3 *puStack_870;
  type_6 *pcStack_86c;
  type_8 *pOStack_858;
  type_3 *puStack_850;
  int iStack_84c;
  int iStack_848;
  type_6 *pcStack_844;
  int iStack_830;
  type_3 uStack_828;
  type_3 uStack_824;
  type_3 uStack_820;
  type_3 uStack_81c;
  type_3 uStack_818;
  type_3 uStack_814;
  type_6 *var_112;
  type_3 uStack_808;
  int var_115;
  int var_113;
  int var_114;
  type_3 uStack_7e8;
  type_3 uStack_7e4;
  type_3 *puStack_7e0;
  int iStack_7dc;
  int iStack_7d8;
  type_6 *pcStack_7d4;
  int iStack_7c0;
  type_3 uStack_7b8;
  type_3 uStack_7b4;
  type_3 uStack_7b0;
  type_3 uStack_7ac;
  type_3 uStack_7a8;
  type_3 uStack_7a4;
  type_6 *var_108;
  type_3 uStack_798;
  int var_111;
  int var_109;
  int var_110;
  type_3 uStack_778;
  type_3 uStack_774;
  type_3 *puStack_770;
  int iStack_76c;
  int iStack_768;
  type_6 *pcStack_764;
  int iStack_750;
  int iStack_74c;
  type_3 uStack_748;
  type_3 uStack_744;
  type_3 uStack_740;
  type_3 uStack_73c;
  type_3 uStack_738;
  type_3 uStack_734;
  type_6 *var_104;
  type_3 uStack_728;
  int var_107;
  int var_105;
  int var_106;
  type_3 uStack_708;
  type_3 uStack_704;
  type_3 *puStack_700;
  int iStack_6fc;
  int iStack_6f8;
  type_6 *pcStack_6f4;
  int iStack_6e0;
  type_3 uStack_6d8;
  type_3 uStack_6d4;
  type_3 uStack_6d0;
  type_3 uStack_6cc;
  type_3 uStack_6c8;
  type_2 uStack_6c4;
  type_6 *var_100;
  type_3 uStack_6b8;
  int var_103;
  int var_101;
  int var_102;
  type_3 uStack_698;
  type_3 uStack_694;
  type_3 *puStack_690;
  int iStack_68c;
  int iStack_688;
  type_6 *pcStack_684;
  int iStack_670;
  int iStack_66c;
  type_3 uStack_668;
  type_3 uStack_664;
  type_3 uStack_660;
  type_3 uStack_65c;
  type_2 var_99;
  type_3 uStack_654;
  type_6 *var_95;
  type_3 uStack_648;
  int var_98;
  int var_96;
  int var_97;
  type_3 uStack_628;
  type_3 uStack_624;
  type_3 *puStack_620;
  int iStack_61c;
  int iStack_618;
  type_6 *pcStack_614;
  int iStack_600;
  type_3 uStack_5f8;
  type_3 uStack_5f4;
  type_3 uStack_5f0;
  type_3 uStack_5ec;
  type_3 uStack_5e8;
  type_3 uStack_5e4;
  type_6 *var_91;
  type_3 uStack_5d8;
  int var_94;
  int var_92;
  int var_93;
  type_3 uStack_5b8;
  type_3 uStack_5b4;
  type_3 *puStack_5b0;
  int iStack_5ac;
  int iStack_5a8;
  type_6 *pcStack_5a4;
  int iStack_590;
  int iStack_58c;
  type_3 uStack_588;
  type_3 uStack_584;
  type_3 uStack_580;
  type_3 uStack_57c;
  type_2 uStack_578;
  type_6 *var_87;
  type_3 uStack_568;
  int var_90;
  int var_88;
  int var_89;
  type_3 uStack_548;
  type_3 uStack_544;
  type_3 *puStack_540;
  int iStack_53c;
  type_2 uStack_538;
  type_6 *pcStack_534;
  type_3 uStack_520;
  int iStack_51c;
  type_3 uStack_518;
  type_3 uStack_514;
  type_3 uStack_510;
  type_3 uStack_50c;
  type_2 var_86;
  type_6 *var_81;
  type_3 uStack_4f8;
  int var_85;
  int var_83;
  int var_84;
  type_3 uStack_4d8;
  int iStack_4d4;
  type_2 *puStack_4d0;
  int iStack_4cc;
  int iStack_4c8;
  type_6 *pcStack_4c4;
  type_3 uStack_4b0;
  type_3 uStack_4ac;
  type_3 uStack_4a8;
  type_3 uStack_4a4;
  type_3 uStack_4a0;
  int iStack_49c;
  type_3 uStack_498;
  type_6 *var_74;
  type_2 uStack_488;
  int var_80;
  int var_78;
  int var_79;
  type_2 uStack_468;
  type_2 uStack_464;
  type_3 *puStack_460;
  int iStack_45c;
  int iStack_458;
  type_6 *pcStack_454;
  type_3 uStack_440;
  type_3 uStack_43c;
  type_3 uStack_438;
  type_3 uStack_434;
  type_2 uStack_430;
  type_2 uStack_42c;
  type_6 *var_69;
  type_3 uStack_420;
  int var_72;
  int var_70;
  int var_71;
  type_3 uStack_400;
  int iStack_3fc;
  type_3 *puStack_3f8;
  int iStack_3f4;
  int iStack_3f0;
  type_6 *pcStack_3ec;
  type_3 uStack_3d8;
  type_3 uStack_3d4;
  type_3 uStack_3d0;
  int iStack_3cc;
  type_2 var_68;
  type_6 *var_64;
  type_3 uStack_3b8;
  int var_67;
  int var_65;
  int var_66;
  type_3 uStack_398;
  int iStack_394;
  type_3 *puStack_390;
  int iStack_38c;
  int iStack_388;
  type_6 *pcStack_384;
  type_3 uStack_370;
  type_3 uStack_36c;
  type_3 uStack_368;
  int iStack_364;
  type_3 uStack_360;
  type_6 *var_60;
  type_3 uStack_350;
  int var_63;
  int var_61;
  int var_62;
  type_3 uStack_330;
  int iStack_32c;
  type_3 *puStack_328;
  int iStack_324;
  int iStack_320;
  type_6 *pcStack_31c;
  type_3 uStack_308;
  type_3 uStack_304;
  type_3 uStack_300;
  int iStack_2fc;
  type_3 uStack_2f8;
  type_6 *var_56;
  type_3 uStack_2e8;
  int var_59;
  int var_57;
  int var_58;
  type_3 uStack_2c8;
  int iStack_2c4;
  type_3 *puStack_2c0;
  int iStack_2bc;
  type_6 *pcStack_2b8;
  type_6 *pcStack_2b4;
  type_3 uStack_2a0;
  type_3 uStack_29c;
  type_3 uStack_298;
  int iStack_294;
  type_3 uStack_290;
  int iStack_28c;
  type_6 *var_52;
  type_3 uStack_280;
  int var_55;
  int var_53;
  int var_54;
  type_3 uStack_260;
  int iStack_25c;
  type_6 **ppcStack_258;
  int iStack_254;
  int iStack_250;
  type_6 *pcStack_24c;
  type_3 uStack_238;
  type_3 uStack_234;
  type_3 uStack_230;
  int iStack_22c;
  type_3 uStack_228;
  int iStack_224;
  type_6 *var_48;
  type_6 *pcStack_218;
  int var_51;
  int var_49;
  int var_50;
  type_6 *pcStack_1f8;
  type_6 *pcStack_1f4;
  type_3 *puStack_1f0;
  int iStack_1ec;
  type_6 *pcStack_1e8;
  type_6 *pcStack_1e4;
  type_3 uStack_1d0;
  type_3 uStack_1cc;
  type_3 uStack_1c8;
  int iStack_1c4;
  type_6 *var_44;
  type_6 *pcStack_1bc;
  type_3 uStack_1b8;
  int var_47;
  int var_45;
  int var_46;
  type_3 uStack_198;
  int iStack_194;
  type_6 **ppcStack_190;
  int iStack_18c;
  int iStack_188;
  type_6 *pcStack_184;
  type_3 uStack_170;
  type_3 uStack_16c;
  type_3 uStack_168;
  int iStack_164;
  type_6 *var_36;
  type_6 *pcStack_158;
  int var_42;
  int var_40;
  int var_41;
  type_6 *pcStack_138;
  type_6 *pcStack_134;
  type_3 *puStack_130;
  int iStack_12c;
  int iStack_128;
  type_6 *pcStack_124;
  type_9 AStack_110;
  type_3 uStack_108;
  type_3 uStack_104;
  type_6 *var_31;
  type_6 *pcStack_fc;
  type_3 uStack_f8;
  int var_35;
  int var_33;
  int var_34;
  type_3 uStack_d8;
  type_3 uStack_d4;
  type_3 *puStack_d0;
  type_5 *puStack_cc;
  var_2<64,var_8> *pSStack_c8;
  type_6 *pcStack_c4;
  type_9 AStack_b0;
  type_3 uStack_a8;
  type_3 uStack_a4;
  type_5 *var_22;
  type_3 uStack_98;
  int var_29;
  int var_27;
  int var_28;
  type_3 uStack_78;
  int iStack_74;
  type_4 *paStack_70;
  var_3<4,var_120,_64,var_8> *pOStack_6c;
  type_8 *pOStack_68;
  type_6 *pcStack_64;
  type_9 local_50;
  type_3 local_48;
  int iStack_44;
  type_4 local_38;
  int var_16;
  int var_14;
  int var_15;
  type_10 local_18;
  
  local_48 = 1;
  local_50 = address;
  (*(type_6 *)PTR_Output_reloc_004c4170)(&local_38,type,relobj,shndx);
  var_12 = (this->super_Output_data_reloc_base<4,var_120,_64,var_8>).relocs_.
            super__Vector_base<var_4::var_7<4,var_120,_64,var_8>,var_5::allocator<var_4::var_7<4,var_120,_64,var_8>var_6>var_6>
            ._M_impl._M_finish;
  local_18 = addend;
  if (var_12 ==
      (this->super_Output_data_reloc_base<4,var_120,_64,var_8>).relocs_.
      super__Vector_base<var_4::var_7<4,var_120,_64,var_8>,var_5::allocator<var_4::var_7<4,var_120,_64,var_8>var_6>var_6>
      ._M_impl._M_end_of_storage) {
    (*(type_6 *)PTR__M_realloc_insert<var_9<4,var_120,_64,var_8>&>_004c3560)
              (&(this->super_Output_data_reloc_base<4,var_120,_64,var_8>).relocs_,var_12,&local_38);
    var_12 = (this->super_Output_data_reloc_base<4,var_120,_64,var_8>).relocs_.
              super__Vector_base<var_4::var_7<4,var_120,_64,var_8>,var_5::allocator<var_4::var_7<4,var_120,_64,var_8>var_6>var_6>
              ._M_impl._M_finish;
    pSVar31 = addend._4_4_;
    addend = local_18;
  }
  else {
    pOVar3 = var_12;
    var_11 = &local_38;
    do {
      var_10 = var_11;
      pOVar2 = pOVar3;
      var_11 = var_10 + 4;
      pOVar3 = (type_1)&(pOVar2->rel_).local_sym_index_;
      pSVar31 = var_10[1].relobj;
      aVar25 = var_10[2];
      aVar7 = var_10[3];
      (pOVar2->rel_).u1_ = *var_10;
      (pOVar2->rel_).u2_.relobj = pSVar31;
      *(type_4 *)&(pOVar2->rel_).address_ = aVar25;
      *(type_4 *)((int)&(pOVar2->rel_).address_ + 4) = aVar7;
    } while (var_11 != (type_4 *)&local_18);
    var_12 = var_12 + 1;
    aVar7 = var_10[5];
    *(type_4 *)pOVar3 = *var_11;
    *(type_4 *)&(pOVar2->rel_).field_0x14 = aVar7;
    (this->super_Output_data_reloc_base<4,var_120,_64,var_8>).relocs_.
    super__Vector_base<var_4::var_7<4,var_120,_64,var_8>,var_5::allocator<var_4::var_7<4,var_120,_64,var_8>var_6>var_6>
    ._M_impl._M_finish = var_12;
  }
  var_13 = (int)var_12 -
           (int)(this->super_Output_data_reloc_base<4,var_120,_64,var_8>).relocs_.
                super__Vector_base<var_4::var_7<4,var_120,_64,var_8>,var_5::allocator<var_4::var_7<4,var_120,_64,var_8>var_6>var_6>
                ._M_impl._M_start >> 3;
  if (-1 < *(int *)&(this->super_Output_data_reloc_base<4,var_120,_64,var_8>).
                    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_120,_64,var_8>).
                   super_Output_data_reloc_generic.super_Output_section_data_build.
                   super_Output_section_data.super_Output_data.data_size_ + 4) = var_13 * 0x33333338
    ;
    *(type_3 *)
     &(this->super_Output_data_reloc_base<4,var_120,_64,var_8>).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_14 << 0x1c < 0) {
      (this->super_Output_data_reloc_base<4,var_120,_64,var_8>).super_Output_data_reloc_generic.
      relative_reloc_count_ =
           (this->super_Output_data_reloc_base<4,var_120,_64,var_8>).super_Output_data_reloc_generic.
           relative_reloc_count_ + 1;
    }
    if ((var_15 != -4) && (var_16 != 0)) {
      if (*(int *)(var_16 + 100) == 0) {
        *(int *)(var_16 + 0x60) = var_13 * -0x33333333 + -1;
      }
      *(int *)(var_16 + 100) = *(int *)(var_16 + 100) + 1;
    }
    return;
  }
  var_30 = add_output_section_relative;
  var_20 = var_17 + 0x3574;
  var_19 = PTR_do_gold_unreachable_004c1a30;
  local_18 = addend;
  (*(type_6 *)PTR_do_gold_unreachable_004c1a30)
            (var_20,0x231,var_18 + -0x2b1c);
  var_22 = var_19 + 0x276c94;
  uStack_a8 = 1;
  paStack_70 = &local_38;
  pOStack_6c = this;
  pOStack_68 = od;
  pcStack_64 = var_30;
  AStack_b0 = local_50;
  (**(type_6 **)(var_19 + 0x26f9f4))(&uStack_98);
  var_21 = *(type_3 **)(var_20 + 0x3c);
  iStack_74 = iStack_44;
  uStack_78 = local_48;
  if (var_21 == *(type_3 **)(var_20 + 0x40)) {
    (**(type_6 **)(var_22 + -0x5ce0))(var_20 + 0x38,var_21,&uStack_98);
    var_21 = *(type_3 **)(var_20 + 0x3c);
    var_13 = iStack_44;
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_98;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      var_13 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = var_13;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_78);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_20 + 0x3c) = var_21;
  }
  var_26 = (int)var_21 - *(int *)(var_20 + 0x38) >> 3;
  if (-1 < *(int *)(var_20 + 0x20) << 1) {
    *(int *)(var_20 + 0x14) = var_26 * 0x33333338;
    *(type_3 *)(var_20 + 0x10) = 0;
    *(type_11 *)&(pSVar31->super_Relobj).super_Object.offset_ =
         *(type_11 *)&(pSVar31->super_Relobj).super_Object.offset_ & 0xf7 | 8;
    if (var_27 << 0x1c < 0) {
      *(int *)(var_20 + 0x30) = *(int *)(var_20 + 0x30) + 1;
    }
    if ((var_28 != -4) && (var_29 != 0)) {
      if (*(int *)(var_29 + 100) == 0) {
        *(int *)(var_29 + 0x60) = var_26 * -0x33333333 + -1;
      }
      *(int *)(var_29 + 100) = *(int *)(var_29 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_22 + -0x7810);
  var_43 = add_output_section_generic;
  var_26 = *(int *)(var_22 + -0x7fc4) + 0x3574;
  (*var_30)(var_26,0x231,*(int *)(var_22 + -0x7924) + -0x2b1c);
  var_31 = var_30 + 0x276ae4;
  uStack_108 = 0;
  puStack_d0 = &uStack_98;
  puStack_cc = var_20;
  pSStack_c8 = pSVar31;
  pcStack_c4 = var_43;
  AStack_110 = AStack_b0;
  (**(type_6 **)(var_30 + 0x26f844))(&uStack_f8);
  var_21 = *(type_3 **)(var_26 + 0x3c);
  uStack_d4 = uStack_a4;
  uStack_d8 = uStack_a8;
  if (var_21 == *(type_3 **)(var_26 + 0x40)) {
    (**(type_6 **)(var_31 + -0x5ce0))(var_26 + 0x38,var_21,&uStack_f8);
    var_21 = *(type_3 **)(var_26 + 0x3c);
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_f8;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      uVar32 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = uVar32;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_d8);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_26 + 0x3c) = var_21;
  }
  var_32 = (int)var_21 - *(int *)(var_26 + 0x38) >> 3;
  if (-1 < *(int *)(var_26 + 0x20) << 1) {
    *(int *)(var_26 + 0x14) = var_32 * 0x33333338;
    *(type_3 *)(var_26 + 0x10) = 0;
    *(type_11 *)(var_13 + 0x20) = *(type_11 *)(var_13 + 0x20) & 0xf7 | 8;
    if (var_33 << 0x1c < 0) {
      *(int *)(var_26 + 0x30) = *(int *)(var_26 + 0x30) + 1;
    }
    if ((var_34 != -4) && (var_35 != 0)) {
      if (*(int *)(var_35 + 100) == 0) {
        *(int *)(var_35 + 0x60) = var_32 * -0x33333333 + -1;
      }
      *(int *)(var_35 + 100) = *(int *)(var_35 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_31 + -0x7810);
  var_39 = *(int *)(var_31 + -0x7924) + -0x2b1c;
  var_43 = add_absolute;
  var_32 = *(int *)(var_31 + -0x7fc4) + 0x3574;
  (*var_30)(var_32,0x231);
  var_36 = var_30 + 0x276938;
  uStack_168 = 0;
  uStack_16c = uStack_104;
  uStack_170 = uStack_108;
  puStack_130 = &uStack_f8;
  iStack_12c = var_26;
  iStack_128 = var_13;
  pcStack_124 = var_43;
  (**(type_6 **)(var_30 + 0x271868))(&pcStack_158);
  var_21 = *(type_3 **)(var_32 + 0x3c);
  pcStack_134 = pcStack_fc;
  pcStack_138 = var_31;
  if (var_21 == *(type_3 **)(var_32 + 0x40)) {
    (**(type_6 **)(var_36 + -0x5ce0))(var_32 + 0x38,var_21,&pcStack_158);
    var_21 = *(type_3 **)(var_32 + 0x3c);
    var_30 = pcStack_fc;
  }
  else {
    var_118 = var_21;
    var_38 = &pcStack_158;
    do {
      var_37 = var_38;
      var_25 = var_118;
      var_38 = var_37 + 4;
      var_30 = var_37[1];
      pcVar28 = var_37[2];
      var_43 = var_37[3];
      *var_25 = *var_37;
      var_25[1] = var_30;
      var_25[2] = pcVar28;
      var_25[3] = var_43;
      var_118 = var_25 + 4;
    } while (var_38 != &pcStack_138);
    var_21 = var_21 + 10;
    var_43 = var_37[5];
    var_25[4] = *var_38;
    var_25[5] = var_43;
    *(type_3 **)(var_32 + 0x3c) = var_21;
  }
  var_13 = (int)var_21 - *(int *)(var_32 + 0x38) >> 3;
  if (-1 < *(int *)(var_32 + 0x20) << 1) {
    *(int *)(var_32 + 0x14) = var_13 * 0x33333338;
    *(type_3 *)(var_32 + 0x10) = 0;
    *(type_11 *)(var_39 + 0x20) = *(type_11 *)(var_39 + 0x20) & 0xf7 | 8;
    if (var_40 << 0x1c < 0) {
      *(int *)(var_32 + 0x30) = *(int *)(var_32 + 0x30) + 1;
    }
    if ((var_41 != -4) && (var_42 != 0)) {
      if (*(int *)(var_42 + 100) == 0) {
        *(int *)(var_42 + 0x60) = var_13 * -0x33333333 + -1;
      }
      *(int *)(var_42 + 100) = *(int *)(var_42 + 100) + 1;
    }
    return;
  }
  var_43 = *(type_6 **)(var_36 + -0x7810);
  pcVar28 = add_output_section;
  var_13 = *(int *)(var_36 + -0x7fc4) + 0x3574;
  (*var_43)(var_13,0x231,*(int *)(var_36 + -0x7924) + -0x2b1c);
  var_44 = var_43 + 0x276780;
  uStack_1d0 = uStack_170;
  uStack_1c8 = 0;
  uStack_1cc = uStack_16c;
  ppcStack_190 = &pcStack_158;
  iStack_18c = var_32;
  iStack_188 = var_39;
  pcStack_184 = pcVar28;
  (**(type_6 **)(var_43 + 0x26f4e0))(&uStack_1b8);
  var_21 = *(type_3 **)(var_13 + 0x3c);
  iStack_194 = iStack_164;
  uStack_198 = uStack_168;
  if (var_21 == *(type_3 **)(var_13 + 0x40)) {
    (**(type_6 **)(var_44 + -0x5ce0))(var_13 + 0x38,var_21,&uStack_1b8);
    var_21 = *(type_3 **)(var_13 + 0x3c);
    var_26 = iStack_164;
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_1b8;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      var_26 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = var_26;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_198);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_13 + 0x3c) = var_21;
  }
  var_32 = (int)var_21 - *(int *)(var_13 + 0x38) >> 3;
  if (-1 < *(int *)(var_13 + 0x20) << 1) {
    *(int *)(var_13 + 0x14) = var_32 * 0x33333338;
    *(type_3 *)(var_13 + 0x10) = 0;
    var_30[0x20] = (type_6)((type_11)var_30[0x20] & 0xf7 | 8);
    if (var_45 << 0x1c < 0) {
      *(int *)(var_13 + 0x30) = *(int *)(var_13 + 0x30) + 1;
    }
    if ((var_46 != -4) && (var_47 != 0)) {
      if (*(int *)(var_47 + 100) == 0) {
        *(int *)(var_47 + 0x60) = var_32 * -0x33333333 + -1;
      }
      *(int *)(var_47 + 100) = *(int *)(var_47 + 100) + 1;
    }
    return;
  }
  var_43 = *(type_6 **)(var_44 + -0x7810);
  pcVar28 = add_output_section_relative;
  var_32 = *(int *)(var_44 + -0x7fc4) + 0x3574;
  (*var_43)(var_32,0x231,*(int *)(var_44 + -0x7924) + -0x2b1c);
  var_48 = var_43 + 0x2765d4;
  uStack_228 = 1;
  uStack_230 = uStack_1c8;
  iStack_22c = iStack_1c4;
  uStack_238 = uStack_1cc;
  puStack_1f0 = &uStack_1b8;
  iStack_1ec = var_13;
  pcStack_1e8 = var_30;
  pcStack_1e4 = pcVar28;
  (**(type_6 **)(var_43 + 0x26f338))(&pcStack_218);
  var_21 = *(type_3 **)(var_32 + 0x3c);
  pcStack_1f4 = pcStack_1bc;
  pcStack_1f8 = var_44;
  if (var_21 == *(type_3 **)(var_32 + 0x40)) {
    (**(type_6 **)(var_48 + -0x5ce0))(var_32 + 0x38,var_21,&pcStack_218);
    var_21 = *(type_3 **)(var_32 + 0x3c);
    var_30 = pcStack_1bc;
  }
  else {
    var_118 = var_21;
    var_38 = &pcStack_218;
    do {
      var_37 = var_38;
      var_25 = var_118;
      var_38 = var_37 + 4;
      var_30 = var_37[1];
      pcVar28 = var_37[2];
      var_43 = var_37[3];
      *var_25 = *var_37;
      var_25[1] = var_30;
      var_25[2] = pcVar28;
      var_25[3] = var_43;
      var_118 = var_25 + 4;
    } while (var_38 != &pcStack_1f8);
    var_21 = var_21 + 10;
    var_43 = var_37[5];
    var_25[4] = *var_38;
    var_25[5] = var_43;
    *(type_3 **)(var_32 + 0x3c) = var_21;
  }
  var_13 = (int)var_21 - *(int *)(var_32 + 0x38) >> 3;
  if (-1 < *(int *)(var_32 + 0x20) << 1) {
    *(int *)(var_32 + 0x14) = var_13 * 0x33333338;
    *(type_3 *)(var_32 + 0x10) = 0;
    *(type_11 *)(var_26 + 0x20) = *(type_11 *)(var_26 + 0x20) & 0xf7 | 8;
    if (var_49 << 0x1c < 0) {
      *(int *)(var_32 + 0x30) = *(int *)(var_32 + 0x30) + 1;
    }
    if ((var_50 != -4) && (var_51 != 0)) {
      if (*(int *)(var_51 + 100) == 0) {
        *(int *)(var_51 + 0x60) = var_13 * -0x33333333 + -1;
      }
      *(int *)(var_51 + 100) = *(int *)(var_51 + 100) + 1;
    }
    return;
  }
  var_43 = *(type_6 **)(var_48 + -0x7810);
  pcVar28 = add_output_section_generic;
  var_13 = *(int *)(var_48 + -0x7fc4) + 0x3574;
  (*var_43)(var_13,0x231,*(int *)(var_48 + -0x7924) + -0x2b1c);
  var_52 = var_43 + 0x276418;
  uStack_298 = uStack_230;
  uStack_290 = 0;
  iStack_294 = iStack_22c;
  uStack_2a0 = uStack_234;
  ppcStack_258 = &pcStack_218;
  iStack_254 = var_32;
  iStack_250 = var_26;
  pcStack_24c = pcVar28;
  (**(type_6 **)(var_43 + 0x26f17c))(&uStack_280);
  var_21 = *(type_3 **)(var_13 + 0x3c);
  iStack_25c = iStack_224;
  uStack_260 = uStack_228;
  if (var_21 == *(type_3 **)(var_13 + 0x40)) {
    (**(type_6 **)(var_52 + -0x5ce0))(var_13 + 0x38,var_21,&uStack_280);
    var_21 = *(type_3 **)(var_13 + 0x3c);
    var_26 = iStack_224;
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_280;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      var_26 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = var_26;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_260);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_13 + 0x3c) = var_21;
  }
  var_32 = (int)var_21 - *(int *)(var_13 + 0x38) >> 3;
  if (-1 < *(int *)(var_13 + 0x20) << 1) {
    *(int *)(var_13 + 0x14) = var_32 * 0x33333338;
    *(type_3 *)(var_13 + 0x10) = 0;
    var_30[0x20] = (type_6)((type_11)var_30[0x20] & 0xf7 | 8);
    if (var_53 << 0x1c < 0) {
      *(int *)(var_13 + 0x30) = *(int *)(var_13 + 0x30) + 1;
    }
    if ((var_54 != -4) && (var_55 != 0)) {
      if (*(int *)(var_55 + 100) == 0) {
        *(int *)(var_55 + 0x60) = var_32 * -0x33333333 + -1;
      }
      *(int *)(var_55 + 100) = *(int *)(var_55 + 100) + 1;
    }
    return;
  }
  var_43 = *(type_6 **)(var_52 + -0x7810);
  pcVar28 = add_output_section;
  var_32 = *(int *)(var_52 + -0x7fc4) + 0x3574;
  (*var_43)(var_32,0x231,*(int *)(var_52 + -0x7924) + -0x2b1c);
  var_56 = var_43 + 0x276260;
  uStack_300 = uStack_298;
  uStack_2f8 = 0;
  iStack_2fc = iStack_294;
  uStack_308 = uStack_29c;
  puStack_2c0 = &uStack_280;
  iStack_2bc = var_13;
  pcStack_2b8 = var_30;
  pcStack_2b4 = pcVar28;
  (**(type_6 **)(var_43 + 0x26efc4))(&uStack_2e8);
  var_21 = *(type_3 **)(var_32 + 0x3c);
  iStack_2c4 = iStack_28c;
  uStack_2c8 = uStack_290;
  if (var_21 == *(type_3 **)(var_32 + 0x40)) {
    (**(type_6 **)(var_56 + -0x5ce0))(var_32 + 0x38,var_21,&uStack_2e8);
    var_21 = *(type_3 **)(var_32 + 0x3c);
    var_13 = iStack_28c;
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_2e8;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      var_13 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = var_13;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_2c8);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_32 + 0x3c) = var_21;
  }
  var_39 = (int)var_21 - *(int *)(var_32 + 0x38) >> 3;
  if (-1 < *(int *)(var_32 + 0x20) << 1) {
    *(int *)(var_32 + 0x14) = var_39 * 0x33333338;
    *(type_3 *)(var_32 + 0x10) = 0;
    *(type_11 *)(var_26 + 0x20) = *(type_11 *)(var_26 + 0x20) & 0xf7 | 8;
    if (var_57 << 0x1c < 0) {
      *(int *)(var_32 + 0x30) = *(int *)(var_32 + 0x30) + 1;
    }
    if ((var_58 != -4) && (var_59 != 0)) {
      if (*(int *)(var_59 + 100) == 0) {
        *(int *)(var_59 + 0x60) = var_39 * -0x33333333 + -1;
      }
      *(int *)(var_59 + 100) = *(int *)(var_59 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_56 + -0x7810);
  var_43 = add_global;
  var_39 = *(int *)(var_56 + -0x7fc4) + 0x3574;
  (*var_30)(var_39,0x231,*(int *)(var_56 + -0x7924) + -0x2b1c);
  var_60 = var_30 + 0x2760a8;
  uStack_370 = uStack_308;
  uStack_360 = 0;
  iStack_364 = 0;
  uStack_368 = 0;
  uStack_36c = uStack_304;
  puStack_328 = &uStack_2e8;
  iStack_324 = var_32;
  iStack_320 = var_26;
  pcStack_31c = var_43;
  (**(type_6 **)(var_30 + 0x26ead0))(&uStack_350);
  var_21 = *(type_3 **)(var_39 + 0x3c);
  iStack_32c = iStack_2fc;
  uStack_330 = uStack_300;
  if (var_21 == *(type_3 **)(var_39 + 0x40)) {
    var_26 = iStack_2fc;
    (**(type_6 **)(var_60 + -0x5ce0))(var_39 + 0x38,var_21,&uStack_350);
    var_21 = *(type_3 **)(var_39 + 0x3c);
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_350;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      var_26 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = var_26;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_330);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_39 + 0x3c) = var_21;
  }
  var_32 = (int)var_21 - *(int *)(var_39 + 0x38) >> 3;
  if (-1 < *(int *)(var_39 + 0x20) << 1) {
    *(int *)(var_39 + 0x14) = var_32 * 0x33333338;
    *(type_3 *)(var_39 + 0x10) = 0;
    *(type_11 *)(var_13 + 0x20) = *(type_11 *)(var_13 + 0x20) & 0xf7 | 8;
    if (var_61 << 0x1c < 0) {
      *(int *)(var_39 + 0x30) = *(int *)(var_39 + 0x30) + 1;
    }
    if ((var_62 != -4) && (var_63 != 0)) {
      if (*(int *)(var_63 + 100) == 0) {
        *(int *)(var_63 + 0x60) = var_32 * -0x33333333 + -1;
      }
      *(int *)(var_63 + 100) = *(int *)(var_63 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_60 + -0x7810);
  var_43 = add_symbolless_global_addend;
  var_32 = *(int *)(var_60 + -0x7fc4) + 0x3574;
  (*var_30)(var_32,0x231,*(int *)(var_60 + -0x7924) + -0x2b1c);
  var_64 = var_30 + 0x275ef4;
  iStack_3cc = 1;
  var_68 = 0;
  uStack_3d0 = 0;
  uStack_3d4 = uStack_36c;
  uStack_3d8 = uStack_370;
  puStack_390 = &uStack_350;
  iStack_38c = var_39;
  iStack_388 = var_13;
  pcStack_384 = var_43;
  (**(type_6 **)(var_30 + 0x26e91c))(&uStack_3b8);
  var_21 = *(type_3 **)(var_32 + 0x3c);
  iStack_394 = iStack_364;
  uStack_398 = uStack_368;
  if (var_21 == *(type_3 **)(var_32 + 0x40)) {
    var_13 = iStack_364;
    (**(type_6 **)(var_64 + -0x5ce0))(var_32 + 0x38,var_21,&uStack_3b8);
    var_21 = *(type_3 **)(var_32 + 0x3c);
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_3b8;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      var_13 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = var_13;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_398);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_32 + 0x3c) = var_21;
  }
  var_39 = (int)var_21 - *(int *)(var_32 + 0x38) >> 3;
  if (-1 < *(int *)(var_32 + 0x20) << 1) {
    *(int *)(var_32 + 0x14) = var_39 * 0x33333338;
    *(type_3 *)(var_32 + 0x10) = 0;
    *(type_11 *)(var_26 + 0x20) = *(type_11 *)(var_26 + 0x20) & 0xf7 | 8;
    if (var_65 << 0x1c < 0) {
      *(int *)(var_32 + 0x30) = *(int *)(var_32 + 0x30) + 1;
    }
    if ((var_66 != -4) && (var_67 != 0)) {
      if (*(int *)(var_67 + 100) == 0) {
        *(int *)(var_67 + 0x60) = var_39 * -0x33333333 + -1;
      }
      *(int *)(var_67 + 100) = *(int *)(var_67 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_64 + -0x7810);
  var_43 = add_global_relative;
  var_39 = *(int *)(var_64 + -0x7fc4) + 0x3574;
  (*var_30)(var_39,0x231,*(int *)(var_64 + -0x7924) + -0x2b1c);
  var_69 = var_30 + 0x275d3c;
  uStack_430 = var_68 & 0xff;
  uStack_434 = 1;
  uStack_438 = 1;
  uStack_440 = uStack_3d8;
  uStack_43c = uStack_3d4;
  puStack_3f8 = &uStack_3b8;
  iStack_3f4 = var_32;
  iStack_3f0 = var_26;
  pcStack_3ec = var_43;
  (**(type_6 **)(var_30 + 0x26e764))(&uStack_420);
  var_21 = *(type_3 **)(var_39 + 0x3c);
  iStack_3fc = iStack_3cc;
  uStack_400 = uStack_3d0;
  if (var_21 == *(type_3 **)(var_39 + 0x40)) {
    var_26 = iStack_3cc;
    (**(type_6 **)(var_69 + -0x5ce0))(var_39 + 0x38,var_21,&uStack_420);
    var_21 = *(type_3 **)(var_39 + 0x3c);
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_420;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      var_26 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = var_26;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_400);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_39 + 0x3c) = var_21;
  }
  var_32 = (int)var_21 - *(int *)(var_39 + 0x38) >> 3;
  if (-1 < *(int *)(var_39 + 0x20) << 1) {
    *(int *)(var_39 + 0x14) = var_32 * 0x33333338;
    *(type_3 *)(var_39 + 0x10) = 0;
    *(type_11 *)(var_13 + 0x20) = *(type_11 *)(var_13 + 0x20) & 0xf7 | 8;
    if (var_70 << 0x1c < 0) {
      *(int *)(var_39 + 0x30) = *(int *)(var_39 + 0x30) + 1;
    }
    if ((var_71 != -4) && (var_72 != 0)) {
      if (*(int *)(var_72 + 100) == 0) {
        *(int *)(var_72 + 0x60) = var_32 * -0x33333333 + -1;
      }
      *(int *)(var_72 + 100) = *(int *)(var_72 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_69 + -0x7810);
  var_43 = add_global;
  var_32 = *(int *)(var_69 + -0x7fc4) + 0x3574;
  (*var_30)(var_32,0x231,*(int *)(var_69 + -0x7924) + -0x2b1c);
  var_74 = var_30 + 0x275b80;
  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_39;
  iStack_458 = var_13;
  pcStack_454 = var_43;
  (**(type_6 **)(var_30 + 0x26e7d0))(&uStack_488);
  var_73 = *(type_2 **)(var_32 + 0x3c);
  uStack_464 = uStack_42c;
  uStack_468 = uStack_430;
  if (var_73 == *(type_2 **)(var_32 + 0x40)) {
    (**(type_6 **)(var_74 + -0x5ce0))(var_32 + 0x38,var_73,&uStack_488);
    var_73 = *(type_2 **)(var_32 + 0x3c);
    var_82 = uStack_42c;
  }
  else {
    puVar1 = var_73;
    var_77 = &uStack_488;
    do {
      var_75 = var_77;
      var_76 = puVar1;
      var_77 = var_75 + 4;
      var_82 = var_75[1];
      uVar29 = var_75[2];
      uVar9 = var_75[3];
      *var_76 = *var_75;
      var_76[1] = var_82;
      var_76[2] = uVar29;
      var_76[3] = uVar9;
      puVar1 = var_76 + 4;
    } while (var_77 != &uStack_468);
    var_73 = var_73 + 10;
    uVar9 = var_75[5];
    var_76[4] = *var_77;
    var_76[5] = uVar9;
    *(type_2 **)(var_32 + 0x3c) = var_73;
  }
  var_13 = (int)var_73 - *(int *)(var_32 + 0x38) >> 3;
  if (-1 < *(int *)(var_32 + 0x20) << 1) {
    *(int *)(var_32 + 0x14) = var_13 * 0x33333338;
    *(type_3 *)(var_32 + 0x10) = 0;
    *(type_11 *)(var_26 + 0x20) = *(type_11 *)(var_26 + 0x20) & 0xf7 | 8;
    if (var_78 << 0x1c < 0) {
      *(int *)(var_32 + 0x30) = *(int *)(var_32 + 0x30) + 1;
    }
    if ((var_79 != -4) && (var_80 != 0)) {
      if (*(int *)(var_80 + 100) == 0) {
        *(int *)(var_80 + 0x60) = var_13 * -0x33333333 + -1;
      }
      *(int *)(var_80 + 100) = *(int *)(var_80 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_74 + -0x7810);
  var_43 = add_symbolless_global_addend;
  var_13 = *(int *)(var_74 + -0x7fc4) + 0x3574;
  (*var_30)(var_13,0x231,*(int *)(var_74 + -0x7924) + -0x2b1c);
  var_81 = var_30 + 0x2759c0;
  uStack_50c = 1;
  uStack_518 = uStack_4a8;
  var_86 = 0;
  uStack_510 = 0;
  uStack_514 = uStack_4a4;
  uStack_520 = uStack_4ac;
  puStack_4d0 = &uStack_488;
  iStack_4cc = var_32;
  iStack_4c8 = var_26;
  pcStack_4c4 = var_43;
  (**(type_6 **)(var_30 + 0x26e610))(&uStack_4f8);
  var_21 = *(type_3 **)(var_13 + 0x3c);
  iStack_4d4 = iStack_49c;
  uStack_4d8 = uStack_4a0;
  if (var_21 == *(type_3 **)(var_13 + 0x40)) {
    var_26 = iStack_49c;
    (**(type_6 **)(var_81 + -0x5ce0))(var_13 + 0x38,var_21,&uStack_4f8);
    var_21 = *(type_3 **)(var_13 + 0x3c);
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_4f8;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      var_26 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = var_26;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_4d8);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_13 + 0x3c) = var_21;
  }
  var_32 = (int)var_21 - *(int *)(var_13 + 0x38) >> 3;
  if (-1 < *(int *)(var_13 + 0x20) << 1) {
    *(int *)(var_13 + 0x14) = var_32 * 0x33333338;
    *(type_3 *)(var_13 + 0x10) = 0;
    *(type_11 *)(var_82 + 0x20) = *(type_11 *)(var_82 + 0x20) & 0xf7 | 8;
    if (var_83 << 0x1c < 0) {
      *(int *)(var_13 + 0x30) = *(int *)(var_13 + 0x30) + 1;
    }
    if ((var_84 != -4) && (var_85 != 0)) {
      if (*(int *)(var_85 + 100) == 0) {
        *(int *)(var_85 + 0x60) = var_32 * -0x33333333 + -1;
      }
      *(int *)(var_85 + 100) = *(int *)(var_85 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_81 + -0x7810);
  var_43 = add_global_relative;
  var_32 = *(int *)(var_81 + -0x7fc4) + 0x3574;
  (*var_30)(var_32,0x231,*(int *)(var_81 + -0x7924) + -0x2b1c);
  var_87 = var_30 + 0x2757fc;
  uStack_578 = var_86 & 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_13;
  uStack_538 = var_82;
  pcStack_534 = var_43;
  (**(type_6 **)(var_30 + 0x26e44c))(&uStack_568);
  var_21 = *(type_3 **)(var_32 + 0x3c);
  uStack_544 = uStack_50c;
  uStack_548 = uStack_510;
  if (var_21 == *(type_3 **)(var_32 + 0x40)) {
    (**(type_6 **)(var_87 + -0x5ce0))(var_32 + 0x38,var_21,&uStack_568);
    var_21 = *(type_3 **)(var_32 + 0x3c);
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_568;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      uVar32 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = uVar32;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_548);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_32 + 0x3c) = var_21;
  }
  var_13 = (int)var_21 - *(int *)(var_32 + 0x38) >> 3;
  if (-1 < *(int *)(var_32 + 0x20) << 1) {
    *(int *)(var_32 + 0x14) = var_13 * 0x33333338;
    *(type_3 *)(var_32 + 0x10) = 0;
    *(type_11 *)(var_26 + 0x20) = *(type_11 *)(var_26 + 0x20) & 0xf7 | 8;
    if (var_88 << 0x1c < 0) {
      *(int *)(var_32 + 0x30) = *(int *)(var_32 + 0x30) + 1;
    }
    if ((var_89 != -4) && (var_90 != 0)) {
      if (*(int *)(var_90 + 100) == 0) {
        *(int *)(var_90 + 0x60) = var_13 * -0x33333333 + -1;
      }
      *(int *)(var_90 + 100) = *(int *)(var_90 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_87 + -0x7810);
  var_43 = var_119;
  var_39 = *(int *)(var_87 + -0x7fc4) + 0x3574;
  (*var_30)(var_39,0x231,*(int *)(var_87 + -0x7924) + -0x2b1c);
  var_13 = iStack_590;
  var_91 = var_30 + 0x275634;
  uStack_5f8 = uStack_588;
  uStack_5e4 = 0;
  uStack_5e8 = 0;
  uStack_5ec = 0;
  uStack_5f0 = 0;
  uStack_5f4 = uStack_584;
  iStack_600 = iStack_58c;
  puStack_5b0 = &uStack_568;
  iStack_5ac = var_32;
  iStack_5a8 = var_26;
  pcStack_5a4 = var_43;
  (**(type_6 **)(var_30 + 0x26e06c))(&uStack_5d8);
  var_21 = *(type_3 **)(var_39 + 0x3c);
  uStack_5b4 = uStack_57c;
  uStack_5b8 = uStack_580;
  if (var_21 == *(type_3 **)(var_39 + 0x40)) {
    (**(type_6 **)(var_91 + -0x5ce0))(var_39 + 0x38,var_21,&uStack_5d8);
    var_21 = *(type_3 **)(var_39 + 0x3c);
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_5d8;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      uVar32 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = uVar32;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_5b8);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_39 + 0x3c) = var_21;
  }
  var_26 = (int)var_21 - *(int *)(var_39 + 0x38) >> 3;
  if (-1 < *(int *)(var_39 + 0x20) << 1) {
    *(int *)(var_39 + 0x14) = var_26 * 0x33333338;
    *(type_3 *)(var_39 + 0x10) = 0;
    *(type_11 *)(var_13 + 0x20) = *(type_11 *)(var_13 + 0x20) & 0xf7 | 8;
    if (var_92 << 0x1c < 0) {
      *(int *)(var_39 + 0x30) = *(int *)(var_39 + 0x30) + 1;
    }
    if ((var_93 != -4) && (var_94 != 0)) {
      if (*(int *)(var_94 + 100) == 0) {
        *(int *)(var_94 + 0x60) = var_26 * -0x33333333 + -1;
      }
      *(int *)(var_94 + 100) = *(int *)(var_94 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_91 + -0x7810);
  var_43 = var_119;
  var_32 = *(int *)(var_91 + -0x7fc4) + 0x3574;
  (*var_30)(var_32,0x231,*(int *)(var_91 + -0x7924) + -0x2b1c);
  var_26 = iStack_600;
  var_95 = var_30 + 0x275474;
  iStack_618 = var_13;
  uStack_668 = uStack_5f8;
  uStack_654 = 0;
  var_99 = 0;
  uStack_65c = 0;
  uStack_660 = 0;
  uStack_664 = uStack_5f4;
  iStack_670 = iStack_600;
  puStack_620 = &uStack_5d8;
  iStack_61c = var_39;
  pcStack_614 = var_43;
  (**(type_6 **)(var_30 + 0x26e030))(&uStack_648);
  var_21 = *(type_3 **)(var_32 + 0x3c);
  uStack_624 = uStack_5ec;
  uStack_628 = uStack_5f0;
  if (var_21 == *(type_3 **)(var_32 + 0x40)) {
    (**(type_6 **)(var_95 + -0x5ce0))(var_32 + 0x38,var_21,&uStack_648);
    var_21 = *(type_3 **)(var_32 + 0x3c);
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_648;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      uVar32 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = uVar32;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_628);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_32 + 0x3c) = var_21;
  }
  var_13 = (int)var_21 - *(int *)(var_32 + 0x38) >> 3;
  if (-1 < *(int *)(var_32 + 0x20) << 1) {
    *(int *)(var_32 + 0x14) = var_13 * 0x33333338;
    *(type_3 *)(var_32 + 0x10) = 0;
    *(type_11 *)(var_26 + 0x20) = *(type_11 *)(var_26 + 0x20) & 0xf7 | 8;
    if (var_96 << 0x1c < 0) {
      *(int *)(var_32 + 0x30) = *(int *)(var_32 + 0x30) + 1;
    }
    if ((var_97 != -4) && (var_98 != 0)) {
      if (*(int *)(var_98 + 100) == 0) {
        *(int *)(var_98 + 0x60) = var_13 * -0x33333333 + -1;
      }
      *(int *)(var_98 + 100) = *(int *)(var_98 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_95 + -0x7810);
  var_43 = add_local_relative;
  var_39 = *(int *)(var_95 + -0x7fc4) + 0x3574;
  (*var_30)(var_39,0x231,*(int *)(var_95 + -0x7924) + -0x2b1c);
  var_13 = iStack_670;
  var_100 = var_30 + 0x2752b8;
  uStack_6c4 = var_99 & 0xff;
  uStack_6cc = 1;
  uStack_6d0 = 1;
  uStack_6d8 = uStack_668;
  iStack_688 = var_26;
  uStack_6c8 = 0;
  uStack_6d4 = uStack_664;
  iStack_6e0 = iStack_66c;
  puStack_690 = &uStack_648;
  iStack_68c = var_32;
  pcStack_684 = var_43;
  (**(type_6 **)(var_30 + 0x26dcf0))(&uStack_6b8);
  var_21 = *(type_3 **)(var_39 + 0x3c);
  uStack_694 = uStack_65c;
  uStack_698 = uStack_660;
  if (var_21 == *(type_3 **)(var_39 + 0x40)) {
    (**(type_6 **)(var_100 + -0x5ce0))(var_39 + 0x38,var_21,&uStack_6b8);
    var_21 = *(type_3 **)(var_39 + 0x3c);
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_6b8;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      uVar32 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = uVar32;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_698);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_39 + 0x3c) = var_21;
  }
  var_26 = (int)var_21 - *(int *)(var_39 + 0x38) >> 3;
  if (-1 < *(int *)(var_39 + 0x20) << 1) {
    *(int *)(var_39 + 0x14) = var_26 * 0x33333338;
    *(type_3 *)(var_39 + 0x10) = 0;
    *(type_11 *)(var_13 + 0x20) = *(type_11 *)(var_13 + 0x20) & 0xf7 | 8;
    if (var_101 << 0x1c < 0) {
      *(int *)(var_39 + 0x30) = *(int *)(var_39 + 0x30) + 1;
    }
    if ((var_102 != -4) && (var_103 != 0)) {
      if (*(int *)(var_103 + 100) == 0) {
        *(int *)(var_103 + 0x60) = var_26 * -0x33333333 + -1;
      }
      *(int *)(var_103 + 100) = *(int *)(var_103 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_100 + -0x7810);
  var_43 = add_symbolless_local_addend;
  var_32 = *(int *)(var_100 + -0x7fc4) + 0x3574;
  (*var_30)(var_32,0x231,*(int *)(var_100 + -0x7924) + -0x2b1c);
  var_26 = iStack_6e0;
  var_104 = var_30 + 0x2750f0;
  iStack_6f8 = var_13;
  uStack_73c = 1;
  uStack_734 = 0;
  uStack_738 = 0;
  uStack_740 = 0;
  uStack_744 = uStack_6d4;
  uStack_748 = uStack_6d8;
  iStack_750 = iStack_6e0;
  puStack_700 = &uStack_6b8;
  iStack_6fc = var_39;
  pcStack_6f4 = var_43;
  (**(type_6 **)(var_30 + 0x26dcac))(&uStack_728);
  var_21 = *(type_3 **)(var_32 + 0x3c);
  uStack_704 = uStack_6cc;
  uStack_708 = uStack_6d0;
  if (var_21 == *(type_3 **)(var_32 + 0x40)) {
    (**(type_6 **)(var_104 + -0x5ce0))(var_32 + 0x38,var_21,&uStack_728);
    var_21 = *(type_3 **)(var_32 + 0x3c);
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_728;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      uVar32 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = uVar32;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_708);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_32 + 0x3c) = var_21;
  }
  var_13 = (int)var_21 - *(int *)(var_32 + 0x38) >> 3;
  if (-1 < *(int *)(var_32 + 0x20) << 1) {
    *(int *)(var_32 + 0x14) = var_13 * 0x33333338;
    *(type_3 *)(var_32 + 0x10) = 0;
    *(type_11 *)(var_26 + 0x20) = *(type_11 *)(var_26 + 0x20) & 0xf7 | 8;
    if (var_105 << 0x1c < 0) {
      *(int *)(var_32 + 0x30) = *(int *)(var_32 + 0x30) + 1;
    }
    if ((var_106 != -4) && (var_107 != 0)) {
      if (*(int *)(var_107 + 100) == 0) {
        *(int *)(var_107 + 0x60) = var_13 * -0x33333333 + -1;
      }
      *(int *)(var_107 + 100) = *(int *)(var_107 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_104 + -0x7810);
  var_43 = add_symbolless_local_addend;
  var_39 = *(int *)(var_104 + -0x7fc4) + 0x3574;
  (*var_30)(var_39,0x231,*(int *)(var_104 + -0x7924) + -0x2b1c);
  var_13 = iStack_750;
  var_108 = var_30 + 0x274f30;
  uStack_7ac = 1;
  uStack_7b8 = uStack_748;
  iStack_768 = var_26;
  uStack_7a4 = 0;
  uStack_7a8 = 0;
  uStack_7b0 = 0;
  uStack_7b4 = uStack_744;
  iStack_7c0 = iStack_74c;
  puStack_770 = &uStack_728;
  iStack_76c = var_32;
  pcStack_764 = var_43;
  (**(type_6 **)(var_30 + 0x26d968))(&uStack_798);
  var_21 = *(type_3 **)(var_39 + 0x3c);
  uStack_774 = uStack_73c;
  uStack_778 = uStack_740;
  if (var_21 == *(type_3 **)(var_39 + 0x40)) {
    (**(type_6 **)(var_108 + -0x5ce0))(var_39 + 0x38,var_21,&uStack_798);
    var_21 = *(type_3 **)(var_39 + 0x3c);
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_798;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      uVar32 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = uVar32;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_778);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_39 + 0x3c) = var_21;
  }
  var_26 = (int)var_21 - *(int *)(var_39 + 0x38) >> 3;
  if (-1 < *(int *)(var_39 + 0x20) << 1) {
    *(int *)(var_39 + 0x14) = var_26 * 0x33333338;
    *(type_3 *)(var_39 + 0x10) = 0;
    *(type_11 *)(var_13 + 0x20) = *(type_11 *)(var_13 + 0x20) & 0xf7 | 8;
    if (var_109 << 0x1c < 0) {
      *(int *)(var_39 + 0x30) = *(int *)(var_39 + 0x30) + 1;
    }
    if ((var_110 != -4) && (var_111 != 0)) {
      if (*(int *)(var_111 + 100) == 0) {
        *(int *)(var_111 + 0x60) = var_26 * -0x33333333 + -1;
      }
      *(int *)(var_111 + 100) = *(int *)(var_111 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)(var_108 + -0x7810);
  var_43 = add_local_section;
  var_32 = *(int *)(var_108 + -0x7fc4) + 0x3574;
  (*var_30)(var_32,0x231,*(int *)(var_108 + -0x7924) + -0x2b1c);
  var_26 = iStack_7c0;
  var_112 = var_30 + 0x274d6c;
  iStack_7d8 = var_13;
  uStack_818 = 1;
  uStack_814 = 0;
  uStack_81c = 0;
  uStack_820 = 0;
  uStack_824 = uStack_7b4;
  uStack_828 = uStack_7b8;
  iStack_830 = iStack_7c0;
  puStack_7e0 = &uStack_798;
  iStack_7dc = var_39;
  pcStack_7d4 = var_43;
  (**(type_6 **)(var_30 + 0x26d928))(&uStack_808);
  var_21 = *(type_3 **)(var_32 + 0x3c);
  uStack_7e4 = uStack_7ac;
  uStack_7e8 = uStack_7b0;
  if (var_21 == *(type_3 **)(var_32 + 0x40)) {
    (**(type_6 **)(var_112 + -0x5ce0))(var_32 + 0x38,var_21,&uStack_808);
    var_21 = *(type_3 **)(var_32 + 0x3c);
  }
  else {
    var_118 = var_21;
    var_25 = &uStack_808;
    do {
      var_23 = var_25;
      var_24 = var_118;
      var_25 = var_23 + 4;
      uVar32 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_24 = *var_23;
      var_24[1] = uVar32;
      var_24[2] = uVar26;
      var_24[3] = uVar8;
      var_118 = var_24 + 4;
    } while (var_25 != &uStack_7e8);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_24[4] = *var_25;
    var_24[5] = uVar8;
    *(type_3 **)(var_32 + 0x3c) = var_21;
  }
  var_13 = (int)var_21 - *(int *)(var_32 + 0x38) >> 3;
  if (-1 < *(int *)(var_32 + 0x20) << 1) {
    *(int *)(var_32 + 0x14) = var_13 * 0x33333338;
    *(type_3 *)(var_32 + 0x10) = 0;
    *(type_11 *)(var_26 + 0x20) = *(type_11 *)(var_26 + 0x20) & 0xf7 | 8;
    if (var_113 << 0x1c < 0) {
      *(int *)(var_32 + 0x30) = *(int *)(var_32 + 0x30) + 1;
    }
    if ((var_114 != -4) && (var_115 != 0)) {
      if (*(int *)(var_115 + 100) == 0) {
        *(int *)(var_115 + 0x60) = var_13 * -0x33333333 + -1;
      }
      *(int *)(var_115 + 100) = *(int *)(var_115 + 100) + 1;
    }
    return;
  }
  var_39 = 0x231;
  var_30 = *(type_6 **)(var_112 + -0x7810);
  var_118 = (type_3 *)(*(int *)(var_112 + -0x7924) + -0x2b1c);
  var_43 = var_1<4,var_120,_64,var_120>::var_116;
  var_13 = *(int *)(var_112 + -0x7fc4) + 0x3574;
  (*var_30)();
  pOStack_858 = (type_8 *)(var_30 + 0x274bac);
  iStack_848 = var_26;
  var_21 = *(type_3 **)(var_13 + 0x3c);
  puStack_850 = &uStack_808;
  iStack_84c = var_32;
  pcStack_844 = var_43;
  if (var_21 == *(type_3 **)(var_13 + 0x40)) {
    (**(type_6 **)(var_30 + 0x26eefc))(var_13 + 0x38);
    var_21 = *(type_3 **)(var_13 + 0x3c);
  }
  else {
    var_25 = var_118;
    var_24 = var_21;
    do {
      var_117 = var_24;
      var_23 = var_25;
      var_25 = var_23 + 4;
      uVar32 = var_23[1];
      uVar26 = var_23[2];
      uVar8 = var_23[3];
      *var_117 = *var_23;
      var_117[1] = uVar32;
      var_117[2] = uVar26;
      var_117[3] = uVar8;
      var_24 = var_117 + 4;
    } while (var_25 != var_118 + 8);
    var_21 = var_21 + 10;
    uVar8 = var_23[5];
    var_117[4] = *var_25;
    var_117[5] = uVar8;
    *(type_3 **)(var_13 + 0x3c) = var_21;
  }
  var_26 = (int)var_21 - *(int *)(var_13 + 0x38) >> 3;
  if (-1 < *(int *)(var_13 + 0x20) << 1) {
    var_32 = var_118[5];
    *(int *)(var_13 + 0x14) = var_26 * 0x33333338;
    *(type_3 *)(var_13 + 0x10) = 0;
    *(type_11 *)(var_39 + 0x20) = *(type_11 *)(var_39 + 0x20) & 0xf7 | 8;
    if (var_32 << 0x1c < 0) {
      *(int *)(var_13 + 0x30) = *(int *)(var_13 + 0x30) + 1;
    }
    if ((var_118[6] != -4) && (var_13 = var_118[1], var_13 != 0)) {
      if (*(int *)(var_13 + 100) == 0) {
        *(int *)(var_13 + 0x60) = var_26 * -0x33333333 + -1;
      }
      *(int *)(var_13 + 100) = *(int *)(var_13 + 100) + 1;
    }
    return;
  }
  var_30 = *(type_6 **)&pOStack_858[-0x301].offset_;
  var_43 = var_3<4,var_120,_64,var_120>::var_119;
  this_00 = (var_1<4,var_120,_64,var_120> *)
            ((int)pOStack_858[-0x332].address_ + 0x3574);
  (*var_30)(this_00,0x231,(int)pOStack_858[-0x308].offset_ + -0x2b1c);
  iStack_874 = var_13;
  puStack_870 = var_118;
  pcStack_86c = var_43;
  (**(type_6 **)(var_30 + 0x26d47c))((type_12 *)auStack_8a0);
  auStack_8a0._36_4_ = pcStack_844;
  auStack_8a0._32_4_ = iStack_848;
  var_1<4,var_120,_64,var_120>::var_116
            (this_00,pOStack_858,(type_12 *)auStack_8a0);
  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: (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: (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: (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: (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: (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: (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: (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: (false) 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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (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: (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: (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;
  undefined4 *puVar6;
  code **ppcVar7;
  code **ppcVar8;
  undefined4 *puVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  undefined4 uVar13;
  int iVar14;
  code *pcVar15;
  undefined4 uVar16;
  code *pcVar17;
  undefined *puVar18;
  code *pcVar19;
  code *pcVar20;
  code *pcStack_158;
  int iStack_154;
  int iStack_144;
  int iStack_140;
  code *pcStack_138;
  undefined4 uStack_134;
  undefined4 *puStack_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;
  undefined4 uStack_fc;
  undefined4 uStack_f8;
  int iStack_f4;
  int iStack_e4;
  int iStack_e0;
  undefined4 uStack_d8;
  undefined4 uStack_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;
  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_004c4170)(&local_38,param_2,param_4,param_5);
  puVar9 = *(undefined4 **)(param_1 + 0x3c);
  local_14 = param_10;
  local_18 = param_9;
  if (puVar9 == *(undefined4 **)(param_1 + 0x40)) {
    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)
              (param_1 + 0x38,puVar9,&local_38);
    puVar9 = *(undefined4 **)(param_1 + 0x3c);
  }
  else {
    puVar1 = puVar9;
    puVar4 = &local_38;
    do {
      puVar6 = puVar4;
      puVar2 = puVar1;
      puVar4 = puVar6 + 4;
      param_10 = puVar6[1];
      uVar13 = puVar6[2];
      uVar3 = puVar6[3];
      *puVar2 = *puVar6;
      puVar2[1] = param_10;
      puVar2[2] = uVar13;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar4 != &local_18);
    puVar9 = puVar9 + 10;
    uVar3 = puVar6[5];
    puVar2[4] = *puVar4;
    puVar2[5] = uVar3;
    *(undefined4 **)(param_1 + 0x3c) = puVar9;
  }
  iVar10 = (int)puVar9 - *(int *)(param_1 + 0x38) >> 3;
  if (-1 < *(int *)(param_1 + 0x20) << 1) {
    *(int *)(param_1 + 0x14) = iVar10 * 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) = iVar10 * -0x33333333 + -1;
      }
      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;
    }
    return;
  }
  pcVar19 = FUN_002525ac;
  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 + 0x276c94;
  uStack_a8 = 1;
  uStack_ac = local_4c;
  uStack_b0 = local_50;
  puStack_70 = &local_38;
  iStack_6c = param_1;
  iStack_68 = param_3;
  pcStack_64 = pcVar19;
  (**(code **)(puVar18 + 0x26f9f4))(&uStack_98);
  puVar9 = *(undefined4 **)(puVar5 + 0x3c);
  iStack_74 = iStack_44;
  uStack_78 = local_48;
  if (puVar9 == *(undefined4 **)(puVar5 + 0x40)) {
    (**(code **)(puStack_a0 + -0x5ce0))(puVar5 + 0x38,puVar9,&uStack_98);
    puVar9 = *(undefined4 **)(puVar5 + 0x3c);
    iVar10 = iStack_44;
  }
  else {
    puVar1 = puVar9;
    puVar4 = &uStack_98;
    do {
      puVar6 = puVar4;
      puVar2 = puVar1;
      puVar4 = puVar6 + 4;
      iVar10 = puVar6[1];
      uVar13 = puVar6[2];
      uVar3 = puVar6[3];
      *puVar2 = *puVar6;
      puVar2[1] = iVar10;
      puVar2[2] = uVar13;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar4 != &uStack_78);
    puVar9 = puVar9 + 10;
    uVar3 = puVar6[5];
    puVar2[4] = *puVar4;
    puVar2[5] = uVar3;
    *(undefined4 **)(puVar5 + 0x3c) = puVar9;
  }
  iVar11 = (int)puVar9 - *(int *)(puVar5 + 0x38) >> 3;
  if (-1 < *(int *)(puVar5 + 0x20) << 1) {
    *(int *)(puVar5 + 0x14) = iVar11 * 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) = iVar11 * -0x33333333 + -1;
      }
      *(int *)(iStack_94 + 100) = *(int *)(iStack_94 + 100) + 1;
    }
    return;
  }
  pcVar19 = *(code **)(puStack_a0 + -0x7810);
  pcVar20 = FUN_0025275c;
  iVar11 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;
  (*pcVar19)(iVar11,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);
  pcStack_100 = pcVar19 + 0x276ae4;
  uStack_110 = uStack_b0;
  uStack_108 = 0;
  uStack_10c = uStack_ac;
  puStack_d0 = &uStack_98;
  puStack_cc = puVar5;
  iStack_c8 = param_10;
  pcStack_c4 = pcVar20;
  (**(code **)(pcVar19 + 0x26f844))(&uStack_f8);
  puVar9 = *(undefined4 **)(iVar11 + 0x3c);
  uStack_d4 = uStack_a4;
  uStack_d8 = uStack_a8;
  if (puVar9 == *(undefined4 **)(iVar11 + 0x40)) {
    (**(code **)(pcStack_100 + -0x5ce0))(iVar11 + 0x38,puVar9,&uStack_f8);
    puVar9 = *(undefined4 **)(iVar11 + 0x3c);
  }
  else {
    puVar1 = puVar9;
    puVar4 = &uStack_f8;
    do {
      puVar6 = puVar4;
      puVar2 = puVar1;
      puVar4 = puVar6 + 4;
      uVar16 = puVar6[1];
      uVar13 = puVar6[2];
      uVar3 = puVar6[3];
      *puVar2 = *puVar6;
      puVar2[1] = uVar16;
      puVar2[2] = uVar13;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar4 != &uStack_d8);
    puVar9 = puVar9 + 10;
    uVar3 = puVar6[5];
    puVar2[4] = *puVar4;
    puVar2[5] = uVar3;
    *(undefined4 **)(iVar11 + 0x3c) = puVar9;
  }
  iVar12 = (int)puVar9 - *(int *)(iVar11 + 0x38) >> 3;
  if (-1 < *(int *)(iVar11 + 0x20) << 1) {
    *(int *)(iVar11 + 0x14) = iVar12 * 0x33333338;
    *(undefined4 *)(iVar11 + 0x10) = 0;
    *(byte *)(iVar10 + 0x20) = *(byte *)(iVar10 + 0x20) & 0xf7 | 8;
    if (iStack_e4 << 0x1c < 0) {
      *(int *)(iVar11 + 0x30) = *(int *)(iVar11 + 0x30) + 1;
    }
    if ((iStack_e0 != -4) && (iStack_f4 != 0)) {
      if (*(int *)(iStack_f4 + 100) == 0) {
        *(int *)(iStack_f4 + 0x60) = iVar12 * -0x33333333 + -1;
      }
      *(int *)(iStack_f4 + 100) = *(int *)(iStack_f4 + 100) + 1;
    }
    return;
  }
  pcVar19 = *(code **)(pcStack_100 + -0x7810);
  iVar14 = *(int *)(pcStack_100 + -0x7924) + -0x2b1c;
  pcVar20 = FUN_00252908;
  iVar12 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;
  (*pcVar19)(iVar12,0x231);
  uVar13 = 0;
  uVar3 = uStack_108;
  puStack_130 = &uStack_f8;
  iStack_12c = iVar11;
  iStack_128 = iVar10;
  pcStack_124 = pcVar20;
  (**(code **)(pcVar19 + 0x271868))(&pcStack_158);
  puVar9 = *(undefined4 **)(iVar12 + 0x3c);
  uStack_134 = uStack_fc;
  pcStack_138 = pcStack_100;
  if (puVar9 == *(undefined4 **)(iVar12 + 0x40)) {
    (**(code **)(pcVar19 + 0x270c58))
              (iVar12 + 0x38,puVar9,&pcStack_158,uStack_fc,uVar3,uStack_104,uVar13);
    puVar9 = *(undefined4 **)(iVar12 + 0x3c);
  }
  else {
    puVar1 = puVar9;
    ppcVar8 = &pcStack_158;
    do {
      ppcVar7 = ppcVar8;
      puVar4 = puVar1;
      ppcVar8 = ppcVar7 + 4;
      pcVar17 = ppcVar7[1];
      pcVar15 = ppcVar7[2];
      pcVar20 = ppcVar7[3];
      *puVar4 = *ppcVar7;
      puVar4[1] = pcVar17;
      puVar4[2] = pcVar15;
      puVar4[3] = pcVar20;
      puVar1 = puVar4 + 4;
    } while (ppcVar8 != &pcStack_138);
    puVar9 = puVar9 + 10;
    pcVar20 = ppcVar7[5];
    puVar4[4] = *ppcVar8;
    puVar4[5] = pcVar20;
    *(undefined4 **)(iVar12 + 0x3c) = puVar9;
  }
  iVar10 = (int)puVar9 - *(int *)(iVar12 + 0x38) >> 3;
  if (-1 < *(int *)(iVar12 + 0x20) << 1) {
    *(int *)(iVar12 + 0x14) = iVar10 * 0x33333338;
    *(undefined4 *)(iVar12 + 0x10) = 0;
    *(byte *)(iVar14 + 0x20) = *(byte *)(iVar14 + 0x20) & 0xf7 | 8;
    if (iStack_144 << 0x1c < 0) {
      *(int *)(iVar12 + 0x30) = *(int *)(iVar12 + 0x30) + 1;
    }
    if ((iStack_140 != -4) && (iStack_154 != 0)) {
      if (*(int *)(iStack_154 + 100) == 0) {
        *(int *)(iStack_154 + 0x60) = iVar10 * -0x33333333 + -1;
      }
      *(int *)(iStack_154 + 100) = *(int *)(iStack_154 + 100) + 1;
    }
    return;
  }
  (**(code **)(pcVar19 + 0x26f128))
            (*(int *)(pcVar19 + 0x26e974) + 0x3574,0x231,*(int *)(pcVar19 + 0x26f014) + -0x2b1c);
  return;
}

