
/* 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_absolute(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_absolute
          (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;
  undefined **ppuVar15;
  undefined **ppuVar16;
  uint *puVar17;
  uint *puVar18;
  Output_data_reloc_base<4,_true,_64,_true> *this_00;
  pointer pOVar19;
  int iVar20;
  undefined4 *puVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  uint *puVar25;
  anon_union_4_4_c82d8563_for_u1_ aVar26;
  undefined4 uVar27;
  undefined *puVar28;
  uint uVar29;
  undefined4 *puVar30;
  Sized_relobj<64,_false> *pSVar31;
  undefined *puVar32;
  uint uVar33;
  undefined4 uVar34;
  code *pcVar35;
  code *pcVar36;
  undefined1 auStack_780 [44];
  int iStack_754;
  undefined4 *puStack_750;
  code *pcStack_74c;
  Output_data *pOStack_738;
  undefined4 *puStack_730;
  int iStack_72c;
  int iStack_728;
  code *pcStack_724;
  int iStack_710;
  undefined4 uStack_708;
  undefined4 uStack_704;
  undefined4 uStack_700;
  undefined4 uStack_6fc;
  undefined4 uStack_6f8;
  undefined4 uStack_6f4;
  code *pcStack_6f0;
  undefined4 uStack_6e8;
  int iStack_6e4;
  int iStack_6d4;
  int iStack_6d0;
  undefined4 uStack_6c8;
  undefined4 uStack_6c4;
  undefined4 *puStack_6c0;
  int iStack_6bc;
  int iStack_6b8;
  code *pcStack_6b4;
  int iStack_6a0;
  undefined4 uStack_698;
  undefined4 uStack_694;
  undefined4 uStack_690;
  undefined4 uStack_68c;
  undefined4 uStack_688;
  undefined4 uStack_684;
  code *pcStack_680;
  undefined4 uStack_678;
  int iStack_674;
  int iStack_664;
  int iStack_660;
  undefined4 uStack_658;
  undefined4 uStack_654;
  undefined4 *puStack_650;
  int iStack_64c;
  int iStack_648;
  code *pcStack_644;
  int iStack_630;
  int iStack_62c;
  undefined4 uStack_628;
  undefined4 uStack_624;
  undefined4 uStack_620;
  undefined4 uStack_61c;
  undefined4 uStack_618;
  undefined4 uStack_614;
  code *pcStack_610;
  undefined4 uStack_608;
  int iStack_604;
  int iStack_5f4;
  int iStack_5f0;
  undefined4 uStack_5e8;
  undefined4 uStack_5e4;
  undefined4 *puStack_5e0;
  int iStack_5dc;
  int iStack_5d8;
  code *pcStack_5d4;
  int iStack_5c0;
  undefined4 uStack_5b8;
  undefined4 uStack_5b4;
  undefined4 uStack_5b0;
  undefined4 uStack_5ac;
  undefined4 uStack_5a8;
  uint uStack_5a4;
  code *pcStack_5a0;
  undefined4 uStack_598;
  int iStack_594;
  int iStack_584;
  int iStack_580;
  undefined4 uStack_578;
  undefined4 uStack_574;
  undefined4 *puStack_570;
  int iStack_56c;
  int iStack_568;
  code *pcStack_564;
  int iStack_550;
  int iStack_54c;
  undefined4 uStack_548;
  undefined4 uStack_544;
  undefined4 uStack_540;
  undefined4 uStack_53c;
  uint uStack_538;
  undefined4 uStack_534;
  code *pcStack_530;
  undefined4 uStack_528;
  int iStack_524;
  int iStack_514;
  int iStack_510;
  undefined4 uStack_508;
  undefined4 uStack_504;
  undefined4 *puStack_500;
  int iStack_4fc;
  int iStack_4f8;
  code *pcStack_4f4;
  int iStack_4e0;
  undefined4 uStack_4d8;
  undefined4 uStack_4d4;
  undefined4 uStack_4d0;
  undefined4 uStack_4cc;
  undefined4 uStack_4c8;
  undefined4 uStack_4c4;
  code *pcStack_4c0;
  undefined4 uStack_4b8;
  int iStack_4b4;
  int iStack_4a4;
  int iStack_4a0;
  undefined4 uStack_498;
  undefined4 uStack_494;
  undefined4 *puStack_490;
  int iStack_48c;
  int iStack_488;
  code *pcStack_484;
  int iStack_470;
  int iStack_46c;
  undefined4 uStack_468;
  undefined4 uStack_464;
  undefined4 uStack_460;
  undefined4 uStack_45c;
  uint uStack_458;
  code *pcStack_450;
  undefined4 uStack_448;
  int iStack_444;
  int iStack_434;
  int iStack_430;
  undefined4 uStack_428;
  undefined4 uStack_424;
  undefined4 *puStack_420;
  int iStack_41c;
  uint uStack_418;
  code *pcStack_414;
  undefined4 uStack_400;
  int iStack_3fc;
  undefined4 uStack_3f8;
  undefined4 uStack_3f4;
  undefined4 uStack_3f0;
  undefined4 uStack_3ec;
  uint uStack_3e8;
  code *pcStack_3e0;
  undefined4 uStack_3d8;
  int iStack_3d4;
  int iStack_3c4;
  int iStack_3c0;
  undefined4 uStack_3b8;
  int iStack_3b4;
  uint *puStack_3b0;
  int iStack_3ac;
  int iStack_3a8;
  code *pcStack_3a4;
  undefined4 uStack_390;
  undefined4 uStack_38c;
  undefined4 uStack_388;
  undefined4 uStack_384;
  undefined4 uStack_380;
  int iStack_37c;
  undefined4 uStack_378;
  code *pcStack_370;
  uint uStack_368;
  int iStack_364;
  int iStack_354;
  int iStack_350;
  uint uStack_348;
  uint uStack_344;
  undefined4 *puStack_340;
  int iStack_33c;
  int iStack_338;
  code *pcStack_334;
  undefined4 uStack_320;
  undefined4 uStack_31c;
  undefined4 uStack_318;
  undefined4 uStack_314;
  uint uStack_310;
  uint uStack_30c;
  code *pcStack_308;
  undefined4 uStack_300;
  int iStack_2fc;
  int iStack_2ec;
  int iStack_2e8;
  undefined4 uStack_2e0;
  int iStack_2dc;
  undefined4 *puStack_2d8;
  int iStack_2d4;
  int iStack_2d0;
  code *pcStack_2cc;
  undefined4 uStack_2b8;
  undefined4 uStack_2b4;
  undefined4 uStack_2b0;
  int iStack_2ac;
  uint uStack_2a8;
  code *pcStack_2a0;
  undefined4 uStack_298;
  int iStack_294;
  int iStack_284;
  int iStack_280;
  undefined4 uStack_278;
  int iStack_274;
  undefined4 *puStack_270;
  int iStack_26c;
  int iStack_268;
  code *pcStack_264;
  undefined4 uStack_250;
  undefined4 uStack_24c;
  undefined4 uStack_248;
  int iStack_244;
  undefined4 uStack_240;
  code *pcStack_238;
  undefined4 uStack_230;
  int iStack_22c;
  int iStack_21c;
  int iStack_218;
  undefined4 uStack_210;
  int iStack_20c;
  undefined4 *puStack_208;
  int iStack_204;
  int iStack_200;
  code *pcStack_1fc;
  undefined4 uStack_1e8;
  undefined4 uStack_1e4;
  undefined4 uStack_1e0;
  int iStack_1dc;
  undefined4 uStack_1d8;
  code *pcStack_1d0;
  undefined4 uStack_1c8;
  int iStack_1c4;
  int iStack_1b4;
  int iStack_1b0;
  undefined4 uStack_1a8;
  int iStack_1a4;
  undefined4 *puStack_1a0;
  int iStack_19c;
  undefined *puStack_198;
  code *pcStack_194;
  undefined4 uStack_180;
  undefined4 uStack_17c;
  undefined4 uStack_178;
  int iStack_174;
  undefined4 uStack_170;
  int iStack_16c;
  code *pcStack_168;
  undefined4 uStack_160;
  int iStack_15c;
  int iStack_14c;
  int iStack_148;
  undefined4 uStack_140;
  int iStack_13c;
  undefined **ppuStack_138;
  int iStack_134;
  int iStack_130;
  code *pcStack_12c;
  undefined4 uStack_118;
  undefined4 uStack_114;
  undefined4 uStack_110;
  int iStack_10c;
  undefined4 uStack_108;
  int iStack_104;
  code *pcStack_100;
  undefined *puStack_f8;
  int iStack_f4;
  int iStack_e4;
  int iStack_e0;
  undefined *puStack_d8;
  undefined *puStack_d4;
  undefined4 *puStack_d0;
  undefined *puStack_cc;
  Sized_relobj<64,_false> *pSStack_c8;
  code *pcStack_c4;
  undefined8 uStack_b0;
  undefined4 uStack_a8;
  int iStack_a4;
  undefined *puStack_a0;
  undefined *puStack_9c;
  undefined4 uStack_98;
  int iStack_94;
  int iStack_84;
  int iStack_80;
  undefined4 uStack_78;
  int iStack_74;
  anon_union_4_4_c82d8563_for_u1_ *paStack_70;
  Output_data_reloc<4,_true,_64,_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 = 0;
  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;
      aVar26 = paVar11[2];
      aVar7 = paVar11[3];
      (pOVar2->rel_).u1_ = *paVar11;
      (pOVar2->rel_).u2_.relobj = pSVar31;
      *(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar26;
      *(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;
  puVar13 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;
  puVar32 = 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 = puVar32 + 0x276780;
  uStack_a8 = 0;
  paStack_70 = &local_38;
  pOStack_6c = this;
  pOStack_68 = od;
  pcStack_64 = pcVar35;
  uStack_b0 = local_50;
  (**(code **)(puVar32 + 0x26f4e0))(&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];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar20;
      puVar5[2] = uVar27;
      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_relative;
  iVar22 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar22,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);
  pcStack_100 = pcVar35 + 0x2765d4;
  uStack_108 = 1;
  uStack_110 = uStack_a8;
  iStack_10c = iStack_a4;
  uStack_118 = uStack_b0._4_4_;
  puStack_d0 = &uStack_98;
  puStack_cc = puVar13;
  pSStack_c8 = pSVar31;
  pcStack_c4 = pcVar36;
  (**(code **)(pcVar35 + 0x26f338))(&puStack_f8);
  puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  puStack_d4 = puStack_9c;
  puStack_d8 = puStack_a0;
  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {
    (**(code **)(pcStack_100 + -0x5ce0))(iVar22 + 0x38,puVar21,&puStack_f8);
    puVar21 = *(undefined4 **)(iVar22 + 0x3c);
    puVar32 = puStack_9c;
  }
  else {
    puVar30 = puVar21;
    ppuVar16 = &puStack_f8;
    do {
      ppuVar15 = ppuVar16;
      puVar14 = puVar30;
      ppuVar16 = ppuVar15 + 4;
      puVar32 = ppuVar15[1];
      puVar28 = ppuVar15[2];
      puVar13 = ppuVar15[3];
      *puVar14 = *ppuVar15;
      puVar14[1] = puVar32;
      puVar14[2] = puVar28;
      puVar14[3] = puVar13;
      puVar30 = puVar14 + 4;
    } while (ppuVar16 != &puStack_d8);
    puVar21 = puVar21 + 10;
    puVar13 = ppuVar15[5];
    puVar14[4] = *ppuVar16;
    puVar14[5] = puVar13;
    *(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);
  pcVar36 = add_output_section_generic;
  iVar23 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);
  pcStack_168 = pcVar35 + 0x276418;
  uStack_178 = uStack_110;
  uStack_170 = 0;
  iStack_174 = iStack_10c;
  uStack_180 = uStack_114;
  ppuStack_138 = &puStack_f8;
  iStack_134 = iVar22;
  iStack_130 = iVar20;
  pcStack_12c = pcVar36;
  (**(code **)(pcVar35 + 0x26f17c))(&uStack_160);
  puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  iStack_13c = iStack_104;
  uStack_140 = uStack_108;
  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {
    (**(code **)(pcStack_168 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_160);
    puVar21 = *(undefined4 **)(iVar23 + 0x3c);
    iVar20 = iStack_104;
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_160;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar20 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar20;
      puVar5[2] = uVar27;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_140);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar23 + 0x3c) = puVar21;
  }
  iVar22 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;
  if (-1 < *(int *)(iVar23 + 0x20) << 1) {
    *(int *)(iVar23 + 0x14) = iVar22 * 0x33333338;
    *(undefined4 *)(iVar23 + 0x10) = 0;
    puVar32[0x20] = puVar32[0x20] & 0xf7 | 8;
    if (iStack_14c << 0x1c < 0) {
      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;
    }
    if ((iStack_148 != -4) && (iStack_15c != 0)) {
      if (*(int *)(iStack_15c + 100) == 0) {
        *(int *)(iStack_15c + 0x60) = iVar22 * -0x33333333 + -1;
      }
      *(int *)(iStack_15c + 100) = *(int *)(iStack_15c + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_168 + -0x7810);
  pcVar36 = add_output_section;
  iVar22 = *(int *)(pcStack_168 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_168 + -0x7924) + -0x2b1c);
  pcStack_1d0 = pcVar35 + 0x276260;
  uStack_1e0 = uStack_178;
  uStack_1d8 = 0;
  iStack_1dc = iStack_174;
  uStack_1e8 = uStack_17c;
  puStack_1a0 = &uStack_160;
  iStack_19c = iVar23;
  puStack_198 = puVar32;
  pcStack_194 = pcVar36;
  (**(code **)(pcVar35 + 0x26efc4))(&uStack_1c8);
  puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  iStack_1a4 = iStack_16c;
  uStack_1a8 = uStack_170;
  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {
    (**(code **)(pcStack_1d0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_1c8);
    puVar21 = *(undefined4 **)(iVar22 + 0x3c);
    iVar23 = iStack_16c;
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_1c8;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar23 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar23;
      puVar5[2] = uVar27;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_1a8);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar22 + 0x3c) = puVar21;
  }
  iVar24 = (int)puVar21 - *(int *)(iVar22 + 0x38) >> 3;
  if (-1 < *(int *)(iVar22 + 0x20) << 1) {
    *(int *)(iVar22 + 0x14) = iVar24 * 0x33333338;
    *(undefined4 *)(iVar22 + 0x10) = 0;
    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;
    if (iStack_1b4 << 0x1c < 0) {
      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;
    }
    if ((iStack_1b0 != -4) && (iStack_1c4 != 0)) {
      if (*(int *)(iStack_1c4 + 100) == 0) {
        *(int *)(iStack_1c4 + 0x60) = iVar24 * -0x33333333 + -1;
      }
      *(int *)(iStack_1c4 + 100) = *(int *)(iStack_1c4 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_1d0 + -0x7810);
  pcVar36 = add_global;
  iVar24 = *(int *)(pcStack_1d0 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar24,0x231,*(int *)(pcStack_1d0 + -0x7924) + -0x2b1c);
  pcStack_238 = pcVar35 + 0x2760a8;
  uStack_250 = uStack_1e8;
  uStack_240 = 0;
  iStack_244 = 0;
  uStack_248 = 0;
  uStack_24c = uStack_1e4;
  puStack_208 = &uStack_1c8;
  iStack_204 = iVar22;
  iStack_200 = iVar20;
  pcStack_1fc = pcVar36;
  (**(code **)(pcVar35 + 0x26ead0))(&uStack_230);
  puVar21 = *(undefined4 **)(iVar24 + 0x3c);
  iStack_20c = iStack_1dc;
  uStack_210 = uStack_1e0;
  if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {
    iVar20 = iStack_1dc;
    (**(code **)(pcStack_238 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_230);
    puVar21 = *(undefined4 **)(iVar24 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_230;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar20 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar20;
      puVar5[2] = uVar27;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_210);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar24 + 0x3c) = puVar21;
  }
  iVar22 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;
  if (-1 < *(int *)(iVar24 + 0x20) << 1) {
    *(int *)(iVar24 + 0x14) = iVar22 * 0x33333338;
    *(undefined4 *)(iVar24 + 0x10) = 0;
    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;
    if (iStack_21c << 0x1c < 0) {
      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;
    }
    if ((iStack_218 != -4) && (iStack_22c != 0)) {
      if (*(int *)(iStack_22c + 100) == 0) {
        *(int *)(iStack_22c + 0x60) = iVar22 * -0x33333333 + -1;
      }
      *(int *)(iStack_22c + 100) = *(int *)(iStack_22c + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_238 + -0x7810);
  pcVar36 = add_symbolless_global_addend;
  iVar22 = *(int *)(pcStack_238 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_238 + -0x7924) + -0x2b1c);
  pcStack_2a0 = pcVar35 + 0x275ef4;
  iStack_2ac = 1;
  uStack_2a8 = 0;
  uStack_2b0 = 0;
  uStack_2b4 = uStack_24c;
  uStack_2b8 = uStack_250;
  puStack_270 = &uStack_230;
  iStack_26c = iVar24;
  iStack_268 = iVar23;
  pcStack_264 = pcVar36;
  (**(code **)(pcVar35 + 0x26e91c))(&uStack_298);
  puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  iStack_274 = iStack_244;
  uStack_278 = uStack_248;
  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {
    iVar23 = iStack_244;
    (**(code **)(pcStack_2a0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_298);
    puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_298;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar23 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar23;
      puVar5[2] = uVar27;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_278);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar22 + 0x3c) = puVar21;
  }
  iVar24 = (int)puVar21 - *(int *)(iVar22 + 0x38) >> 3;
  if (-1 < *(int *)(iVar22 + 0x20) << 1) {
    *(int *)(iVar22 + 0x14) = iVar24 * 0x33333338;
    *(undefined4 *)(iVar22 + 0x10) = 0;
    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;
    if (iStack_284 << 0x1c < 0) {
      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;
    }
    if ((iStack_280 != -4) && (iStack_294 != 0)) {
      if (*(int *)(iStack_294 + 100) == 0) {
        *(int *)(iStack_294 + 0x60) = iVar24 * -0x33333333 + -1;
      }
      *(int *)(iStack_294 + 100) = *(int *)(iStack_294 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_2a0 + -0x7810);
  pcVar36 = add_global_relative;
  iVar24 = *(int *)(pcStack_2a0 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar24,0x231,*(int *)(pcStack_2a0 + -0x7924) + -0x2b1c);
  pcStack_308 = pcVar35 + 0x275d3c;
  uStack_310 = uStack_2a8 & 0xff;
  uStack_314 = 1;
  uStack_318 = 1;
  uStack_320 = uStack_2b8;
  uStack_31c = uStack_2b4;
  puStack_2d8 = &uStack_298;
  iStack_2d4 = iVar22;
  iStack_2d0 = iVar20;
  pcStack_2cc = pcVar36;
  (**(code **)(pcVar35 + 0x26e764))(&uStack_300);
  puVar21 = *(undefined4 **)(iVar24 + 0x3c);
  iStack_2dc = iStack_2ac;
  uStack_2e0 = uStack_2b0;
  if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {
    iVar20 = iStack_2ac;
    (**(code **)(pcStack_308 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_300);
    puVar21 = *(undefined4 **)(iVar24 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_300;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar20 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar20;
      puVar5[2] = uVar27;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_2e0);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar24 + 0x3c) = puVar21;
  }
  iVar22 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;
  if (-1 < *(int *)(iVar24 + 0x20) << 1) {
    *(int *)(iVar24 + 0x14) = iVar22 * 0x33333338;
    *(undefined4 *)(iVar24 + 0x10) = 0;
    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;
    if (iStack_2ec << 0x1c < 0) {
      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;
    }
    if ((iStack_2e8 != -4) && (iStack_2fc != 0)) {
      if (*(int *)(iStack_2fc + 100) == 0) {
        *(int *)(iStack_2fc + 0x60) = iVar22 * -0x33333333 + -1;
      }
      *(int *)(iStack_2fc + 100) = *(int *)(iStack_2fc + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_308 + -0x7810);
  pcVar36 = add_global;
  iVar22 = *(int *)(pcStack_308 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_308 + -0x7924) + -0x2b1c);
  pcStack_370 = pcVar35 + 0x275b80;
  uStack_388 = uStack_318;
  uStack_378 = 0;
  iStack_37c = 0;
  uStack_380 = 0;
  uStack_384 = uStack_314;
  uStack_390 = uStack_31c;
  puStack_340 = &uStack_300;
  iStack_33c = iVar24;
  iStack_338 = iVar23;
  pcStack_334 = pcVar36;
  (**(code **)(pcVar35 + 0x26e7d0))(&uStack_368);
  puVar25 = *(uint **)(iVar22 + 0x3c);
  uStack_344 = uStack_30c;
  uStack_348 = uStack_310;
  if (puVar25 == *(uint **)(iVar22 + 0x40)) {
    (**(code **)(pcStack_370 + -0x5ce0))(iVar22 + 0x38,puVar25,&uStack_368);
    puVar25 = *(uint **)(iVar22 + 0x3c);
    uVar33 = uStack_30c;
  }
  else {
    puVar1 = puVar25;
    puVar18 = &uStack_368;
    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_348);
    puVar25 = puVar25 + 10;
    uVar9 = puVar17[5];
    puVar4[4] = *puVar18;
    puVar4[5] = uVar9;
    *(uint **)(iVar22 + 0x3c) = puVar25;
  }
  iVar23 = (int)puVar25 - *(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_354 << 0x1c < 0) {
      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;
    }
    if ((iStack_350 != -4) && (iStack_364 != 0)) {
      if (*(int *)(iStack_364 + 100) == 0) {
        *(int *)(iStack_364 + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_364 + 100) = *(int *)(iStack_364 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_370 + -0x7810);
  pcVar36 = add_symbolless_global_addend;
  iVar23 = *(int *)(pcStack_370 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_370 + -0x7924) + -0x2b1c);
  pcStack_3e0 = pcVar35 + 0x2759c0;
  uStack_3ec = 1;
  uStack_3f8 = uStack_388;
  uStack_3e8 = 0;
  uStack_3f0 = 0;
  uStack_3f4 = uStack_384;
  uStack_400 = uStack_38c;
  puStack_3b0 = &uStack_368;
  iStack_3ac = iVar22;
  iStack_3a8 = iVar20;
  pcStack_3a4 = pcVar36;
  (**(code **)(pcVar35 + 0x26e610))(&uStack_3d8);
  puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  iStack_3b4 = iStack_37c;
  uStack_3b8 = uStack_380;
  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {
    iVar20 = iStack_37c;
    (**(code **)(pcStack_3e0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_3d8);
    puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_3d8;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      iVar20 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = iVar20;
      puVar5[2] = uVar27;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_3b8);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar23 + 0x3c) = puVar21;
  }
  iVar22 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;
  if (-1 < *(int *)(iVar23 + 0x20) << 1) {
    *(int *)(iVar23 + 0x14) = iVar22 * 0x33333338;
    *(undefined4 *)(iVar23 + 0x10) = 0;
    *(byte *)(uVar33 + 0x20) = *(byte *)(uVar33 + 0x20) & 0xf7 | 8;
    if (iStack_3c4 << 0x1c < 0) {
      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;
    }
    if ((iStack_3c0 != -4) && (iStack_3d4 != 0)) {
      if (*(int *)(iStack_3d4 + 100) == 0) {
        *(int *)(iStack_3d4 + 0x60) = iVar22 * -0x33333333 + -1;
      }
      *(int *)(iStack_3d4 + 100) = *(int *)(iStack_3d4 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_3e0 + -0x7810);
  pcVar36 = add_global_relative;
  iVar22 = *(int *)(pcStack_3e0 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_3e0 + -0x7924) + -0x2b1c);
  pcStack_450 = pcVar35 + 0x2757fc;
  uStack_458 = uStack_3e8 & 0xff;
  uStack_45c = 1;
  uStack_460 = 1;
  uStack_468 = uStack_3f8;
  uStack_464 = uStack_3f4;
  iStack_470 = iStack_3fc;
  puStack_420 = &uStack_3d8;
  iStack_41c = iVar23;
  uStack_418 = uVar33;
  pcStack_414 = pcVar36;
  (**(code **)(pcVar35 + 0x26e44c))(&uStack_448);
  puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  uStack_424 = uStack_3ec;
  uStack_428 = uStack_3f0;
  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {
    (**(code **)(pcStack_450 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_448);
    puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_448;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar34 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar34;
      puVar5[2] = uVar27;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_428);
    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_434 << 0x1c < 0) {
      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;
    }
    if ((iStack_430 != -4) && (iStack_444 != 0)) {
      if (*(int *)(iStack_444 + 100) == 0) {
        *(int *)(iStack_444 + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_444 + 100) = *(int *)(iStack_444 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_450 + -0x7810);
  pcVar36 = add_local;
  iVar24 = *(int *)(pcStack_450 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar24,0x231,*(int *)(pcStack_450 + -0x7924) + -0x2b1c);
  iVar23 = iStack_470;
  pcStack_4c0 = pcVar35 + 0x275634;
  uStack_4d8 = uStack_468;
  uStack_4c4 = 0;
  uStack_4c8 = 0;
  uStack_4cc = 0;
  uStack_4d0 = 0;
  uStack_4d4 = uStack_464;
  iStack_4e0 = iStack_46c;
  puStack_490 = &uStack_448;
  iStack_48c = iVar22;
  iStack_488 = iVar20;
  pcStack_484 = pcVar36;
  (**(code **)(pcVar35 + 0x26e06c))(&uStack_4b8);
  puVar21 = *(undefined4 **)(iVar24 + 0x3c);
  uStack_494 = uStack_45c;
  uStack_498 = uStack_460;
  if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {
    (**(code **)(pcStack_4c0 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_4b8);
    puVar21 = *(undefined4 **)(iVar24 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_4b8;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar34 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar34;
      puVar5[2] = uVar27;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_498);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar24 + 0x3c) = puVar21;
  }
  iVar20 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;
  if (-1 < *(int *)(iVar24 + 0x20) << 1) {
    *(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;
    *(undefined4 *)(iVar24 + 0x10) = 0;
    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;
    if (iStack_4a4 << 0x1c < 0) {
      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;
    }
    if ((iStack_4a0 != -4) && (iStack_4b4 != 0)) {
      if (*(int *)(iStack_4b4 + 100) == 0) {
        *(int *)(iStack_4b4 + 0x60) = iVar20 * -0x33333333 + -1;
      }
      *(int *)(iStack_4b4 + 100) = *(int *)(iStack_4b4 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_4c0 + -0x7810);
  pcVar36 = add_local;
  iVar22 = *(int *)(pcStack_4c0 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_4c0 + -0x7924) + -0x2b1c);
  iVar20 = iStack_4e0;
  pcStack_530 = pcVar35 + 0x275474;
  iStack_4f8 = iVar23;
  uStack_548 = uStack_4d8;
  uStack_534 = 0;
  uStack_538 = 0;
  uStack_53c = 0;
  uStack_540 = 0;
  uStack_544 = uStack_4d4;
  iStack_550 = iStack_4e0;
  puStack_500 = &uStack_4b8;
  iStack_4fc = iVar24;
  pcStack_4f4 = pcVar36;
  (**(code **)(pcVar35 + 0x26e030))(&uStack_528);
  puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  uStack_504 = uStack_4cc;
  uStack_508 = uStack_4d0;
  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {
    (**(code **)(pcStack_530 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_528);
    puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_528;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar34 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar34;
      puVar5[2] = uVar27;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_508);
    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_514 << 0x1c < 0) {
      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;
    }
    if ((iStack_510 != -4) && (iStack_524 != 0)) {
      if (*(int *)(iStack_524 + 100) == 0) {
        *(int *)(iStack_524 + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_524 + 100) = *(int *)(iStack_524 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_530 + -0x7810);
  pcVar36 = add_local_relative;
  iVar24 = *(int *)(pcStack_530 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar24,0x231,*(int *)(pcStack_530 + -0x7924) + -0x2b1c);
  iVar23 = iStack_550;
  pcStack_5a0 = pcVar35 + 0x2752b8;
  uStack_5a4 = uStack_538 & 0xff;
  uStack_5ac = 1;
  uStack_5b0 = 1;
  uStack_5b8 = uStack_548;
  iStack_568 = iVar20;
  uStack_5a8 = 0;
  uStack_5b4 = uStack_544;
  iStack_5c0 = iStack_54c;
  puStack_570 = &uStack_528;
  iStack_56c = iVar22;
  pcStack_564 = pcVar36;
  (**(code **)(pcVar35 + 0x26dcf0))(&uStack_598);
  puVar21 = *(undefined4 **)(iVar24 + 0x3c);
  uStack_574 = uStack_53c;
  uStack_578 = uStack_540;
  if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {
    (**(code **)(pcStack_5a0 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_598);
    puVar21 = *(undefined4 **)(iVar24 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_598;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar34 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar34;
      puVar5[2] = uVar27;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_578);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar24 + 0x3c) = puVar21;
  }
  iVar20 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;
  if (-1 < *(int *)(iVar24 + 0x20) << 1) {
    *(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;
    *(undefined4 *)(iVar24 + 0x10) = 0;
    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;
    if (iStack_584 << 0x1c < 0) {
      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;
    }
    if ((iStack_580 != -4) && (iStack_594 != 0)) {
      if (*(int *)(iStack_594 + 100) == 0) {
        *(int *)(iStack_594 + 0x60) = iVar20 * -0x33333333 + -1;
      }
      *(int *)(iStack_594 + 100) = *(int *)(iStack_594 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_5a0 + -0x7810);
  pcVar36 = add_symbolless_local_addend;
  iVar22 = *(int *)(pcStack_5a0 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_5a0 + -0x7924) + -0x2b1c);
  iVar20 = iStack_5c0;
  pcStack_610 = pcVar35 + 0x2750f0;
  iStack_5d8 = iVar23;
  uStack_61c = 1;
  uStack_614 = 0;
  uStack_618 = 0;
  uStack_620 = 0;
  uStack_624 = uStack_5b4;
  uStack_628 = uStack_5b8;
  iStack_630 = iStack_5c0;
  puStack_5e0 = &uStack_598;
  iStack_5dc = iVar24;
  pcStack_5d4 = pcVar36;
  (**(code **)(pcVar35 + 0x26dcac))(&uStack_608);
  puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  uStack_5e4 = uStack_5ac;
  uStack_5e8 = uStack_5b0;
  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {
    (**(code **)(pcStack_610 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_608);
    puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_608;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar34 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar34;
      puVar5[2] = uVar27;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_5e8);
    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_5f4 << 0x1c < 0) {
      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;
    }
    if ((iStack_5f0 != -4) && (iStack_604 != 0)) {
      if (*(int *)(iStack_604 + 100) == 0) {
        *(int *)(iStack_604 + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_604 + 100) = *(int *)(iStack_604 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_610 + -0x7810);
  pcVar36 = add_symbolless_local_addend;
  iVar24 = *(int *)(pcStack_610 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar24,0x231,*(int *)(pcStack_610 + -0x7924) + -0x2b1c);
  iVar23 = iStack_630;
  pcStack_680 = pcVar35 + 0x274f30;
  uStack_68c = 1;
  uStack_698 = uStack_628;
  iStack_648 = iVar20;
  uStack_684 = 0;
  uStack_688 = 0;
  uStack_690 = 0;
  uStack_694 = uStack_624;
  iStack_6a0 = iStack_62c;
  puStack_650 = &uStack_608;
  iStack_64c = iVar22;
  pcStack_644 = pcVar36;
  (**(code **)(pcVar35 + 0x26d968))(&uStack_678);
  puVar21 = *(undefined4 **)(iVar24 + 0x3c);
  uStack_654 = uStack_61c;
  uStack_658 = uStack_620;
  if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {
    (**(code **)(pcStack_680 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_678);
    puVar21 = *(undefined4 **)(iVar24 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_678;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar34 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar34;
      puVar5[2] = uVar27;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_658);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar5[4] = *puVar14;
    puVar5[5] = uVar8;
    *(undefined4 **)(iVar24 + 0x3c) = puVar21;
  }
  iVar20 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;
  if (-1 < *(int *)(iVar24 + 0x20) << 1) {
    *(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;
    *(undefined4 *)(iVar24 + 0x10) = 0;
    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;
    if (iStack_664 << 0x1c < 0) {
      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;
    }
    if ((iStack_660 != -4) && (iStack_674 != 0)) {
      if (*(int *)(iStack_674 + 100) == 0) {
        *(int *)(iStack_674 + 0x60) = iVar20 * -0x33333333 + -1;
      }
      *(int *)(iStack_674 + 100) = *(int *)(iStack_674 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)(pcStack_680 + -0x7810);
  pcVar36 = add_local_section;
  iVar22 = *(int *)(pcStack_680 + -0x7fc4) + 0x3574;
  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_680 + -0x7924) + -0x2b1c);
  iVar20 = iStack_6a0;
  pcStack_6f0 = pcVar35 + 0x274d6c;
  iStack_6b8 = iVar23;
  uStack_6f8 = 1;
  uStack_6f4 = 0;
  uStack_6fc = 0;
  uStack_700 = 0;
  uStack_704 = uStack_694;
  uStack_708 = uStack_698;
  iStack_710 = iStack_6a0;
  puStack_6c0 = &uStack_678;
  iStack_6bc = iVar24;
  pcStack_6b4 = pcVar36;
  (**(code **)(pcVar35 + 0x26d928))(&uStack_6e8);
  puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  uStack_6c4 = uStack_68c;
  uStack_6c8 = uStack_690;
  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {
    (**(code **)(pcStack_6f0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_6e8);
    puVar21 = *(undefined4 **)(iVar22 + 0x3c);
  }
  else {
    puVar30 = puVar21;
    puVar14 = &uStack_6e8;
    do {
      puVar6 = puVar14;
      puVar5 = puVar30;
      puVar14 = puVar6 + 4;
      uVar34 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar5 = *puVar6;
      puVar5[1] = uVar34;
      puVar5[2] = uVar27;
      puVar5[3] = uVar8;
      puVar30 = puVar5 + 4;
    } while (puVar14 != &uStack_6c8);
    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_6d4 << 0x1c < 0) {
      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;
    }
    if ((iStack_6d0 != -4) && (iStack_6e4 != 0)) {
      if (*(int *)(iStack_6e4 + 100) == 0) {
        *(int *)(iStack_6e4 + 0x60) = iVar23 * -0x33333333 + -1;
      }
      *(int *)(iStack_6e4 + 100) = *(int *)(iStack_6e4 + 100) + 1;
    }
    return;
  }
  iVar24 = 0x231;
  pcVar35 = *(code **)(pcStack_6f0 + -0x7810);
  puVar30 = (undefined4 *)(*(int *)(pcStack_6f0 + -0x7924) + -0x2b1c);
  pcVar36 = Output_data_reloc_base<4,_true,_64,_true>::add;
  iVar23 = *(int *)(pcStack_6f0 + -0x7fc4) + 0x3574;
  (*pcVar35)();
  pOStack_738 = (Output_data *)(pcVar35 + 0x274bac);
  iStack_728 = iVar20;
  puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  puStack_730 = &uStack_6e8;
  iStack_72c = iVar22;
  pcStack_724 = pcVar36;
  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {
    (**(code **)(pcVar35 + 0x26eefc))(iVar23 + 0x38);
    puVar21 = *(undefined4 **)(iVar23 + 0x3c);
  }
  else {
    puVar14 = puVar30;
    puVar5 = puVar21;
    do {
      puVar10 = puVar5;
      puVar6 = puVar14;
      puVar14 = puVar6 + 4;
      uVar34 = puVar6[1];
      uVar27 = puVar6[2];
      uVar8 = puVar6[3];
      *puVar10 = *puVar6;
      puVar10[1] = uVar34;
      puVar10[2] = uVar27;
      puVar10[3] = uVar8;
      puVar5 = puVar10 + 4;
    } while (puVar14 != puVar30 + 8);
    puVar21 = puVar21 + 10;
    uVar8 = puVar6[5];
    puVar10[4] = *puVar14;
    puVar10[5] = uVar8;
    *(undefined4 **)(iVar23 + 0x3c) = puVar21;
  }
  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;
  if (-1 < *(int *)(iVar23 + 0x20) << 1) {
    iVar22 = puVar30[5];
    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;
    *(undefined4 *)(iVar23 + 0x10) = 0;
    *(byte *)(iVar24 + 0x20) = *(byte *)(iVar24 + 0x20) & 0xf7 | 8;
    if (iVar22 << 0x1c < 0) {
      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;
    }
    if ((puVar30[6] != -4) && (iVar22 = puVar30[1], iVar22 != 0)) {
      if (*(int *)(iVar22 + 100) == 0) {
        *(int *)(iVar22 + 0x60) = iVar20 * -0x33333333 + -1;
      }
      *(int *)(iVar22 + 100) = *(int *)(iVar22 + 100) + 1;
    }
    return;
  }
  pcVar35 = *(code **)&pOStack_738[-0x301].offset_;
  pcVar36 = Output_data_reloc<4,_true,_64,_true>::add_local;
  this_00 = (Output_data_reloc_base<4,_true,_64,_true> *)
            ((int)pOStack_738[-0x332].address_ + 0x3574);
  (*pcVar35)(this_00,0x231,(int)pOStack_738[-0x308].offset_ + -0x2b1c);
  iStack_754 = iVar23;
  puStack_750 = puVar30;
  pcStack_74c = pcVar36;
  (**(code **)(pcVar35 + 0x26d47c))((Output_reloc_type *)auStack_780);
  auStack_780._36_4_ = pcStack_724;
  auStack_780._32_4_ = iStack_728;
  Output_data_reloc_base<4,_true,_64,_true>::add
            (this_00,pOStack_738,(Output_reloc_type *)auStack_780);
  return;
}



void FUN_00252908(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,
                 undefined4 param_10)

{
  undefined4 *puVar1;
  undefined4 *puVar2;
  undefined4 uVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  undefined4 *puVar6;
  int iVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 local_38;
  int local_34;
  int local_24;
  int local_20;
  undefined4 local_18;
  undefined4 local_14;
  
  (*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0);
  puVar6 = *(undefined4 **)(param_1 + 0x3c);
  local_14 = param_10;
  local_18 = param_9;
  if (puVar6 == *(undefined4 **)(param_1 + 0x40)) {
    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)
              (param_1 + 0x38,puVar6,&local_38);
    puVar6 = *(undefined4 **)(param_1 + 0x3c);
  }
  else {
    puVar1 = puVar6;
    puVar5 = &local_38;
    do {
      puVar4 = puVar5;
      puVar2 = puVar1;
      puVar5 = puVar4 + 4;
      uVar9 = puVar4[1];
      uVar8 = puVar4[2];
      uVar3 = puVar4[3];
      *puVar2 = *puVar4;
      puVar2[1] = uVar9;
      puVar2[2] = uVar8;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar5 != &local_18);
    puVar6 = puVar6 + 10;
    uVar3 = puVar4[5];
    puVar2[4] = *puVar5;
    puVar2[5] = uVar3;
    *(undefined4 **)(param_1 + 0x3c) = puVar6;
  }
  iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3;
  if (-1 < *(int *)(param_1 + 0x20) << 1) {
    *(int *)(param_1 + 0x14) = iVar7 * 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) = iVar7 * -0x33333333 + -1;
      }
      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;
    }
    return;
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,
             PTR_s_in_a_linker_script_004c191c + -0x2b1c);
  return;
}


lui gp,0x27
addiu gp,gp,0x6938
addu gp,gp,t9
addiu sp,sp,-0x60
lw t9,-0x50d0(gp)
or v0,a3,zero
lw v1,0x7c(sp)
lw a3,0x70(sp)
sw s2,0x58(sp)
or s2,a2,zero
or a2,v0,zero
sw s0,0x50(sp)
sw s1,0x54(sp)
addiu s0,sp,0x28
sw gp,0x20(sp)
or s1,a0,zero
sw ra,0x5c(sp)
or a0,s0,zero
sw zero,0x18(sp)
sw v1,0x14(sp)
lw v0,0x78(sp)
jalr t9
_sw v0,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,0x00252a88
_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,0x00252990
_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,0x00252aa4
_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,0x00252a6c
_sb v1,0x20(s2)
lw v1,0x40(sp)
li v0,-0x4
beq v1,v0,0x00252a54
_lw v0,0x2c(sp)
beq v0,zero,0x00252a58
_lw ra,0x5c(sp)
lw v1,0x64(v0)
beq v1,zero,0x00252a7c
_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 0x00252a28
_sw v0,0x30(s1)
addiu a1,a1,-0x1
b 0x00252a4c
_sw a1,0x60(v0)
lw t9,-0x5ce0(gp)
addiu a0,s1,0x38
jalr t9
_or a2,s0,zero
lw gp,0x20(sp)
b 0x002529d4
_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_00252908(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                 undefined4 param_10)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  undefined4 local_14;\n  \n  (*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0);\n  puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar6 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&local_38);\n    puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }\n  iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar7 * 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) = iVar7 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  return;\n}\n\n" (function_definition "void FUN_00252908(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                 undefined4 param_10)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  undefined4 local_14;\n  \n  (*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0);\n  puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar6 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&local_38);\n    puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }\n  iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar7 * 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) = iVar7 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  return;\n}" primitive_type (function_declarator "FUN_00252908(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                 undefined4 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                 undefined4 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 "undefined4 param_10" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  undefined4 local_14;\n  \n  (*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0);\n  puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar6 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&local_38);\n    puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }\n  iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar7 * 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) = iVar7 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -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 "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier 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 "undefined4 local_14;" type_identifier identifier ;) (expression_statement "(*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0);" (call_expression "(*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0)" (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,param_7,param_8,0)" ( (pointer_expression "&local_38" & identifier) , identifier , identifier , identifier , identifier , identifier , number_literal ))) ;) (expression_statement "puVar6 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar6 = *(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 (puVar6 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&local_38);\n    puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }" if (parenthesized_expression "(puVar6 == *(undefined4 **)(param_1 + 0x40))" ( (binary_expression "puVar6 == *(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,puVar6,&local_38);\n    puVar6 = *(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,puVar6,&local_38);" (call_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&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,puVar6,&local_38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "puVar6 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar6 = *(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 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }" else (compound_statement "{\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }" { (expression_statement "puVar1 = puVar6;" (assignment_expression "puVar1 = puVar6" identifier = identifier) ;) (expression_statement "puVar5 = &local_38;" (assignment_expression "puVar5 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (do_statement "do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);" do (compound_statement "{\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar5 = puVar4 + 4;" (assignment_expression "puVar5 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "uVar9 = puVar4[1];" (assignment_expression "uVar9 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar4[2];" (assignment_expression "uVar8 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar4[3];" (assignment_expression "uVar3 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar4;" (assignment_expression "*puVar2 = *puVar4" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar2[1] = uVar9;" (assignment_expression "puVar2[1] = uVar9" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar8;" (assignment_expression "puVar2[2] = uVar8" (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 "(puVar5 != &local_18)" ( (binary_expression "puVar5 != &local_18" identifier != (pointer_expression "&local_18" & identifier)) )) ;) (expression_statement "puVar6 = puVar6 + 10;" (assignment_expression "puVar6 = puVar6 + 10" identifier = (binary_expression "puVar6 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar4[5];" (assignment_expression "uVar3 = puVar4[5]" identifier = (subscript_expression "puVar4[5]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = *puVar5;" (assignment_expression "puVar2[4] = *puVar5" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (pointer_expression "*puVar5" * 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) = puVar6;" (assignment_expression "*(undefined4 **)(param_1 + 0x3c) = puVar6" (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 "iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3;" (assignment_expression "iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3" identifier = (binary_expression "(int)puVar6 - *(int *)(param_1 + 0x38) >> 3" (binary_expression "(int)puVar6 - *(int *)(param_1 + 0x38)" (cast_expression "(int)puVar6" ( (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) = iVar7 * 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) = iVar7 * -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) = iVar7 * 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) = iVar7 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(param_1 + 0x14) = iVar7 * 0x33333338;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar7 * 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 "iVar7 * 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) = iVar7 * -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) = iVar7 * -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) = iVar7 * -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) = iVar7 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(local_34 + 0x60) = iVar7 * -0x33333333 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar7 * -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 "iVar7 * -0x33333333 + -1" (binary_expression "iVar7 * -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 "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -0x2b1c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             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 "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -0x2b1c)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2b1c" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* DWARF original prototype: void add_absolute(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_absolute\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  undefined **ppuVar15;\n  undefined **ppuVar16;\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  int iVar24;\n  uint *puVar25;\n  anon_union_4_4_c82d8563_for_u1_ aVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  uint uVar29;\n  undefined4 *puVar30;\n  Sized_relobj<64,_false> *pSVar31;\n  undefined *puVar32;\n  uint uVar33;\n  undefined4 uVar34;\n  code *pcVar35;\n  code *pcVar36;\n  undefined1 auStack_780 [44];\n  int iStack_754;\n  undefined4 *puStack_750;\n  code *pcStack_74c;\n  Output_data *pOStack_738;\n  undefined4 *puStack_730;\n  int iStack_72c;\n  int iStack_728;\n  code *pcStack_724;\n  int iStack_710;\n  undefined4 uStack_708;\n  undefined4 uStack_704;\n  undefined4 uStack_700;\n  undefined4 uStack_6fc;\n  undefined4 uStack_6f8;\n  undefined4 uStack_6f4;\n  code *pcStack_6f0;\n  undefined4 uStack_6e8;\n  int iStack_6e4;\n  int iStack_6d4;\n  int iStack_6d0;\n  undefined4 uStack_6c8;\n  undefined4 uStack_6c4;\n  undefined4 *puStack_6c0;\n  int iStack_6bc;\n  int iStack_6b8;\n  code *pcStack_6b4;\n  int iStack_6a0;\n  undefined4 uStack_698;\n  undefined4 uStack_694;\n  undefined4 uStack_690;\n  undefined4 uStack_68c;\n  undefined4 uStack_688;\n  undefined4 uStack_684;\n  code *pcStack_680;\n  undefined4 uStack_678;\n  int iStack_674;\n  int iStack_664;\n  int iStack_660;\n  undefined4 uStack_658;\n  undefined4 uStack_654;\n  undefined4 *puStack_650;\n  int iStack_64c;\n  int iStack_648;\n  code *pcStack_644;\n  int iStack_630;\n  int iStack_62c;\n  undefined4 uStack_628;\n  undefined4 uStack_624;\n  undefined4 uStack_620;\n  undefined4 uStack_61c;\n  undefined4 uStack_618;\n  undefined4 uStack_614;\n  code *pcStack_610;\n  undefined4 uStack_608;\n  int iStack_604;\n  int iStack_5f4;\n  int iStack_5f0;\n  undefined4 uStack_5e8;\n  undefined4 uStack_5e4;\n  undefined4 *puStack_5e0;\n  int iStack_5dc;\n  int iStack_5d8;\n  code *pcStack_5d4;\n  int iStack_5c0;\n  undefined4 uStack_5b8;\n  undefined4 uStack_5b4;\n  undefined4 uStack_5b0;\n  undefined4 uStack_5ac;\n  undefined4 uStack_5a8;\n  uint uStack_5a4;\n  code *pcStack_5a0;\n  undefined4 uStack_598;\n  int iStack_594;\n  int iStack_584;\n  int iStack_580;\n  undefined4 uStack_578;\n  undefined4 uStack_574;\n  undefined4 *puStack_570;\n  int iStack_56c;\n  int iStack_568;\n  code *pcStack_564;\n  int iStack_550;\n  int iStack_54c;\n  undefined4 uStack_548;\n  undefined4 uStack_544;\n  undefined4 uStack_540;\n  undefined4 uStack_53c;\n  uint uStack_538;\n  undefined4 uStack_534;\n  code *pcStack_530;\n  undefined4 uStack_528;\n  int iStack_524;\n  int iStack_514;\n  int iStack_510;\n  undefined4 uStack_508;\n  undefined4 uStack_504;\n  undefined4 *puStack_500;\n  int iStack_4fc;\n  int iStack_4f8;\n  code *pcStack_4f4;\n  int iStack_4e0;\n  undefined4 uStack_4d8;\n  undefined4 uStack_4d4;\n  undefined4 uStack_4d0;\n  undefined4 uStack_4cc;\n  undefined4 uStack_4c8;\n  undefined4 uStack_4c4;\n  code *pcStack_4c0;\n  undefined4 uStack_4b8;\n  int iStack_4b4;\n  int iStack_4a4;\n  int iStack_4a0;\n  undefined4 uStack_498;\n  undefined4 uStack_494;\n  undefined4 *puStack_490;\n  int iStack_48c;\n  int iStack_488;\n  code *pcStack_484;\n  int iStack_470;\n  int iStack_46c;\n  undefined4 uStack_468;\n  undefined4 uStack_464;\n  undefined4 uStack_460;\n  undefined4 uStack_45c;\n  uint uStack_458;\n  code *pcStack_450;\n  undefined4 uStack_448;\n  int iStack_444;\n  int iStack_434;\n  int iStack_430;\n  undefined4 uStack_428;\n  undefined4 uStack_424;\n  undefined4 *puStack_420;\n  int iStack_41c;\n  uint uStack_418;\n  code *pcStack_414;\n  undefined4 uStack_400;\n  int iStack_3fc;\n  undefined4 uStack_3f8;\n  undefined4 uStack_3f4;\n  undefined4 uStack_3f0;\n  undefined4 uStack_3ec;\n  uint uStack_3e8;\n  code *pcStack_3e0;\n  undefined4 uStack_3d8;\n  int iStack_3d4;\n  int iStack_3c4;\n  int iStack_3c0;\n  undefined4 uStack_3b8;\n  int iStack_3b4;\n  uint *puStack_3b0;\n  int iStack_3ac;\n  int iStack_3a8;\n  code *pcStack_3a4;\n  undefined4 uStack_390;\n  undefined4 uStack_38c;\n  undefined4 uStack_388;\n  undefined4 uStack_384;\n  undefined4 uStack_380;\n  int iStack_37c;\n  undefined4 uStack_378;\n  code *pcStack_370;\n  uint uStack_368;\n  int iStack_364;\n  int iStack_354;\n  int iStack_350;\n  uint uStack_348;\n  uint uStack_344;\n  undefined4 *puStack_340;\n  int iStack_33c;\n  int iStack_338;\n  code *pcStack_334;\n  undefined4 uStack_320;\n  undefined4 uStack_31c;\n  undefined4 uStack_318;\n  undefined4 uStack_314;\n  uint uStack_310;\n  uint uStack_30c;\n  code *pcStack_308;\n  undefined4 uStack_300;\n  int iStack_2fc;\n  int iStack_2ec;\n  int iStack_2e8;\n  undefined4 uStack_2e0;\n  int iStack_2dc;\n  undefined4 *puStack_2d8;\n  int iStack_2d4;\n  int iStack_2d0;\n  code *pcStack_2cc;\n  undefined4 uStack_2b8;\n  undefined4 uStack_2b4;\n  undefined4 uStack_2b0;\n  int iStack_2ac;\n  uint uStack_2a8;\n  code *pcStack_2a0;\n  undefined4 uStack_298;\n  int iStack_294;\n  int iStack_284;\n  int iStack_280;\n  undefined4 uStack_278;\n  int iStack_274;\n  undefined4 *puStack_270;\n  int iStack_26c;\n  int iStack_268;\n  code *pcStack_264;\n  undefined4 uStack_250;\n  undefined4 uStack_24c;\n  undefined4 uStack_248;\n  int iStack_244;\n  undefined4 uStack_240;\n  code *pcStack_238;\n  undefined4 uStack_230;\n  int iStack_22c;\n  int iStack_21c;\n  int iStack_218;\n  undefined4 uStack_210;\n  int iStack_20c;\n  undefined4 *puStack_208;\n  int iStack_204;\n  int iStack_200;\n  code *pcStack_1fc;\n  undefined4 uStack_1e8;\n  undefined4 uStack_1e4;\n  undefined4 uStack_1e0;\n  int iStack_1dc;\n  undefined4 uStack_1d8;\n  code *pcStack_1d0;\n  undefined4 uStack_1c8;\n  int iStack_1c4;\n  int iStack_1b4;\n  int iStack_1b0;\n  undefined4 uStack_1a8;\n  int iStack_1a4;\n  undefined4 *puStack_1a0;\n  int iStack_19c;\n  undefined *puStack_198;\n  code *pcStack_194;\n  undefined4 uStack_180;\n  undefined4 uStack_17c;\n  undefined4 uStack_178;\n  int iStack_174;\n  undefined4 uStack_170;\n  int iStack_16c;\n  code *pcStack_168;\n  undefined4 uStack_160;\n  int iStack_15c;\n  int iStack_14c;\n  int iStack_148;\n  undefined4 uStack_140;\n  int iStack_13c;\n  undefined **ppuStack_138;\n  int iStack_134;\n  int iStack_130;\n  code *pcStack_12c;\n  undefined4 uStack_118;\n  undefined4 uStack_114;\n  undefined4 uStack_110;\n  int iStack_10c;\n  undefined4 uStack_108;\n  int iStack_104;\n  code *pcStack_100;\n  undefined *puStack_f8;\n  int iStack_f4;\n  int iStack_e4;\n  int iStack_e0;\n  undefined *puStack_d8;\n  undefined *puStack_d4;\n  undefined4 *puStack_d0;\n  undefined *puStack_cc;\n  Sized_relobj<64,_false> *pSStack_c8;\n  code *pcStack_c4;\n  undefined8 uStack_b0;\n  undefined4 uStack_a8;\n  int iStack_a4;\n  undefined *puStack_a0;\n  undefined *puStack_9c;\n  undefined4 uStack_98;\n  int iStack_94;\n  int iStack_84;\n  int iStack_80;\n  undefined4 uStack_78;\n  int iStack_74;\n  anon_union_4_4_c82d8563_for_u1_ *paStack_70;\n  Output_data_reloc<4,_true,_64,_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 = 0;\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      aVar26 = 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_ = aVar26;\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;\n  puVar13 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n  puVar32 = 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 = puVar32 + 0x276780;\n  uStack_a8 = 0;\n  paStack_70 = &local_38;\n  pOStack_6c = this;\n  pOStack_68 = od;\n  pcStack_64 = pcVar35;\n  uStack_b0 = local_50;\n  (**(code **)(puVar32 + 0x26f4e0))(&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      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\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_relative;\n  iVar22 = *(int *)(puStack_a0 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar22,0x231,*(int *)(puStack_a0 + -0x7924) + -0x2b1c);\n  pcStack_100 = pcVar35 + 0x2765d4;\n  uStack_108 = 1;\n  uStack_110 = uStack_a8;\n  iStack_10c = iStack_a4;\n  uStack_118 = uStack_b0._4_4_;\n  puStack_d0 = &uStack_98;\n  puStack_cc = puVar13;\n  pSStack_c8 = pSVar31;\n  pcStack_c4 = pcVar36;\n  (**(code **)(pcVar35 + 0x26f338))(&puStack_f8);\n  puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  puStack_d4 = puStack_9c;\n  puStack_d8 = puStack_a0;\n  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar22 + 0x38,puVar21,&puStack_f8);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n    puVar32 = puStack_9c;\n  }\n  else {\n    puVar30 = puVar21;\n    ppuVar16 = &puStack_f8;\n    do {\n      ppuVar15 = ppuVar16;\n      puVar14 = puVar30;\n      ppuVar16 = ppuVar15 + 4;\n      puVar32 = ppuVar15[1];\n      puVar28 = ppuVar15[2];\n      puVar13 = ppuVar15[3];\n      *puVar14 = *ppuVar15;\n      puVar14[1] = puVar32;\n      puVar14[2] = puVar28;\n      puVar14[3] = puVar13;\n      puVar30 = puVar14 + 4;\n    } while (ppuVar16 != &puStack_d8);\n    puVar21 = puVar21 + 10;\n    puVar13 = ppuVar15[5];\n    puVar14[4] = *ppuVar16;\n    puVar14[5] = puVar13;\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  pcVar36 = add_output_section_generic;\n  iVar23 = *(int *)(pcStack_100 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);\n  pcStack_168 = pcVar35 + 0x276418;\n  uStack_178 = uStack_110;\n  uStack_170 = 0;\n  iStack_174 = iStack_10c;\n  uStack_180 = uStack_114;\n  ppuStack_138 = &puStack_f8;\n  iStack_134 = iVar22;\n  iStack_130 = iVar20;\n  pcStack_12c = pcVar36;\n  (**(code **)(pcVar35 + 0x26f17c))(&uStack_160);\n  puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  iStack_13c = iStack_104;\n  uStack_140 = uStack_108;\n  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_168 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_160);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n    iVar20 = iStack_104;\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_160;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_140);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }\n  iVar22 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    *(int *)(iVar23 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    puVar32[0x20] = puVar32[0x20] & 0xf7 | 8;\n    if (iStack_14c << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_148 != -4) && (iStack_15c != 0)) {\n      if (*(int *)(iStack_15c + 100) == 0) {\n        *(int *)(iStack_15c + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_15c + 100) = *(int *)(iStack_15c + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_168 + -0x7810);\n  pcVar36 = add_output_section;\n  iVar22 = *(int *)(pcStack_168 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_168 + -0x7924) + -0x2b1c);\n  pcStack_1d0 = pcVar35 + 0x276260;\n  uStack_1e0 = uStack_178;\n  uStack_1d8 = 0;\n  iStack_1dc = iStack_174;\n  uStack_1e8 = uStack_17c;\n  puStack_1a0 = &uStack_160;\n  iStack_19c = iVar23;\n  puStack_198 = puVar32;\n  pcStack_194 = pcVar36;\n  (**(code **)(pcVar35 + 0x26efc4))(&uStack_1c8);\n  puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  iStack_1a4 = iStack_16c;\n  uStack_1a8 = uStack_170;\n  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_1d0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_1c8);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n    iVar23 = iStack_16c;\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_1c8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar23 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar23;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_1a8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar22 + 0x3c) = puVar21;\n  }\n  iVar24 = (int)puVar21 - *(int *)(iVar22 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar22 + 0x20) << 1) {\n    *(int *)(iVar22 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar22 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_1b4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_1b0 != -4) && (iStack_1c4 != 0)) {\n      if (*(int *)(iStack_1c4 + 100) == 0) {\n        *(int *)(iStack_1c4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1c4 + 100) = *(int *)(iStack_1c4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_1d0 + -0x7810);\n  pcVar36 = add_global;\n  iVar24 = *(int *)(pcStack_1d0 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar24,0x231,*(int *)(pcStack_1d0 + -0x7924) + -0x2b1c);\n  pcStack_238 = pcVar35 + 0x2760a8;\n  uStack_250 = uStack_1e8;\n  uStack_240 = 0;\n  iStack_244 = 0;\n  uStack_248 = 0;\n  uStack_24c = uStack_1e4;\n  puStack_208 = &uStack_1c8;\n  iStack_204 = iVar22;\n  iStack_200 = iVar20;\n  pcStack_1fc = pcVar36;\n  (**(code **)(pcVar35 + 0x26ead0))(&uStack_230);\n  puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  iStack_20c = iStack_1dc;\n  uStack_210 = uStack_1e0;\n  if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {\n    iVar20 = iStack_1dc;\n    (**(code **)(pcStack_238 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_230);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_230;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_210);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }\n  iVar22 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_21c << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_218 != -4) && (iStack_22c != 0)) {\n      if (*(int *)(iStack_22c + 100) == 0) {\n        *(int *)(iStack_22c + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_22c + 100) = *(int *)(iStack_22c + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_238 + -0x7810);\n  pcVar36 = add_symbolless_global_addend;\n  iVar22 = *(int *)(pcStack_238 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_238 + -0x7924) + -0x2b1c);\n  pcStack_2a0 = pcVar35 + 0x275ef4;\n  iStack_2ac = 1;\n  uStack_2a8 = 0;\n  uStack_2b0 = 0;\n  uStack_2b4 = uStack_24c;\n  uStack_2b8 = uStack_250;\n  puStack_270 = &uStack_230;\n  iStack_26c = iVar24;\n  iStack_268 = iVar23;\n  pcStack_264 = pcVar36;\n  (**(code **)(pcVar35 + 0x26e91c))(&uStack_298);\n  puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  iStack_274 = iStack_244;\n  uStack_278 = uStack_248;\n  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    iVar23 = iStack_244;\n    (**(code **)(pcStack_2a0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_298);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_298;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar23 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar23;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_278);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar22 + 0x3c) = puVar21;\n  }\n  iVar24 = (int)puVar21 - *(int *)(iVar22 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar22 + 0x20) << 1) {\n    *(int *)(iVar22 + 0x14) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar22 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_284 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_280 != -4) && (iStack_294 != 0)) {\n      if (*(int *)(iStack_294 + 100) == 0) {\n        *(int *)(iStack_294 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_294 + 100) = *(int *)(iStack_294 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_2a0 + -0x7810);\n  pcVar36 = add_global_relative;\n  iVar24 = *(int *)(pcStack_2a0 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar24,0x231,*(int *)(pcStack_2a0 + -0x7924) + -0x2b1c);\n  pcStack_308 = pcVar35 + 0x275d3c;\n  uStack_310 = uStack_2a8 & 0xff;\n  uStack_314 = 1;\n  uStack_318 = 1;\n  uStack_320 = uStack_2b8;\n  uStack_31c = uStack_2b4;\n  puStack_2d8 = &uStack_298;\n  iStack_2d4 = iVar22;\n  iStack_2d0 = iVar20;\n  pcStack_2cc = pcVar36;\n  (**(code **)(pcVar35 + 0x26e764))(&uStack_300);\n  puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  iStack_2dc = iStack_2ac;\n  uStack_2e0 = uStack_2b0;\n  if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {\n    iVar20 = iStack_2ac;\n    (**(code **)(pcStack_308 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_300);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_300;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_2e0);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }\n  iVar22 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_2ec << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_2e8 != -4) && (iStack_2fc != 0)) {\n      if (*(int *)(iStack_2fc + 100) == 0) {\n        *(int *)(iStack_2fc + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_2fc + 100) = *(int *)(iStack_2fc + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_308 + -0x7810);\n  pcVar36 = add_global;\n  iVar22 = *(int *)(pcStack_308 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_308 + -0x7924) + -0x2b1c);\n  pcStack_370 = pcVar35 + 0x275b80;\n  uStack_388 = uStack_318;\n  uStack_378 = 0;\n  iStack_37c = 0;\n  uStack_380 = 0;\n  uStack_384 = uStack_314;\n  uStack_390 = uStack_31c;\n  puStack_340 = &uStack_300;\n  iStack_33c = iVar24;\n  iStack_338 = iVar23;\n  pcStack_334 = pcVar36;\n  (**(code **)(pcVar35 + 0x26e7d0))(&uStack_368);\n  puVar25 = *(uint **)(iVar22 + 0x3c);\n  uStack_344 = uStack_30c;\n  uStack_348 = uStack_310;\n  if (puVar25 == *(uint **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_370 + -0x5ce0))(iVar22 + 0x38,puVar25,&uStack_368);\n    puVar25 = *(uint **)(iVar22 + 0x3c);\n    uVar33 = uStack_30c;\n  }\n  else {\n    puVar1 = puVar25;\n    puVar18 = &uStack_368;\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_348);\n    puVar25 = puVar25 + 10;\n    uVar9 = puVar17[5];\n    puVar4[4] = *puVar18;\n    puVar4[5] = uVar9;\n    *(uint **)(iVar22 + 0x3c) = puVar25;\n  }\n  iVar23 = (int)puVar25 - *(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_354 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_350 != -4) && (iStack_364 != 0)) {\n      if (*(int *)(iStack_364 + 100) == 0) {\n        *(int *)(iStack_364 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_364 + 100) = *(int *)(iStack_364 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_370 + -0x7810);\n  pcVar36 = add_symbolless_global_addend;\n  iVar23 = *(int *)(pcStack_370 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar23,0x231,*(int *)(pcStack_370 + -0x7924) + -0x2b1c);\n  pcStack_3e0 = pcVar35 + 0x2759c0;\n  uStack_3ec = 1;\n  uStack_3f8 = uStack_388;\n  uStack_3e8 = 0;\n  uStack_3f0 = 0;\n  uStack_3f4 = uStack_384;\n  uStack_400 = uStack_38c;\n  puStack_3b0 = &uStack_368;\n  iStack_3ac = iVar22;\n  iStack_3a8 = iVar20;\n  pcStack_3a4 = pcVar36;\n  (**(code **)(pcVar35 + 0x26e610))(&uStack_3d8);\n  puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  iStack_3b4 = iStack_37c;\n  uStack_3b8 = uStack_380;\n  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    iVar20 = iStack_37c;\n    (**(code **)(pcStack_3e0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_3d8);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_3d8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_3b8);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar23 + 0x3c) = puVar21;\n  }\n  iVar22 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    *(int *)(iVar23 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(uVar33 + 0x20) = *(byte *)(uVar33 + 0x20) & 0xf7 | 8;\n    if (iStack_3c4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_3c0 != -4) && (iStack_3d4 != 0)) {\n      if (*(int *)(iStack_3d4 + 100) == 0) {\n        *(int *)(iStack_3d4 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_3d4 + 100) = *(int *)(iStack_3d4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_3e0 + -0x7810);\n  pcVar36 = add_global_relative;\n  iVar22 = *(int *)(pcStack_3e0 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_3e0 + -0x7924) + -0x2b1c);\n  pcStack_450 = pcVar35 + 0x2757fc;\n  uStack_458 = uStack_3e8 & 0xff;\n  uStack_45c = 1;\n  uStack_460 = 1;\n  uStack_468 = uStack_3f8;\n  uStack_464 = uStack_3f4;\n  iStack_470 = iStack_3fc;\n  puStack_420 = &uStack_3d8;\n  iStack_41c = iVar23;\n  uStack_418 = uVar33;\n  pcStack_414 = pcVar36;\n  (**(code **)(pcVar35 + 0x26e44c))(&uStack_448);\n  puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  uStack_424 = uStack_3ec;\n  uStack_428 = uStack_3f0;\n  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_450 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_448);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_448;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_428);\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_434 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_430 != -4) && (iStack_444 != 0)) {\n      if (*(int *)(iStack_444 + 100) == 0) {\n        *(int *)(iStack_444 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_444 + 100) = *(int *)(iStack_444 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_450 + -0x7810);\n  pcVar36 = add_local;\n  iVar24 = *(int *)(pcStack_450 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar24,0x231,*(int *)(pcStack_450 + -0x7924) + -0x2b1c);\n  iVar23 = iStack_470;\n  pcStack_4c0 = pcVar35 + 0x275634;\n  uStack_4d8 = uStack_468;\n  uStack_4c4 = 0;\n  uStack_4c8 = 0;\n  uStack_4cc = 0;\n  uStack_4d0 = 0;\n  uStack_4d4 = uStack_464;\n  iStack_4e0 = iStack_46c;\n  puStack_490 = &uStack_448;\n  iStack_48c = iVar22;\n  iStack_488 = iVar20;\n  pcStack_484 = pcVar36;\n  (**(code **)(pcVar35 + 0x26e06c))(&uStack_4b8);\n  puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  uStack_494 = uStack_45c;\n  uStack_498 = uStack_460;\n  if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_4c0 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_4b8);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_4b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_498);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }\n  iVar20 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_4a4 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_4a0 != -4) && (iStack_4b4 != 0)) {\n      if (*(int *)(iStack_4b4 + 100) == 0) {\n        *(int *)(iStack_4b4 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_4b4 + 100) = *(int *)(iStack_4b4 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_4c0 + -0x7810);\n  pcVar36 = add_local;\n  iVar22 = *(int *)(pcStack_4c0 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_4c0 + -0x7924) + -0x2b1c);\n  iVar20 = iStack_4e0;\n  pcStack_530 = pcVar35 + 0x275474;\n  iStack_4f8 = iVar23;\n  uStack_548 = uStack_4d8;\n  uStack_534 = 0;\n  uStack_538 = 0;\n  uStack_53c = 0;\n  uStack_540 = 0;\n  uStack_544 = uStack_4d4;\n  iStack_550 = iStack_4e0;\n  puStack_500 = &uStack_4b8;\n  iStack_4fc = iVar24;\n  pcStack_4f4 = pcVar36;\n  (**(code **)(pcVar35 + 0x26e030))(&uStack_528);\n  puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  uStack_504 = uStack_4cc;\n  uStack_508 = uStack_4d0;\n  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_530 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_528);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_528;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_508);\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_514 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_510 != -4) && (iStack_524 != 0)) {\n      if (*(int *)(iStack_524 + 100) == 0) {\n        *(int *)(iStack_524 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_524 + 100) = *(int *)(iStack_524 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_530 + -0x7810);\n  pcVar36 = add_local_relative;\n  iVar24 = *(int *)(pcStack_530 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar24,0x231,*(int *)(pcStack_530 + -0x7924) + -0x2b1c);\n  iVar23 = iStack_550;\n  pcStack_5a0 = pcVar35 + 0x2752b8;\n  uStack_5a4 = uStack_538 & 0xff;\n  uStack_5ac = 1;\n  uStack_5b0 = 1;\n  uStack_5b8 = uStack_548;\n  iStack_568 = iVar20;\n  uStack_5a8 = 0;\n  uStack_5b4 = uStack_544;\n  iStack_5c0 = iStack_54c;\n  puStack_570 = &uStack_528;\n  iStack_56c = iVar22;\n  pcStack_564 = pcVar36;\n  (**(code **)(pcVar35 + 0x26dcf0))(&uStack_598);\n  puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  uStack_574 = uStack_53c;\n  uStack_578 = uStack_540;\n  if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_5a0 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_598);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_598;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_578);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }\n  iVar20 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_584 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_580 != -4) && (iStack_594 != 0)) {\n      if (*(int *)(iStack_594 + 100) == 0) {\n        *(int *)(iStack_594 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_594 + 100) = *(int *)(iStack_594 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_5a0 + -0x7810);\n  pcVar36 = add_symbolless_local_addend;\n  iVar22 = *(int *)(pcStack_5a0 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_5a0 + -0x7924) + -0x2b1c);\n  iVar20 = iStack_5c0;\n  pcStack_610 = pcVar35 + 0x2750f0;\n  iStack_5d8 = iVar23;\n  uStack_61c = 1;\n  uStack_614 = 0;\n  uStack_618 = 0;\n  uStack_620 = 0;\n  uStack_624 = uStack_5b4;\n  uStack_628 = uStack_5b8;\n  iStack_630 = iStack_5c0;\n  puStack_5e0 = &uStack_598;\n  iStack_5dc = iVar24;\n  pcStack_5d4 = pcVar36;\n  (**(code **)(pcVar35 + 0x26dcac))(&uStack_608);\n  puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  uStack_5e4 = uStack_5ac;\n  uStack_5e8 = uStack_5b0;\n  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_610 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_608);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_608;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_5e8);\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_5f4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_5f0 != -4) && (iStack_604 != 0)) {\n      if (*(int *)(iStack_604 + 100) == 0) {\n        *(int *)(iStack_604 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_604 + 100) = *(int *)(iStack_604 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_610 + -0x7810);\n  pcVar36 = add_symbolless_local_addend;\n  iVar24 = *(int *)(pcStack_610 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar24,0x231,*(int *)(pcStack_610 + -0x7924) + -0x2b1c);\n  iVar23 = iStack_630;\n  pcStack_680 = pcVar35 + 0x274f30;\n  uStack_68c = 1;\n  uStack_698 = uStack_628;\n  iStack_648 = iVar20;\n  uStack_684 = 0;\n  uStack_688 = 0;\n  uStack_690 = 0;\n  uStack_694 = uStack_624;\n  iStack_6a0 = iStack_62c;\n  puStack_650 = &uStack_608;\n  iStack_64c = iVar22;\n  pcStack_644 = pcVar36;\n  (**(code **)(pcVar35 + 0x26d968))(&uStack_678);\n  puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  uStack_654 = uStack_61c;\n  uStack_658 = uStack_620;\n  if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_680 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_678);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_678;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_658);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }\n  iVar20 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_664 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_660 != -4) && (iStack_674 != 0)) {\n      if (*(int *)(iStack_674 + 100) == 0) {\n        *(int *)(iStack_674 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_674 + 100) = *(int *)(iStack_674 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)(pcStack_680 + -0x7810);\n  pcVar36 = add_local_section;\n  iVar22 = *(int *)(pcStack_680 + -0x7fc4) + 0x3574;\n  (*pcVar35)(iVar22,0x231,*(int *)(pcStack_680 + -0x7924) + -0x2b1c);\n  iVar20 = iStack_6a0;\n  pcStack_6f0 = pcVar35 + 0x274d6c;\n  iStack_6b8 = iVar23;\n  uStack_6f8 = 1;\n  uStack_6f4 = 0;\n  uStack_6fc = 0;\n  uStack_700 = 0;\n  uStack_704 = uStack_694;\n  uStack_708 = uStack_698;\n  iStack_710 = iStack_6a0;\n  puStack_6c0 = &uStack_678;\n  iStack_6bc = iVar24;\n  pcStack_6b4 = pcVar36;\n  (**(code **)(pcVar35 + 0x26d928))(&uStack_6e8);\n  puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  uStack_6c4 = uStack_68c;\n  uStack_6c8 = uStack_690;\n  if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_6f0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_6e8);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_6e8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_6c8);\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_6d4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_6d0 != -4) && (iStack_6e4 != 0)) {\n      if (*(int *)(iStack_6e4 + 100) == 0) {\n        *(int *)(iStack_6e4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_6e4 + 100) = *(int *)(iStack_6e4 + 100) + 1;\n    }\n    return;\n  }\n  iVar24 = 0x231;\n  pcVar35 = *(code **)(pcStack_6f0 + -0x7810);\n  puVar30 = (undefined4 *)(*(int *)(pcStack_6f0 + -0x7924) + -0x2b1c);\n  pcVar36 = Output_data_reloc_base<4,_true,_64,_true>::add;\n  iVar23 = *(int *)(pcStack_6f0 + -0x7fc4) + 0x3574;\n  (*pcVar35)();\n  pOStack_738 = (Output_data *)(pcVar35 + 0x274bac);\n  iStack_728 = iVar20;\n  puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  puStack_730 = &uStack_6e8;\n  iStack_72c = iVar22;\n  pcStack_724 = pcVar36;\n  if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcVar35 + 0x26eefc))(iVar23 + 0x38);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar14 = puVar30;\n    puVar5 = puVar21;\n    do {\n      puVar10 = puVar5;\n      puVar6 = puVar14;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar10 = *puVar6;\n      puVar10[1] = uVar34;\n      puVar10[2] = uVar27;\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 **)(iVar23 + 0x3c) = puVar21;\n  }\n  iVar20 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;\n  if (-1 < *(int *)(iVar23 + 0x20) << 1) {\n    iVar22 = puVar30[5];\n    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar24 + 0x20) = *(byte *)(iVar24 + 0x20) & 0xf7 | 8;\n    if (iVar22 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((puVar30[6] != -4) && (iVar22 = puVar30[1], iVar22 != 0)) {\n      if (*(int *)(iVar22 + 100) == 0) {\n        *(int *)(iVar22 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iVar22 + 100) = *(int *)(iVar22 + 100) + 1;\n    }\n    return;\n  }\n  pcVar35 = *(code **)&pOStack_738[-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_738[-0x332].address_ + 0x3574);\n  (*pcVar35)(this_00,0x231,(int)pOStack_738[-0x308].offset_ + -0x2b1c);\n  iStack_754 = iVar23;\n  puStack_750 = puVar30;\n  pcStack_74c = pcVar36;\n  (**(code **)(pcVar35 + 0x26d47c))((Output_reloc_type *)auStack_780);\n  auStack_780._36_4_ = pcStack_724;\n  auStack_780._32_4_ = iStack_728;\n  Output_data_reloc_base<4,_true,_64,_true>::add\n            (this_00,pOStack_738,(Output_reloc_type *)auStack_780);\n  return;\n}\n\n" comment comment comment comment (declaration "void __thiscall\ngold::Output_data_reloc<4,_true,_64,_false>::add_absolute\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_absolute\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_absolute\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 "undefined **ppuVar15;" type_identifier (pointer_declarator "**ppuVar15" * (pointer_declarator "*ppuVar15" * identifier)) ;) (declaration "undefined **ppuVar16;" type_identifier (pointer_declarator "**ppuVar16" * (pointer_declarator "*ppuVar16" * 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 "int iVar24;" primitive_type identifier ;) (declaration "uint *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "anon_union_4_4_c82d8563_for_u1_ aVar26;" type_identifier identifier ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "undefined *puVar28;" type_identifier (pointer_declarator "*puVar28" * 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 "undefined *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "undefined4 uVar34;" type_identifier identifier ;) (declaration "code *pcVar35;" type_identifier (pointer_declarator "*pcVar35" * identifier) ;) (declaration "code *pcVar36;" type_identifier (pointer_declarator "*pcVar36" * identifier) ;) (declaration "undefined1 auStack_780 [44];" type_identifier (array_declarator "auStack_780 [44]" identifier [ number_literal ]) ;) (declaration "int iStack_754;" primitive_type identifier ;) (declaration "undefined4 *puStack_750;" type_identifier (pointer_declarator "*puStack_750" * identifier) ;) (declaration "code *pcStack_74c;" type_identifier (pointer_declarator "*pcStack_74c" * identifier) ;) (declaration "Output_data *pOStack_738;" type_identifier (pointer_declarator "*pOStack_738" * identifier) ;) (declaration "undefined4 *puStack_730;" type_identifier (pointer_declarator "*puStack_730" * identifier) ;) (declaration "int iStack_72c;" primitive_type identifier ;) (declaration "int iStack_728;" primitive_type identifier ;) (declaration "code *pcStack_724;" type_identifier (pointer_declarator "*pcStack_724" * identifier) ;) (declaration "int iStack_710;" primitive_type identifier ;) (declaration "undefined4 uStack_708;" type_identifier identifier ;) (declaration "undefined4 uStack_704;" type_identifier identifier ;) (declaration "undefined4 uStack_700;" type_identifier identifier ;) (declaration "undefined4 uStack_6fc;" type_identifier identifier ;) (declaration "undefined4 uStack_6f8;" type_identifier identifier ;) (declaration "undefined4 uStack_6f4;" type_identifier identifier ;) (declaration "code *pcStack_6f0;" type_identifier (pointer_declarator "*pcStack_6f0" * identifier) ;) (declaration "undefined4 uStack_6e8;" type_identifier identifier ;) (declaration "int iStack_6e4;" primitive_type identifier ;) (declaration "int iStack_6d4;" primitive_type identifier ;) (declaration "int iStack_6d0;" primitive_type identifier ;) (declaration "undefined4 uStack_6c8;" type_identifier identifier ;) (declaration "undefined4 uStack_6c4;" type_identifier identifier ;) (declaration "undefined4 *puStack_6c0;" type_identifier (pointer_declarator "*puStack_6c0" * identifier) ;) (declaration "int iStack_6bc;" primitive_type identifier ;) (declaration "int iStack_6b8;" primitive_type identifier ;) (declaration "code *pcStack_6b4;" type_identifier (pointer_declarator "*pcStack_6b4" * identifier) ;) (declaration "int iStack_6a0;" primitive_type identifier ;) (declaration "undefined4 uStack_698;" type_identifier identifier ;) (declaration "undefined4 uStack_694;" type_identifier identifier ;) (declaration "undefined4 uStack_690;" type_identifier identifier ;) (declaration "undefined4 uStack_68c;" type_identifier identifier ;) (declaration "undefined4 uStack_688;" type_identifier identifier ;) (declaration "undefined4 uStack_684;" type_identifier identifier ;) (declaration "code *pcStack_680;" type_identifier (pointer_declarator "*pcStack_680" * identifier) ;) (declaration "undefined4 uStack_678;" type_identifier identifier ;) (declaration "int iStack_674;" primitive_type identifier ;) (declaration "int iStack_664;" primitive_type identifier ;) (declaration "int iStack_660;" primitive_type identifier ;) (declaration "undefined4 uStack_658;" type_identifier identifier ;) (declaration "undefined4 uStack_654;" type_identifier identifier ;) (declaration "undefined4 *puStack_650;" type_identifier (pointer_declarator "*puStack_650" * identifier) ;) (declaration "int iStack_64c;" primitive_type identifier ;) (declaration "int iStack_648;" primitive_type identifier ;) (declaration "code *pcStack_644;" type_identifier (pointer_declarator "*pcStack_644" * identifier) ;) (declaration "int iStack_630;" primitive_type identifier ;) (declaration "int iStack_62c;" primitive_type identifier ;) (declaration "undefined4 uStack_628;" type_identifier identifier ;) (declaration "undefined4 uStack_624;" type_identifier identifier ;) (declaration "undefined4 uStack_620;" type_identifier identifier ;) (declaration "undefined4 uStack_61c;" type_identifier identifier ;) (declaration "undefined4 uStack_618;" type_identifier identifier ;) (declaration "undefined4 uStack_614;" type_identifier identifier ;) (declaration "code *pcStack_610;" type_identifier (pointer_declarator "*pcStack_610" * identifier) ;) (declaration "undefined4 uStack_608;" type_identifier identifier ;) (declaration "int iStack_604;" primitive_type identifier ;) (declaration "int iStack_5f4;" primitive_type identifier ;) (declaration "int iStack_5f0;" primitive_type identifier ;) (declaration "undefined4 uStack_5e8;" type_identifier identifier ;) (declaration "undefined4 uStack_5e4;" type_identifier identifier ;) (declaration "undefined4 *puStack_5e0;" type_identifier (pointer_declarator "*puStack_5e0" * identifier) ;) (declaration "int iStack_5dc;" primitive_type identifier ;) (declaration "int iStack_5d8;" primitive_type identifier ;) (declaration "code *pcStack_5d4;" type_identifier (pointer_declarator "*pcStack_5d4" * identifier) ;) (declaration "int iStack_5c0;" primitive_type identifier ;) (declaration "undefined4 uStack_5b8;" type_identifier identifier ;) (declaration "undefined4 uStack_5b4;" type_identifier identifier ;) (declaration "undefined4 uStack_5b0;" type_identifier identifier ;) (declaration "undefined4 uStack_5ac;" type_identifier identifier ;) (declaration "undefined4 uStack_5a8;" type_identifier identifier ;) (declaration "uint uStack_5a4;" type_identifier identifier ;) (declaration "code *pcStack_5a0;" type_identifier (pointer_declarator "*pcStack_5a0" * identifier) ;) (declaration "undefined4 uStack_598;" type_identifier identifier ;) (declaration "int iStack_594;" primitive_type identifier ;) (declaration "int iStack_584;" primitive_type identifier ;) (declaration "int iStack_580;" primitive_type identifier ;) (declaration "undefined4 uStack_578;" type_identifier identifier ;) (declaration "undefined4 uStack_574;" type_identifier identifier ;) (declaration "undefined4 *puStack_570;" type_identifier (pointer_declarator "*puStack_570" * identifier) ;) (declaration "int iStack_56c;" primitive_type identifier ;) (declaration "int iStack_568;" primitive_type identifier ;) (declaration "code *pcStack_564;" type_identifier (pointer_declarator "*pcStack_564" * identifier) ;) (declaration "int iStack_550;" primitive_type identifier ;) (declaration "int iStack_54c;" primitive_type identifier ;) (declaration "undefined4 uStack_548;" type_identifier identifier ;) (declaration "undefined4 uStack_544;" type_identifier identifier ;) (declaration "undefined4 uStack_540;" type_identifier identifier ;) (declaration "undefined4 uStack_53c;" type_identifier identifier ;) (declaration "uint uStack_538;" type_identifier identifier ;) (declaration "undefined4 uStack_534;" type_identifier identifier ;) (declaration "code *pcStack_530;" type_identifier (pointer_declarator "*pcStack_530" * identifier) ;) (declaration "undefined4 uStack_528;" type_identifier identifier ;) (declaration "int iStack_524;" primitive_type identifier ;) (declaration "int iStack_514;" primitive_type identifier ;) (declaration "int iStack_510;" primitive_type identifier ;) (declaration "undefined4 uStack_508;" type_identifier identifier ;) (declaration "undefined4 uStack_504;" type_identifier identifier ;) (declaration "undefined4 *puStack_500;" type_identifier (pointer_declarator "*puStack_500" * identifier) ;) (declaration "int iStack_4fc;" primitive_type identifier ;) (declaration "int iStack_4f8;" primitive_type identifier ;) (declaration "code *pcStack_4f4;" type_identifier (pointer_declarator "*pcStack_4f4" * identifier) ;) (declaration "int iStack_4e0;" primitive_type identifier ;) (declaration "undefined4 uStack_4d8;" type_identifier identifier ;) (declaration "undefined4 uStack_4d4;" type_identifier identifier ;) (declaration "undefined4 uStack_4d0;" type_identifier identifier ;) (declaration "undefined4 uStack_4cc;" type_identifier identifier ;) (declaration "undefined4 uStack_4c8;" type_identifier identifier ;) (declaration "undefined4 uStack_4c4;" type_identifier identifier ;) (declaration "code *pcStack_4c0;" type_identifier (pointer_declarator "*pcStack_4c0" * identifier) ;) (declaration "undefined4 uStack_4b8;" type_identifier identifier ;) (declaration "int iStack_4b4;" primitive_type identifier ;) (declaration "int iStack_4a4;" primitive_type identifier ;) (declaration "int iStack_4a0;" primitive_type identifier ;) (declaration "undefined4 uStack_498;" type_identifier identifier ;) (declaration "undefined4 uStack_494;" type_identifier identifier ;) (declaration "undefined4 *puStack_490;" type_identifier (pointer_declarator "*puStack_490" * identifier) ;) (declaration "int iStack_48c;" primitive_type identifier ;) (declaration "int iStack_488;" primitive_type identifier ;) (declaration "code *pcStack_484;" type_identifier (pointer_declarator "*pcStack_484" * identifier) ;) (declaration "int iStack_470;" primitive_type identifier ;) (declaration "int iStack_46c;" primitive_type identifier ;) (declaration "undefined4 uStack_468;" type_identifier identifier ;) (declaration "undefined4 uStack_464;" type_identifier identifier ;) (declaration "undefined4 uStack_460;" type_identifier identifier ;) (declaration "undefined4 uStack_45c;" type_identifier identifier ;) (declaration "uint uStack_458;" type_identifier identifier ;) (declaration "code *pcStack_450;" type_identifier (pointer_declarator "*pcStack_450" * identifier) ;) (declaration "undefined4 uStack_448;" type_identifier identifier ;) (declaration "int iStack_444;" primitive_type identifier ;) (declaration "int iStack_434;" primitive_type identifier ;) (declaration "int iStack_430;" primitive_type identifier ;) (declaration "undefined4 uStack_428;" type_identifier identifier ;) (declaration "undefined4 uStack_424;" type_identifier identifier ;) (declaration "undefined4 *puStack_420;" type_identifier (pointer_declarator "*puStack_420" * identifier) ;) (declaration "int iStack_41c;" primitive_type identifier ;) (declaration "uint uStack_418;" type_identifier identifier ;) (declaration "code *pcStack_414;" type_identifier (pointer_declarator "*pcStack_414" * identifier) ;) (declaration "undefined4 uStack_400;" type_identifier identifier ;) (declaration "int iStack_3fc;" primitive_type identifier ;) (declaration "undefined4 uStack_3f8;" type_identifier identifier ;) (declaration "undefined4 uStack_3f4;" type_identifier identifier ;) (declaration "undefined4 uStack_3f0;" type_identifier identifier ;) (declaration "undefined4 uStack_3ec;" type_identifier identifier ;) (declaration "uint uStack_3e8;" type_identifier identifier ;) (declaration "code *pcStack_3e0;" type_identifier (pointer_declarator "*pcStack_3e0" * identifier) ;) (declaration "undefined4 uStack_3d8;" type_identifier identifier ;) (declaration "int iStack_3d4;" primitive_type identifier ;) (declaration "int iStack_3c4;" primitive_type identifier ;) (declaration "int iStack_3c0;" primitive_type identifier ;) (declaration "undefined4 uStack_3b8;" type_identifier identifier ;) (declaration "int iStack_3b4;" primitive_type identifier ;) (declaration "uint *puStack_3b0;" type_identifier (pointer_declarator "*puStack_3b0" * identifier) ;) (declaration "int iStack_3ac;" primitive_type identifier ;) (declaration "int iStack_3a8;" primitive_type identifier ;) (declaration "code *pcStack_3a4;" type_identifier (pointer_declarator "*pcStack_3a4" * identifier) ;) (declaration "undefined4 uStack_390;" type_identifier identifier ;) (declaration "undefined4 uStack_38c;" type_identifier identifier ;) (declaration "undefined4 uStack_388;" type_identifier identifier ;) (declaration "undefined4 uStack_384;" type_identifier identifier ;) (declaration "undefined4 uStack_380;" type_identifier identifier ;) (declaration "int iStack_37c;" primitive_type identifier ;) (declaration "undefined4 uStack_378;" type_identifier identifier ;) (declaration "code *pcStack_370;" type_identifier (pointer_declarator "*pcStack_370" * identifier) ;) (declaration "uint uStack_368;" type_identifier identifier ;) (declaration "int iStack_364;" primitive_type identifier ;) (declaration "int iStack_354;" primitive_type identifier ;) (declaration "int iStack_350;" primitive_type identifier ;) (declaration "uint uStack_348;" type_identifier identifier ;) (declaration "uint uStack_344;" type_identifier identifier ;) (declaration "undefined4 *puStack_340;" type_identifier (pointer_declarator "*puStack_340" * identifier) ;) (declaration "int iStack_33c;" primitive_type identifier ;) (declaration "int iStack_338;" primitive_type identifier ;) (declaration "code *pcStack_334;" type_identifier (pointer_declarator "*pcStack_334" * identifier) ;) (declaration "undefined4 uStack_320;" type_identifier identifier ;) (declaration "undefined4 uStack_31c;" type_identifier identifier ;) (declaration "undefined4 uStack_318;" type_identifier identifier ;) (declaration "undefined4 uStack_314;" type_identifier identifier ;) (declaration "uint uStack_310;" type_identifier identifier ;) (declaration "uint uStack_30c;" type_identifier identifier ;) (declaration "code *pcStack_308;" type_identifier (pointer_declarator "*pcStack_308" * identifier) ;) (declaration "undefined4 uStack_300;" type_identifier identifier ;) (declaration "int iStack_2fc;" primitive_type identifier ;) (declaration "int iStack_2ec;" primitive_type identifier ;) (declaration "int iStack_2e8;" primitive_type identifier ;) (declaration "undefined4 uStack_2e0;" type_identifier identifier ;) (declaration "int iStack_2dc;" primitive_type identifier ;) (declaration "undefined4 *puStack_2d8;" type_identifier (pointer_declarator "*puStack_2d8" * identifier) ;) (declaration "int iStack_2d4;" primitive_type identifier ;) (declaration "int iStack_2d0;" primitive_type identifier ;) (declaration "code *pcStack_2cc;" type_identifier (pointer_declarator "*pcStack_2cc" * identifier) ;) (declaration "undefined4 uStack_2b8;" type_identifier identifier ;) (declaration "undefined4 uStack_2b4;" type_identifier identifier ;) (declaration "undefined4 uStack_2b0;" type_identifier identifier ;) (declaration "int iStack_2ac;" primitive_type identifier ;) (declaration "uint uStack_2a8;" type_identifier identifier ;) (declaration "code *pcStack_2a0;" type_identifier (pointer_declarator "*pcStack_2a0" * identifier) ;) (declaration "undefined4 uStack_298;" type_identifier identifier ;) (declaration "int iStack_294;" primitive_type identifier ;) (declaration "int iStack_284;" primitive_type identifier ;) (declaration "int iStack_280;" primitive_type identifier ;) (declaration "undefined4 uStack_278;" type_identifier identifier ;) (declaration "int iStack_274;" primitive_type identifier ;) (declaration "undefined4 *puStack_270;" type_identifier (pointer_declarator "*puStack_270" * identifier) ;) (declaration "int iStack_26c;" primitive_type identifier ;) (declaration "int iStack_268;" primitive_type identifier ;) (declaration "code *pcStack_264;" type_identifier (pointer_declarator "*pcStack_264" * identifier) ;) (declaration "undefined4 uStack_250;" type_identifier identifier ;) (declaration "undefined4 uStack_24c;" type_identifier identifier ;) (declaration "undefined4 uStack_248;" type_identifier identifier ;) (declaration "int iStack_244;" primitive_type identifier ;) (declaration "undefined4 uStack_240;" type_identifier identifier ;) (declaration "code *pcStack_238;" type_identifier (pointer_declarator "*pcStack_238" * identifier) ;) (declaration "undefined4 uStack_230;" type_identifier identifier ;) (declaration "int iStack_22c;" primitive_type identifier ;) (declaration "int iStack_21c;" primitive_type identifier ;) (declaration "int iStack_218;" primitive_type identifier ;) (declaration "undefined4 uStack_210;" type_identifier identifier ;) (declaration "int iStack_20c;" primitive_type identifier ;) (declaration "undefined4 *puStack_208;" type_identifier (pointer_declarator "*puStack_208" * identifier) ;) (declaration "int iStack_204;" primitive_type identifier ;) (declaration "int iStack_200;" primitive_type identifier ;) (declaration "code *pcStack_1fc;" type_identifier (pointer_declarator "*pcStack_1fc" * identifier) ;) (declaration "undefined4 uStack_1e8;" type_identifier identifier ;) (declaration "undefined4 uStack_1e4;" type_identifier identifier ;) (declaration "undefined4 uStack_1e0;" type_identifier identifier ;) (declaration "int iStack_1dc;" primitive_type identifier ;) (declaration "undefined4 uStack_1d8;" type_identifier identifier ;) (declaration "code *pcStack_1d0;" type_identifier (pointer_declarator "*pcStack_1d0" * identifier) ;) (declaration "undefined4 uStack_1c8;" type_identifier identifier ;) (declaration "int iStack_1c4;" primitive_type identifier ;) (declaration "int iStack_1b4;" primitive_type identifier ;) (declaration "int iStack_1b0;" primitive_type identifier ;) (declaration "undefined4 uStack_1a8;" type_identifier identifier ;) (declaration "int iStack_1a4;" primitive_type identifier ;) (declaration "undefined4 *puStack_1a0;" type_identifier (pointer_declarator "*puStack_1a0" * identifier) ;) (declaration "int iStack_19c;" primitive_type identifier ;) (declaration "undefined *puStack_198;" type_identifier (pointer_declarator "*puStack_198" * identifier) ;) (declaration "code *pcStack_194;" type_identifier (pointer_declarator "*pcStack_194" * identifier) ;) (declaration "undefined4 uStack_180;" type_identifier identifier ;) (declaration "undefined4 uStack_17c;" type_identifier identifier ;) (declaration "undefined4 uStack_178;" type_identifier identifier ;) (declaration "int iStack_174;" primitive_type identifier ;) (declaration "undefined4 uStack_170;" type_identifier identifier ;) (declaration "int iStack_16c;" primitive_type identifier ;) (declaration "code *pcStack_168;" type_identifier (pointer_declarator "*pcStack_168" * identifier) ;) (declaration "undefined4 uStack_160;" type_identifier identifier ;) (declaration "int iStack_15c;" primitive_type identifier ;) (declaration "int iStack_14c;" primitive_type identifier ;) (declaration "int iStack_148;" primitive_type identifier ;) (declaration "undefined4 uStack_140;" type_identifier identifier ;) (declaration "int iStack_13c;" primitive_type identifier ;) (declaration "undefined **ppuStack_138;" type_identifier (pointer_declarator "**ppuStack_138" * (pointer_declarator "*ppuStack_138" * identifier)) ;) (declaration "int iStack_134;" primitive_type identifier ;) (declaration "int iStack_130;" primitive_type identifier ;) (declaration "code *pcStack_12c;" type_identifier (pointer_declarator "*pcStack_12c" * identifier) ;) (declaration "undefined4 uStack_118;" type_identifier identifier ;) (declaration "undefined4 uStack_114;" type_identifier identifier ;) (declaration "undefined4 uStack_110;" type_identifier identifier ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "undefined4 uStack_108;" type_identifier identifier ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "code *pcStack_100;" type_identifier (pointer_declarator "*pcStack_100" * identifier) ;) (declaration "undefined *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "int iStack_f4;" primitive_type identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int iStack_e0;" primitive_type identifier ;) (declaration "undefined *puStack_d8;" type_identifier (pointer_declarator "*puStack_d8" * identifier) ;) (declaration "undefined *puStack_d4;" type_identifier (pointer_declarator "*puStack_d4" * identifier) ;) (declaration "undefined4 *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "undefined *puStack_cc;" type_identifier (pointer_declarator "*puStack_cc" * identifier) ;) (expression_statement "Sized_relobj<64,_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 "undefined8 uStack_b0;" type_identifier identifier ;) (declaration "undefined4 uStack_a8;" type_identifier identifier ;) (declaration "int iStack_a4;" primitive_type identifier ;) (declaration "undefined *puStack_a0;" type_identifier (pointer_declarator "*puStack_a0" * identifier) ;) (declaration "undefined *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "undefined4 uStack_98;" type_identifier identifier ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "int iStack_80;" primitive_type identifier ;) (declaration "undefined4 uStack_78;" type_identifier identifier ;) (declaration "int iStack_74;" primitive_type identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *paStack_70;" type_identifier (pointer_declarator "*paStack_70" * identifier) ;) (expression_statement "Output_data_reloc<4,_true,_64,_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 = 0;" (assignment_expression "local_48 = 0" 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      aVar26 = 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_ = aVar26;\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      aVar26 = 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_ = aVar26;\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      aVar26 = 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_ = aVar26;\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      aVar26 = 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_ = aVar26;\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      aVar26 = 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_ = aVar26;\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 "aVar26 = paVar11[2];" (assignment_expression "aVar26 = 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_ = aVar26;" (assignment_expression "*(anon_union_4_4_c82d8563_for_u1_ *)&(pOVar2->rel_).address_ = aVar26" (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;" (assignment_expression "pcVar35 = add_output_section" 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 "puVar32 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar32 = 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 = puVar32 + 0x276780;" (assignment_expression "puStack_a0 = puVar32 + 0x276780" identifier = (binary_expression "puVar32 + 0x276780" identifier + number_literal)) ;) (expression_statement "uStack_a8 = 0;" (assignment_expression "uStack_a8 = 0" identifier = number_literal) ;) (expression_statement "paStack_70 = &local_38;" (assignment_expression "paStack_70 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "pOStack_6c = this;" (assignment_expression "pOStack_6c = this" identifier = identifier) ;) (expression_statement "pOStack_68 = od;" (assignment_expression "pOStack_68 = od" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar35;" (assignment_expression "pcStack_64 = pcVar35" identifier = identifier) ;) (expression_statement "uStack_b0 = local_50;" (assignment_expression "uStack_b0 = local_50" identifier = identifier) ;) (expression_statement "(**(code **)(puVar32 + 0x26f4e0))(&uStack_98);" (call_expression "(**(code **)(puVar32 + 0x26f4e0))(&uStack_98)" (parenthesized_expression "(**(code **)(puVar32 + 0x26f4e0))" ( (pointer_expression "**(code **)(puVar32 + 0x26f4e0)" * (pointer_expression "*(code **)(puVar32 + 0x26f4e0)" * (cast_expression "(code **)(puVar32 + 0x26f4e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x26f4e0)" ( (binary_expression "puVar32 + 0x26f4e0" 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      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\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      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\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      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\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      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\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      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\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 "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_relative;" (assignment_expression "pcVar36 = add_output_section_relative" 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 + 0x2765d4;" (assignment_expression "pcStack_100 = pcVar35 + 0x2765d4" identifier = (binary_expression "pcVar35 + 0x2765d4" identifier + number_literal)) ;) (expression_statement "uStack_108 = 1;" (assignment_expression "uStack_108 = 1" identifier = number_literal) ;) (expression_statement "uStack_110 = uStack_a8;" (assignment_expression "uStack_110 = uStack_a8" identifier = identifier) ;) (expression_statement "iStack_10c = iStack_a4;" (assignment_expression "iStack_10c = iStack_a4" identifier = identifier) ;) (expression_statement "uStack_118 = uStack_b0._4_4_;" (assignment_expression "uStack_118 = uStack_b0._4_4_" identifier = (field_expression "uStack_b0._4_4_" identifier . field_identifier)) ;) (expression_statement "puStack_d0 = &uStack_98;" (assignment_expression "puStack_d0 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (expression_statement "puStack_cc = 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 "(**(code **)(pcVar35 + 0x26f338))(&puStack_f8);" (call_expression "(**(code **)(pcVar35 + 0x26f338))(&puStack_f8)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26f338))" ( (pointer_expression "**(code **)(pcVar35 + 0x26f338)" * (pointer_expression "*(code **)(pcVar35 + 0x26f338)" * (cast_expression "(code **)(pcVar35 + 0x26f338)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26f338)" ( (binary_expression "pcVar35 + 0x26f338" identifier + number_literal) ))))) )) (argument_list "(&puStack_f8)" ( (pointer_expression "&puStack_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 "puStack_d4 = puStack_9c;" (assignment_expression "puStack_d4 = puStack_9c" identifier = identifier) ;) (expression_statement "puStack_d8 = puStack_a0;" (assignment_expression "puStack_d8 = puStack_a0" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_100 + -0x5ce0))(iVar22 + 0x38,puVar21,&puStack_f8);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n    puVar32 = puStack_9c;\n  }\n  else {\n    puVar30 = puVar21;\n    ppuVar16 = &puStack_f8;\n    do {\n      ppuVar15 = ppuVar16;\n      puVar14 = puVar30;\n      ppuVar16 = ppuVar15 + 4;\n      puVar32 = ppuVar15[1];\n      puVar28 = ppuVar15[2];\n      puVar13 = ppuVar15[3];\n      *puVar14 = *ppuVar15;\n      puVar14[1] = puVar32;\n      puVar14[2] = puVar28;\n      puVar14[3] = puVar13;\n      puVar30 = puVar14 + 4;\n    } while (ppuVar16 != &puStack_d8);\n    puVar21 = puVar21 + 10;\n    puVar13 = ppuVar15[5];\n    puVar14[4] = *ppuVar16;\n    puVar14[5] = puVar13;\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,&puStack_f8);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n    puVar32 = puStack_9c;\n  }" { (expression_statement "(**(code **)(pcStack_100 + -0x5ce0))(iVar22 + 0x38,puVar21,&puStack_f8);" (call_expression "(**(code **)(pcStack_100 + -0x5ce0))(iVar22 + 0x38,puVar21,&puStack_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,&puStack_f8)" ( (binary_expression "iVar22 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&puStack_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 "puVar32 = puStack_9c;" (assignment_expression "puVar32 = puStack_9c" identifier = identifier) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    ppuVar16 = &puStack_f8;\n    do {\n      ppuVar15 = ppuVar16;\n      puVar14 = puVar30;\n      ppuVar16 = ppuVar15 + 4;\n      puVar32 = ppuVar15[1];\n      puVar28 = ppuVar15[2];\n      puVar13 = ppuVar15[3];\n      *puVar14 = *ppuVar15;\n      puVar14[1] = puVar32;\n      puVar14[2] = puVar28;\n      puVar14[3] = puVar13;\n      puVar30 = puVar14 + 4;\n    } while (ppuVar16 != &puStack_d8);\n    puVar21 = puVar21 + 10;\n    puVar13 = ppuVar15[5];\n    puVar14[4] = *ppuVar16;\n    puVar14[5] = puVar13;\n    *(undefined4 **)(iVar22 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    ppuVar16 = &puStack_f8;\n    do {\n      ppuVar15 = ppuVar16;\n      puVar14 = puVar30;\n      ppuVar16 = ppuVar15 + 4;\n      puVar32 = ppuVar15[1];\n      puVar28 = ppuVar15[2];\n      puVar13 = ppuVar15[3];\n      *puVar14 = *ppuVar15;\n      puVar14[1] = puVar32;\n      puVar14[2] = puVar28;\n      puVar14[3] = puVar13;\n      puVar30 = puVar14 + 4;\n    } while (ppuVar16 != &puStack_d8);\n    puVar21 = puVar21 + 10;\n    puVar13 = ppuVar15[5];\n    puVar14[4] = *ppuVar16;\n    puVar14[5] = puVar13;\n    *(undefined4 **)(iVar22 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "ppuVar16 = &puStack_f8;" (assignment_expression "ppuVar16 = &puStack_f8" identifier = (pointer_expression "&puStack_f8" & identifier)) ;) (do_statement "do {\n      ppuVar15 = ppuVar16;\n      puVar14 = puVar30;\n      ppuVar16 = ppuVar15 + 4;\n      puVar32 = ppuVar15[1];\n      puVar28 = ppuVar15[2];\n      puVar13 = ppuVar15[3];\n      *puVar14 = *ppuVar15;\n      puVar14[1] = puVar32;\n      puVar14[2] = puVar28;\n      puVar14[3] = puVar13;\n      puVar30 = puVar14 + 4;\n    } while (ppuVar16 != &puStack_d8);" do (compound_statement "{\n      ppuVar15 = ppuVar16;\n      puVar14 = puVar30;\n      ppuVar16 = ppuVar15 + 4;\n      puVar32 = ppuVar15[1];\n      puVar28 = ppuVar15[2];\n      puVar13 = ppuVar15[3];\n      *puVar14 = *ppuVar15;\n      puVar14[1] = puVar32;\n      puVar14[2] = puVar28;\n      puVar14[3] = puVar13;\n      puVar30 = puVar14 + 4;\n    }" { (expression_statement "ppuVar15 = ppuVar16;" (assignment_expression "ppuVar15 = ppuVar16" identifier = identifier) ;) (expression_statement "puVar14 = puVar30;" (assignment_expression "puVar14 = puVar30" identifier = identifier) ;) (expression_statement "ppuVar16 = ppuVar15 + 4;" (assignment_expression "ppuVar16 = ppuVar15 + 4" identifier = (binary_expression "ppuVar15 + 4" identifier + number_literal)) ;) (expression_statement "puVar32 = ppuVar15[1];" (assignment_expression "puVar32 = ppuVar15[1]" identifier = (subscript_expression "ppuVar15[1]" identifier [ number_literal ])) ;) (expression_statement "puVar28 = ppuVar15[2];" (assignment_expression "puVar28 = ppuVar15[2]" identifier = (subscript_expression "ppuVar15[2]" identifier [ number_literal ])) ;) (expression_statement "puVar13 = ppuVar15[3];" (assignment_expression "puVar13 = ppuVar15[3]" identifier = (subscript_expression "ppuVar15[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar14 = *ppuVar15;" (assignment_expression "*puVar14 = *ppuVar15" (pointer_expression "*puVar14" * identifier) = (pointer_expression "*ppuVar15" * identifier)) ;) (expression_statement "puVar14[1] = puVar32;" (assignment_expression "puVar14[1] = puVar32" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[2] = puVar28;" (assignment_expression "puVar14[2] = puVar28" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[3] = puVar13;" (assignment_expression "puVar14[3] = puVar13" (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 "(ppuVar16 != &puStack_d8)" ( (binary_expression "ppuVar16 != &puStack_d8" identifier != (pointer_expression "&puStack_d8" & identifier)) )) ;) (expression_statement "puVar21 = puVar21 + 10;" (assignment_expression "puVar21 = puVar21 + 10" identifier = (binary_expression "puVar21 + 10" identifier + number_literal)) ;) (expression_statement "puVar13 = ppuVar15[5];" (assignment_expression "puVar13 = ppuVar15[5]" identifier = (subscript_expression "ppuVar15[5]" identifier [ number_literal ])) ;) (expression_statement "puVar14[4] = *ppuVar16;" (assignment_expression "puVar14[4] = *ppuVar16" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = (pointer_expression "*ppuVar16" * identifier)) ;) (expression_statement "puVar14[5] = puVar13;" (assignment_expression "puVar14[5] = puVar13" (subscript_expression "puVar14[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 "pcVar36 = add_output_section_generic;" (assignment_expression "pcVar36 = add_output_section_generic" 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,*(int *)(pcStack_100 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar23,0x231,*(int *)(pcStack_100 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_100 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_100 + -0x7924)" * (cast_expression "(int *)(pcStack_100 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_100 + -0x7924)" ( (binary_expression "pcStack_100 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_168 = pcVar35 + 0x276418;" (assignment_expression "pcStack_168 = pcVar35 + 0x276418" identifier = (binary_expression "pcVar35 + 0x276418" identifier + number_literal)) ;) (expression_statement "uStack_178 = uStack_110;" (assignment_expression "uStack_178 = uStack_110" identifier = identifier) ;) (expression_statement "uStack_170 = 0;" (assignment_expression "uStack_170 = 0" identifier = number_literal) ;) (expression_statement "iStack_174 = iStack_10c;" (assignment_expression "iStack_174 = iStack_10c" identifier = identifier) ;) (expression_statement "uStack_180 = uStack_114;" (assignment_expression "uStack_180 = uStack_114" identifier = identifier) ;) (expression_statement "ppuStack_138 = &puStack_f8;" (assignment_expression "ppuStack_138 = &puStack_f8" identifier = (pointer_expression "&puStack_f8" & identifier)) ;) (expression_statement "iStack_134 = iVar22;" (assignment_expression "iStack_134 = iVar22" identifier = identifier) ;) (expression_statement "iStack_130 = iVar20;" (assignment_expression "iStack_130 = iVar20" identifier = identifier) ;) (expression_statement "pcStack_12c = pcVar36;" (assignment_expression "pcStack_12c = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26f17c))(&uStack_160);" (call_expression "(**(code **)(pcVar35 + 0x26f17c))(&uStack_160)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26f17c))" ( (pointer_expression "**(code **)(pcVar35 + 0x26f17c)" * (pointer_expression "*(code **)(pcVar35 + 0x26f17c)" * (cast_expression "(code **)(pcVar35 + 0x26f17c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26f17c)" ( (binary_expression "pcVar35 + 0x26f17c" identifier + number_literal) ))))) )) (argument_list "(&uStack_160)" ( (pointer_expression "&uStack_160" & 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_13c = iStack_104;" (assignment_expression "iStack_13c = iStack_104" identifier = identifier) ;) (expression_statement "uStack_140 = uStack_108;" (assignment_expression "uStack_140 = uStack_108" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcStack_168 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_160);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n    iVar20 = iStack_104;\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_160;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_140);\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_168 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_160);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n    iVar20 = iStack_104;\n  }" { (expression_statement "(**(code **)(pcStack_168 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_160);" (call_expression "(**(code **)(pcStack_168 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_160)" (parenthesized_expression "(**(code **)(pcStack_168 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_168 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_168 + -0x5ce0)" * (cast_expression "(code **)(pcStack_168 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_168 + -0x5ce0)" ( (binary_expression "pcStack_168 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x38,puVar21,&uStack_160)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_160" & 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_104;" (assignment_expression "iVar20 = iStack_104" identifier = identifier) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_160;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_140);\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_160;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_140);\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_160;" (assignment_expression "puVar14 = &uStack_160" identifier = (pointer_expression "&uStack_160" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_140);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\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 "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_140)" ( (binary_expression "puVar14 != &uStack_140" identifier != (pointer_expression "&uStack_140" & 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 "iVar22 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;" (assignment_expression "iVar22 = (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) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    puVar32[0x20] = puVar32[0x20] & 0xf7 | 8;\n    if (iStack_14c << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_148 != -4) && (iStack_15c != 0)) {\n      if (*(int *)(iStack_15c + 100) == 0) {\n        *(int *)(iStack_15c + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_15c + 100) = *(int *)(iStack_15c + 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) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    puVar32[0x20] = puVar32[0x20] & 0xf7 | 8;\n    if (iStack_14c << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_148 != -4) && (iStack_15c != 0)) {\n      if (*(int *)(iStack_15c + 100) == 0) {\n        *(int *)(iStack_15c + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_15c + 100) = *(int *)(iStack_15c + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar23 + 0x14) = iVar22 * 0x33333338;" (assignment_expression "*(int *)(iVar23 + 0x14) = iVar22 * 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 "iVar22 * 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 "puVar32[0x20] = puVar32[0x20] & 0xf7 | 8;" (assignment_expression "puVar32[0x20] = puVar32[0x20] & 0xf7 | 8" (subscript_expression "puVar32[0x20]" identifier [ number_literal ]) = (binary_expression "puVar32[0x20] & 0xf7 | 8" (binary_expression "puVar32[0x20] & 0xf7" (subscript_expression "puVar32[0x20]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) (if_statement "if (iStack_14c << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_14c << 0x1c < 0)" ( (binary_expression "iStack_14c << 0x1c < 0" (binary_expression "iStack_14c << 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_148 != -4) && (iStack_15c != 0)) {\n      if (*(int *)(iStack_15c + 100) == 0) {\n        *(int *)(iStack_15c + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_15c + 100) = *(int *)(iStack_15c + 100) + 1;\n    }" if (parenthesized_expression "((iStack_148 != -4) && (iStack_15c != 0))" ( (binary_expression "(iStack_148 != -4) && (iStack_15c != 0)" (parenthesized_expression "(iStack_148 != -4)" ( (binary_expression "iStack_148 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_15c != 0)" ( (binary_expression "iStack_15c != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_15c + 100) == 0) {\n        *(int *)(iStack_15c + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_15c + 100) = *(int *)(iStack_15c + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_15c + 100) == 0) {\n        *(int *)(iStack_15c + 0x60) = iVar22 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_15c + 100) == 0)" ( (binary_expression "*(int *)(iStack_15c + 100) == 0" (pointer_expression "*(int *)(iStack_15c + 100)" * (cast_expression "(int *)(iStack_15c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_15c + 100)" ( (binary_expression "iStack_15c + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_15c + 0x60) = iVar22 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_15c + 0x60) = iVar22 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_15c + 0x60) = iVar22 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_15c + 0x60)" * (cast_expression "(int *)(iStack_15c + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_15c + 0x60)" ( (binary_expression "iStack_15c + 0x60" identifier + number_literal) )))) = (binary_expression "iVar22 * -0x33333333 + -1" (binary_expression "iVar22 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_15c + 100) = *(int *)(iStack_15c + 100) + 1;" (assignment_expression "*(int *)(iStack_15c + 100) = *(int *)(iStack_15c + 100) + 1" (pointer_expression "*(int *)(iStack_15c + 100)" * (cast_expression "(int *)(iStack_15c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_15c + 100)" ( (binary_expression "iStack_15c + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_15c + 100) + 1" (pointer_expression "*(int *)(iStack_15c + 100)" * (cast_expression "(int *)(iStack_15c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_15c + 100)" ( (binary_expression "iStack_15c + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_168 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_168 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_168 + -0x7810)" * (cast_expression "(code **)(pcStack_168 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_168 + -0x7810)" ( (binary_expression "pcStack_168 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_output_section;" (assignment_expression "pcVar36 = add_output_section" identifier = identifier) ;) (expression_statement "iVar22 = *(int *)(pcStack_168 + -0x7fc4) + 0x3574;" (assignment_expression "iVar22 = *(int *)(pcStack_168 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_168 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_168 + -0x7fc4)" * (cast_expression "(int *)(pcStack_168 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_168 + -0x7fc4)" ( (binary_expression "pcStack_168 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_168 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_168 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar22,0x231,*(int *)(pcStack_168 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_168 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_168 + -0x7924)" * (cast_expression "(int *)(pcStack_168 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_168 + -0x7924)" ( (binary_expression "pcStack_168 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_1d0 = pcVar35 + 0x276260;" (assignment_expression "pcStack_1d0 = pcVar35 + 0x276260" identifier = (binary_expression "pcVar35 + 0x276260" identifier + number_literal)) ;) (expression_statement "uStack_1e0 = uStack_178;" (assignment_expression "uStack_1e0 = uStack_178" identifier = identifier) ;) (expression_statement "uStack_1d8 = 0;" (assignment_expression "uStack_1d8 = 0" identifier = number_literal) ;) (expression_statement "iStack_1dc = iStack_174;" (assignment_expression "iStack_1dc = iStack_174" identifier = identifier) ;) (expression_statement "uStack_1e8 = uStack_17c;" (assignment_expression "uStack_1e8 = uStack_17c" identifier = identifier) ;) (expression_statement "puStack_1a0 = &uStack_160;" (assignment_expression "puStack_1a0 = &uStack_160" identifier = (pointer_expression "&uStack_160" & identifier)) ;) (expression_statement "iStack_19c = iVar23;" (assignment_expression "iStack_19c = iVar23" identifier = identifier) ;) (expression_statement "puStack_198 = puVar32;" (assignment_expression "puStack_198 = puVar32" identifier = identifier) ;) (expression_statement "pcStack_194 = pcVar36;" (assignment_expression "pcStack_194 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26efc4))(&uStack_1c8);" (call_expression "(**(code **)(pcVar35 + 0x26efc4))(&uStack_1c8)" (parenthesized_expression "(**(code **)(pcVar35 + 0x26efc4))" ( (pointer_expression "**(code **)(pcVar35 + 0x26efc4)" * (pointer_expression "*(code **)(pcVar35 + 0x26efc4)" * (cast_expression "(code **)(pcVar35 + 0x26efc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x26efc4)" ( (binary_expression "pcVar35 + 0x26efc4" identifier + number_literal) ))))) )) (argument_list "(&uStack_1c8)" ( (pointer_expression "&uStack_1c8" & 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 "iStack_1a4 = iStack_16c;" (assignment_expression "iStack_1a4 = iStack_16c" identifier = identifier) ;) (expression_statement "uStack_1a8 = uStack_170;" (assignment_expression "uStack_1a8 = uStack_170" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_1d0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_1c8);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n    iVar23 = iStack_16c;\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_1c8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar23 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar23;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_1a8);\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_1d0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_1c8);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n    iVar23 = iStack_16c;\n  }" { (expression_statement "(**(code **)(pcStack_1d0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_1c8);" (call_expression "(**(code **)(pcStack_1d0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_1c8)" (parenthesized_expression "(**(code **)(pcStack_1d0 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_1d0 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_1d0 + -0x5ce0)" * (cast_expression "(code **)(pcStack_1d0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d0 + -0x5ce0)" ( (binary_expression "pcStack_1d0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar22 + 0x38,puVar21,&uStack_1c8)" ( (binary_expression "iVar22 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_1c8" & 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 "iVar23 = iStack_16c;" (assignment_expression "iVar23 = iStack_16c" identifier = identifier) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_1c8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar23 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar23;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_1a8);\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_1c8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar23 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar23;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_1a8);\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_1c8;" (assignment_expression "puVar14 = &uStack_1c8" identifier = (pointer_expression "&uStack_1c8" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar23 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar23;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_1a8);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar23 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar23;\n      puVar5[2] = uVar27;\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 "iVar23 = puVar6[1];" (assignment_expression "iVar23 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = iVar23;" (assignment_expression "puVar5[1] = iVar23" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_1a8)" ( (binary_expression "puVar14 != &uStack_1a8" identifier != (pointer_expression "&uStack_1a8" & 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 "iVar24 = (int)puVar21 - *(int *)(iVar22 + 0x38) >> 3;" (assignment_expression "iVar24 = (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) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar22 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_1b4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_1b0 != -4) && (iStack_1c4 != 0)) {\n      if (*(int *)(iStack_1c4 + 100) == 0) {\n        *(int *)(iStack_1c4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1c4 + 100) = *(int *)(iStack_1c4 + 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) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar22 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_1b4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_1b0 != -4) && (iStack_1c4 != 0)) {\n      if (*(int *)(iStack_1c4 + 100) == 0) {\n        *(int *)(iStack_1c4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1c4 + 100) = *(int *)(iStack_1c4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar22 + 0x14) = iVar24 * 0x33333338;" (assignment_expression "*(int *)(iVar22 + 0x14) = iVar24 * 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 "iVar24 * 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_1b4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_1b4 << 0x1c < 0)" ( (binary_expression "iStack_1b4 << 0x1c < 0" (binary_expression "iStack_1b4 << 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_1b0 != -4) && (iStack_1c4 != 0)) {\n      if (*(int *)(iStack_1c4 + 100) == 0) {\n        *(int *)(iStack_1c4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1c4 + 100) = *(int *)(iStack_1c4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_1b0 != -4) && (iStack_1c4 != 0))" ( (binary_expression "(iStack_1b0 != -4) && (iStack_1c4 != 0)" (parenthesized_expression "(iStack_1b0 != -4)" ( (binary_expression "iStack_1b0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_1c4 != 0)" ( (binary_expression "iStack_1c4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_1c4 + 100) == 0) {\n        *(int *)(iStack_1c4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_1c4 + 100) = *(int *)(iStack_1c4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_1c4 + 100) == 0) {\n        *(int *)(iStack_1c4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_1c4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_1c4 + 100) == 0" (pointer_expression "*(int *)(iStack_1c4 + 100)" * (cast_expression "(int *)(iStack_1c4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1c4 + 100)" ( (binary_expression "iStack_1c4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_1c4 + 0x60) = iVar24 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_1c4 + 0x60) = iVar24 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_1c4 + 0x60) = iVar24 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_1c4 + 0x60)" * (cast_expression "(int *)(iStack_1c4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1c4 + 0x60)" ( (binary_expression "iStack_1c4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar24 * -0x33333333 + -1" (binary_expression "iVar24 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_1c4 + 100) = *(int *)(iStack_1c4 + 100) + 1;" (assignment_expression "*(int *)(iStack_1c4 + 100) = *(int *)(iStack_1c4 + 100) + 1" (pointer_expression "*(int *)(iStack_1c4 + 100)" * (cast_expression "(int *)(iStack_1c4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1c4 + 100)" ( (binary_expression "iStack_1c4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_1c4 + 100) + 1" (pointer_expression "*(int *)(iStack_1c4 + 100)" * (cast_expression "(int *)(iStack_1c4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_1c4 + 100)" ( (binary_expression "iStack_1c4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_1d0 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_1d0 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_1d0 + -0x7810)" * (cast_expression "(code **)(pcStack_1d0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d0 + -0x7810)" ( (binary_expression "pcStack_1d0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_global;" (assignment_expression "pcVar36 = add_global" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(pcStack_1d0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar24 = *(int *)(pcStack_1d0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_1d0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_1d0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_1d0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d0 + -0x7fc4)" ( (binary_expression "pcStack_1d0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar24,0x231,*(int *)(pcStack_1d0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar24,0x231,*(int *)(pcStack_1d0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar24,0x231,*(int *)(pcStack_1d0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_1d0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_1d0 + -0x7924)" * (cast_expression "(int *)(pcStack_1d0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d0 + -0x7924)" ( (binary_expression "pcStack_1d0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_238 = pcVar35 + 0x2760a8;" (assignment_expression "pcStack_238 = pcVar35 + 0x2760a8" identifier = (binary_expression "pcVar35 + 0x2760a8" identifier + number_literal)) ;) (expression_statement "uStack_250 = uStack_1e8;" (assignment_expression "uStack_250 = uStack_1e8" identifier = identifier) ;) (expression_statement "uStack_240 = 0;" (assignment_expression "uStack_240 = 0" identifier = number_literal) ;) (expression_statement "iStack_244 = 0;" (assignment_expression "iStack_244 = 0" identifier = number_literal) ;) (expression_statement "uStack_248 = 0;" (assignment_expression "uStack_248 = 0" identifier = number_literal) ;) (expression_statement "uStack_24c = uStack_1e4;" (assignment_expression "uStack_24c = uStack_1e4" identifier = identifier) ;) (expression_statement "puStack_208 = &uStack_1c8;" (assignment_expression "puStack_208 = &uStack_1c8" identifier = (pointer_expression "&uStack_1c8" & identifier)) ;) (expression_statement "iStack_204 = iVar22;" (assignment_expression "iStack_204 = iVar22" identifier = identifier) ;) (expression_statement "iStack_200 = iVar20;" (assignment_expression "iStack_200 = iVar20" identifier = identifier) ;) (expression_statement "pcStack_1fc = pcVar36;" (assignment_expression "pcStack_1fc = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26ead0))(&uStack_230);" (call_expression "(**(code **)(pcVar35 + 0x26ead0))(&uStack_230)" (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_230)" ( (pointer_expression "&uStack_230" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iStack_20c = iStack_1dc;" (assignment_expression "iStack_20c = iStack_1dc" identifier = identifier) ;) (expression_statement "uStack_210 = uStack_1e0;" (assignment_expression "uStack_210 = uStack_1e0" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {\n    iVar20 = iStack_1dc;\n    (**(code **)(pcStack_238 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_230);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_230;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_210);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar24 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar24 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar24 + 0x40)" * (cast_expression "(undefined4 **)(iVar24 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x40)" ( (binary_expression "iVar24 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar20 = iStack_1dc;\n    (**(code **)(pcStack_238 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_230);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }" { (expression_statement "iVar20 = iStack_1dc;" (assignment_expression "iVar20 = iStack_1dc" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_238 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_230);" (call_expression "(**(code **)(pcStack_238 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_230)" (parenthesized_expression "(**(code **)(pcStack_238 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_238 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_238 + -0x5ce0)" * (cast_expression "(code **)(pcStack_238 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_238 + -0x5ce0)" ( (binary_expression "pcStack_238 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar24 + 0x38,puVar21,&uStack_230)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_230" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_230;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_210);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_230;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_210);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_230;" (assignment_expression "puVar14 = &uStack_230" identifier = (pointer_expression "&uStack_230" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_210);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\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 "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_210)" ( (binary_expression "puVar14 != &uStack_210" identifier != (pointer_expression "&uStack_210" & 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 **)(iVar24 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar24 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar22 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;" (assignment_expression "iVar22 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar24 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar24 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_21c << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_218 != -4) && (iStack_22c != 0)) {\n      if (*(int *)(iStack_22c + 100) == 0) {\n        *(int *)(iStack_22c + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_22c + 100) = *(int *)(iStack_22c + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar24 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar24 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar24 + 0x20) << 1" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar24 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_21c << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_218 != -4) && (iStack_22c != 0)) {\n      if (*(int *)(iStack_22c + 100) == 0) {\n        *(int *)(iStack_22c + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_22c + 100) = *(int *)(iStack_22c + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar24 + 0x14) = iVar22 * 0x33333338;" (assignment_expression "*(int *)(iVar24 + 0x14) = iVar22 * 0x33333338" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar22 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar24 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar24 + 0x10)" * (cast_expression "(undefined4 *)(iVar24 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_21c << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_21c << 0x1c < 0)" ( (binary_expression "iStack_21c << 0x1c < 0" (binary_expression "iStack_21c << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;" (assignment_expression "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_218 != -4) && (iStack_22c != 0)) {\n      if (*(int *)(iStack_22c + 100) == 0) {\n        *(int *)(iStack_22c + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_22c + 100) = *(int *)(iStack_22c + 100) + 1;\n    }" if (parenthesized_expression "((iStack_218 != -4) && (iStack_22c != 0))" ( (binary_expression "(iStack_218 != -4) && (iStack_22c != 0)" (parenthesized_expression "(iStack_218 != -4)" ( (binary_expression "iStack_218 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_22c != 0)" ( (binary_expression "iStack_22c != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_22c + 100) == 0) {\n        *(int *)(iStack_22c + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_22c + 100) = *(int *)(iStack_22c + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_22c + 100) == 0) {\n        *(int *)(iStack_22c + 0x60) = iVar22 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_22c + 100) == 0)" ( (binary_expression "*(int *)(iStack_22c + 100) == 0" (pointer_expression "*(int *)(iStack_22c + 100)" * (cast_expression "(int *)(iStack_22c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_22c + 100)" ( (binary_expression "iStack_22c + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_22c + 0x60) = iVar22 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_22c + 0x60) = iVar22 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_22c + 0x60) = iVar22 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_22c + 0x60)" * (cast_expression "(int *)(iStack_22c + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_22c + 0x60)" ( (binary_expression "iStack_22c + 0x60" identifier + number_literal) )))) = (binary_expression "iVar22 * -0x33333333 + -1" (binary_expression "iVar22 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_22c + 100) = *(int *)(iStack_22c + 100) + 1;" (assignment_expression "*(int *)(iStack_22c + 100) = *(int *)(iStack_22c + 100) + 1" (pointer_expression "*(int *)(iStack_22c + 100)" * (cast_expression "(int *)(iStack_22c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_22c + 100)" ( (binary_expression "iStack_22c + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_22c + 100) + 1" (pointer_expression "*(int *)(iStack_22c + 100)" * (cast_expression "(int *)(iStack_22c + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_22c + 100)" ( (binary_expression "iStack_22c + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_238 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_238 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_238 + -0x7810)" * (cast_expression "(code **)(pcStack_238 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_238 + -0x7810)" ( (binary_expression "pcStack_238 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_symbolless_global_addend;" (assignment_expression "pcVar36 = add_symbolless_global_addend" identifier = identifier) ;) (expression_statement "iVar22 = *(int *)(pcStack_238 + -0x7fc4) + 0x3574;" (assignment_expression "iVar22 = *(int *)(pcStack_238 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_238 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_238 + -0x7fc4)" * (cast_expression "(int *)(pcStack_238 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_238 + -0x7fc4)" ( (binary_expression "pcStack_238 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_238 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_238 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar22,0x231,*(int *)(pcStack_238 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_238 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_238 + -0x7924)" * (cast_expression "(int *)(pcStack_238 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_238 + -0x7924)" ( (binary_expression "pcStack_238 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_2a0 = pcVar35 + 0x275ef4;" (assignment_expression "pcStack_2a0 = pcVar35 + 0x275ef4" identifier = (binary_expression "pcVar35 + 0x275ef4" identifier + number_literal)) ;) (expression_statement "iStack_2ac = 1;" (assignment_expression "iStack_2ac = 1" identifier = number_literal) ;) (expression_statement "uStack_2a8 = 0;" (assignment_expression "uStack_2a8 = 0" identifier = number_literal) ;) (expression_statement "uStack_2b0 = 0;" (assignment_expression "uStack_2b0 = 0" identifier = number_literal) ;) (expression_statement "uStack_2b4 = uStack_24c;" (assignment_expression "uStack_2b4 = uStack_24c" identifier = identifier) ;) (expression_statement "uStack_2b8 = uStack_250;" (assignment_expression "uStack_2b8 = uStack_250" identifier = identifier) ;) (expression_statement "puStack_270 = &uStack_230;" (assignment_expression "puStack_270 = &uStack_230" identifier = (pointer_expression "&uStack_230" & identifier)) ;) (expression_statement "iStack_26c = iVar24;" (assignment_expression "iStack_26c = iVar24" identifier = identifier) ;) (expression_statement "iStack_268 = iVar23;" (assignment_expression "iStack_268 = iVar23" identifier = identifier) ;) (expression_statement "pcStack_264 = pcVar36;" (assignment_expression "pcStack_264 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e91c))(&uStack_298);" (call_expression "(**(code **)(pcVar35 + 0x26e91c))(&uStack_298)" (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_298)" ( (pointer_expression "&uStack_298" & 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 "iStack_274 = iStack_244;" (assignment_expression "iStack_274 = iStack_244" identifier = identifier) ;) (expression_statement "uStack_278 = uStack_248;" (assignment_expression "uStack_278 = uStack_248" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    iVar23 = iStack_244;\n    (**(code **)(pcStack_2a0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_298);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_298;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar23 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar23;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_278);\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    iVar23 = iStack_244;\n    (**(code **)(pcStack_2a0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_298);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }" { (expression_statement "iVar23 = iStack_244;" (assignment_expression "iVar23 = iStack_244" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_2a0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_298);" (call_expression "(**(code **)(pcStack_2a0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_298)" (parenthesized_expression "(**(code **)(pcStack_2a0 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_2a0 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_2a0 + -0x5ce0)" * (cast_expression "(code **)(pcStack_2a0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2a0 + -0x5ce0)" ( (binary_expression "pcStack_2a0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar22 + 0x38,puVar21,&uStack_298)" ( (binary_expression "iVar22 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_298" & 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_298;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar23 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar23;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_278);\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_298;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar23 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar23;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_278);\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_298;" (assignment_expression "puVar14 = &uStack_298" identifier = (pointer_expression "&uStack_298" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar23 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar23;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_278);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar23 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar23;\n      puVar5[2] = uVar27;\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 "iVar23 = puVar6[1];" (assignment_expression "iVar23 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = iVar23;" (assignment_expression "puVar5[1] = iVar23" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_278)" ( (binary_expression "puVar14 != &uStack_278" identifier != (pointer_expression "&uStack_278" & 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 "iVar24 = (int)puVar21 - *(int *)(iVar22 + 0x38) >> 3;" (assignment_expression "iVar24 = (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) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar22 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_284 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_280 != -4) && (iStack_294 != 0)) {\n      if (*(int *)(iStack_294 + 100) == 0) {\n        *(int *)(iStack_294 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_294 + 100) = *(int *)(iStack_294 + 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) = iVar24 * 0x33333338;\n    *(undefined4 *)(iVar22 + 0x10) = 0;\n    *(byte *)(iVar20 + 0x20) = *(byte *)(iVar20 + 0x20) & 0xf7 | 8;\n    if (iStack_284 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_280 != -4) && (iStack_294 != 0)) {\n      if (*(int *)(iStack_294 + 100) == 0) {\n        *(int *)(iStack_294 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_294 + 100) = *(int *)(iStack_294 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar22 + 0x14) = iVar24 * 0x33333338;" (assignment_expression "*(int *)(iVar22 + 0x14) = iVar24 * 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 "iVar24 * 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_284 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_284 << 0x1c < 0)" ( (binary_expression "iStack_284 << 0x1c < 0" (binary_expression "iStack_284 << 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_280 != -4) && (iStack_294 != 0)) {\n      if (*(int *)(iStack_294 + 100) == 0) {\n        *(int *)(iStack_294 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_294 + 100) = *(int *)(iStack_294 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_280 != -4) && (iStack_294 != 0))" ( (binary_expression "(iStack_280 != -4) && (iStack_294 != 0)" (parenthesized_expression "(iStack_280 != -4)" ( (binary_expression "iStack_280 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_294 != 0)" ( (binary_expression "iStack_294 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_294 + 100) == 0) {\n        *(int *)(iStack_294 + 0x60) = iVar24 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_294 + 100) = *(int *)(iStack_294 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_294 + 100) == 0) {\n        *(int *)(iStack_294 + 0x60) = iVar24 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_294 + 100) == 0)" ( (binary_expression "*(int *)(iStack_294 + 100) == 0" (pointer_expression "*(int *)(iStack_294 + 100)" * (cast_expression "(int *)(iStack_294 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_294 + 100)" ( (binary_expression "iStack_294 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_294 + 0x60) = iVar24 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_294 + 0x60) = iVar24 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_294 + 0x60) = iVar24 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_294 + 0x60)" * (cast_expression "(int *)(iStack_294 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_294 + 0x60)" ( (binary_expression "iStack_294 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar24 * -0x33333333 + -1" (binary_expression "iVar24 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_294 + 100) = *(int *)(iStack_294 + 100) + 1;" (assignment_expression "*(int *)(iStack_294 + 100) = *(int *)(iStack_294 + 100) + 1" (pointer_expression "*(int *)(iStack_294 + 100)" * (cast_expression "(int *)(iStack_294 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_294 + 100)" ( (binary_expression "iStack_294 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_294 + 100) + 1" (pointer_expression "*(int *)(iStack_294 + 100)" * (cast_expression "(int *)(iStack_294 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_294 + 100)" ( (binary_expression "iStack_294 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_2a0 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_2a0 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_2a0 + -0x7810)" * (cast_expression "(code **)(pcStack_2a0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_2a0 + -0x7810)" ( (binary_expression "pcStack_2a0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_global_relative;" (assignment_expression "pcVar36 = add_global_relative" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(pcStack_2a0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar24 = *(int *)(pcStack_2a0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_2a0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_2a0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_2a0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_2a0 + -0x7fc4)" ( (binary_expression "pcStack_2a0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar24,0x231,*(int *)(pcStack_2a0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar24,0x231,*(int *)(pcStack_2a0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar24,0x231,*(int *)(pcStack_2a0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_2a0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_2a0 + -0x7924)" * (cast_expression "(int *)(pcStack_2a0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_2a0 + -0x7924)" ( (binary_expression "pcStack_2a0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_308 = pcVar35 + 0x275d3c;" (assignment_expression "pcStack_308 = pcVar35 + 0x275d3c" identifier = (binary_expression "pcVar35 + 0x275d3c" identifier + number_literal)) ;) (expression_statement "uStack_310 = uStack_2a8 & 0xff;" (assignment_expression "uStack_310 = uStack_2a8 & 0xff" identifier = (binary_expression "uStack_2a8 & 0xff" identifier & number_literal)) ;) (expression_statement "uStack_314 = 1;" (assignment_expression "uStack_314 = 1" identifier = number_literal) ;) (expression_statement "uStack_318 = 1;" (assignment_expression "uStack_318 = 1" identifier = number_literal) ;) (expression_statement "uStack_320 = uStack_2b8;" (assignment_expression "uStack_320 = uStack_2b8" identifier = identifier) ;) (expression_statement "uStack_31c = uStack_2b4;" (assignment_expression "uStack_31c = uStack_2b4" identifier = identifier) ;) (expression_statement "puStack_2d8 = &uStack_298;" (assignment_expression "puStack_2d8 = &uStack_298" identifier = (pointer_expression "&uStack_298" & identifier)) ;) (expression_statement "iStack_2d4 = iVar22;" (assignment_expression "iStack_2d4 = iVar22" identifier = identifier) ;) (expression_statement "iStack_2d0 = iVar20;" (assignment_expression "iStack_2d0 = iVar20" identifier = identifier) ;) (expression_statement "pcStack_2cc = pcVar36;" (assignment_expression "pcStack_2cc = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e764))(&uStack_300);" (call_expression "(**(code **)(pcVar35 + 0x26e764))(&uStack_300)" (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_300)" ( (pointer_expression "&uStack_300" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iStack_2dc = iStack_2ac;" (assignment_expression "iStack_2dc = iStack_2ac" identifier = identifier) ;) (expression_statement "uStack_2e0 = uStack_2b0;" (assignment_expression "uStack_2e0 = uStack_2b0" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {\n    iVar20 = iStack_2ac;\n    (**(code **)(pcStack_308 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_300);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_300;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_2e0);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar24 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar24 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar24 + 0x40)" * (cast_expression "(undefined4 **)(iVar24 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x40)" ( (binary_expression "iVar24 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar20 = iStack_2ac;\n    (**(code **)(pcStack_308 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_300);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }" { (expression_statement "iVar20 = iStack_2ac;" (assignment_expression "iVar20 = iStack_2ac" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_308 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_300);" (call_expression "(**(code **)(pcStack_308 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_300)" (parenthesized_expression "(**(code **)(pcStack_308 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_308 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_308 + -0x5ce0)" * (cast_expression "(code **)(pcStack_308 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_308 + -0x5ce0)" ( (binary_expression "pcStack_308 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar24 + 0x38,puVar21,&uStack_300)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_300" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_300;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_2e0);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_300;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_2e0);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_300;" (assignment_expression "puVar14 = &uStack_300" identifier = (pointer_expression "&uStack_300" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_2e0);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\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 "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_2e0)" ( (binary_expression "puVar14 != &uStack_2e0" identifier != (pointer_expression "&uStack_2e0" & 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 **)(iVar24 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar24 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar22 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;" (assignment_expression "iVar22 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar24 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar24 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_2ec << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_2e8 != -4) && (iStack_2fc != 0)) {\n      if (*(int *)(iStack_2fc + 100) == 0) {\n        *(int *)(iStack_2fc + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_2fc + 100) = *(int *)(iStack_2fc + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar24 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar24 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar24 + 0x20) << 1" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar24 + 0x14) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_2ec << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_2e8 != -4) && (iStack_2fc != 0)) {\n      if (*(int *)(iStack_2fc + 100) == 0) {\n        *(int *)(iStack_2fc + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_2fc + 100) = *(int *)(iStack_2fc + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar24 + 0x14) = iVar22 * 0x33333338;" (assignment_expression "*(int *)(iVar24 + 0x14) = iVar22 * 0x33333338" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar22 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar24 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar24 + 0x10)" * (cast_expression "(undefined4 *)(iVar24 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_2ec << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_2ec << 0x1c < 0)" ( (binary_expression "iStack_2ec << 0x1c < 0" (binary_expression "iStack_2ec << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;" (assignment_expression "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_2e8 != -4) && (iStack_2fc != 0)) {\n      if (*(int *)(iStack_2fc + 100) == 0) {\n        *(int *)(iStack_2fc + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_2fc + 100) = *(int *)(iStack_2fc + 100) + 1;\n    }" if (parenthesized_expression "((iStack_2e8 != -4) && (iStack_2fc != 0))" ( (binary_expression "(iStack_2e8 != -4) && (iStack_2fc != 0)" (parenthesized_expression "(iStack_2e8 != -4)" ( (binary_expression "iStack_2e8 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_2fc != 0)" ( (binary_expression "iStack_2fc != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_2fc + 100) == 0) {\n        *(int *)(iStack_2fc + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_2fc + 100) = *(int *)(iStack_2fc + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_2fc + 100) == 0) {\n        *(int *)(iStack_2fc + 0x60) = iVar22 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_2fc + 100) == 0)" ( (binary_expression "*(int *)(iStack_2fc + 100) == 0" (pointer_expression "*(int *)(iStack_2fc + 100)" * (cast_expression "(int *)(iStack_2fc + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_2fc + 100)" ( (binary_expression "iStack_2fc + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_2fc + 0x60) = iVar22 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_2fc + 0x60) = iVar22 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_2fc + 0x60) = iVar22 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_2fc + 0x60)" * (cast_expression "(int *)(iStack_2fc + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_2fc + 0x60)" ( (binary_expression "iStack_2fc + 0x60" identifier + number_literal) )))) = (binary_expression "iVar22 * -0x33333333 + -1" (binary_expression "iVar22 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_2fc + 100) = *(int *)(iStack_2fc + 100) + 1;" (assignment_expression "*(int *)(iStack_2fc + 100) = *(int *)(iStack_2fc + 100) + 1" (pointer_expression "*(int *)(iStack_2fc + 100)" * (cast_expression "(int *)(iStack_2fc + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_2fc + 100)" ( (binary_expression "iStack_2fc + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_2fc + 100) + 1" (pointer_expression "*(int *)(iStack_2fc + 100)" * (cast_expression "(int *)(iStack_2fc + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_2fc + 100)" ( (binary_expression "iStack_2fc + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_308 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_308 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_308 + -0x7810)" * (cast_expression "(code **)(pcStack_308 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_308 + -0x7810)" ( (binary_expression "pcStack_308 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_global;" (assignment_expression "pcVar36 = add_global" identifier = identifier) ;) (expression_statement "iVar22 = *(int *)(pcStack_308 + -0x7fc4) + 0x3574;" (assignment_expression "iVar22 = *(int *)(pcStack_308 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_308 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_308 + -0x7fc4)" * (cast_expression "(int *)(pcStack_308 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_308 + -0x7fc4)" ( (binary_expression "pcStack_308 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_308 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_308 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar22,0x231,*(int *)(pcStack_308 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_308 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_308 + -0x7924)" * (cast_expression "(int *)(pcStack_308 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_308 + -0x7924)" ( (binary_expression "pcStack_308 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_370 = pcVar35 + 0x275b80;" (assignment_expression "pcStack_370 = pcVar35 + 0x275b80" identifier = (binary_expression "pcVar35 + 0x275b80" identifier + number_literal)) ;) (expression_statement "uStack_388 = uStack_318;" (assignment_expression "uStack_388 = uStack_318" identifier = identifier) ;) (expression_statement "uStack_378 = 0;" (assignment_expression "uStack_378 = 0" identifier = number_literal) ;) (expression_statement "iStack_37c = 0;" (assignment_expression "iStack_37c = 0" identifier = number_literal) ;) (expression_statement "uStack_380 = 0;" (assignment_expression "uStack_380 = 0" identifier = number_literal) ;) (expression_statement "uStack_384 = uStack_314;" (assignment_expression "uStack_384 = uStack_314" identifier = identifier) ;) (expression_statement "uStack_390 = uStack_31c;" (assignment_expression "uStack_390 = uStack_31c" identifier = identifier) ;) (expression_statement "puStack_340 = &uStack_300;" (assignment_expression "puStack_340 = &uStack_300" identifier = (pointer_expression "&uStack_300" & identifier)) ;) (expression_statement "iStack_33c = iVar24;" (assignment_expression "iStack_33c = iVar24" identifier = identifier) ;) (expression_statement "iStack_338 = iVar23;" (assignment_expression "iStack_338 = iVar23" identifier = identifier) ;) (expression_statement "pcStack_334 = pcVar36;" (assignment_expression "pcStack_334 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e7d0))(&uStack_368);" (call_expression "(**(code **)(pcVar35 + 0x26e7d0))(&uStack_368)" (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_368)" ( (pointer_expression "&uStack_368" & identifier) ))) ;) (expression_statement "puVar25 = *(uint **)(iVar22 + 0x3c);" (assignment_expression "puVar25 = *(uint **)(iVar22 + 0x3c)" identifier = (pointer_expression "*(uint **)(iVar22 + 0x3c)" * (cast_expression "(uint **)(iVar22 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x3c)" ( (binary_expression "iVar22 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_344 = uStack_30c;" (assignment_expression "uStack_344 = uStack_30c" identifier = identifier) ;) (expression_statement "uStack_348 = uStack_310;" (assignment_expression "uStack_348 = uStack_310" identifier = identifier) ;) (if_statement "if (puVar25 == *(uint **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_370 + -0x5ce0))(iVar22 + 0x38,puVar25,&uStack_368);\n    puVar25 = *(uint **)(iVar22 + 0x3c);\n    uVar33 = uStack_30c;\n  }\n  else {\n    puVar1 = puVar25;\n    puVar18 = &uStack_368;\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_348);\n    puVar25 = puVar25 + 10;\n    uVar9 = puVar17[5];\n    puVar4[4] = *puVar18;\n    puVar4[5] = uVar9;\n    *(uint **)(iVar22 + 0x3c) = puVar25;\n  }" if (parenthesized_expression "(puVar25 == *(uint **)(iVar22 + 0x40))" ( (binary_expression "puVar25 == *(uint **)(iVar22 + 0x40)" identifier == (pointer_expression "*(uint **)(iVar22 + 0x40)" * (cast_expression "(uint **)(iVar22 + 0x40)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x40)" ( (binary_expression "iVar22 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_370 + -0x5ce0))(iVar22 + 0x38,puVar25,&uStack_368);\n    puVar25 = *(uint **)(iVar22 + 0x3c);\n    uVar33 = uStack_30c;\n  }" { (expression_statement "(**(code **)(pcStack_370 + -0x5ce0))(iVar22 + 0x38,puVar25,&uStack_368);" (call_expression "(**(code **)(pcStack_370 + -0x5ce0))(iVar22 + 0x38,puVar25,&uStack_368)" (parenthesized_expression "(**(code **)(pcStack_370 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_370 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_370 + -0x5ce0)" * (cast_expression "(code **)(pcStack_370 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_370 + -0x5ce0)" ( (binary_expression "pcStack_370 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar22 + 0x38,puVar25,&uStack_368)" ( (binary_expression "iVar22 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_368" & identifier) ))) ;) (expression_statement "puVar25 = *(uint **)(iVar22 + 0x3c);" (assignment_expression "puVar25 = *(uint **)(iVar22 + 0x3c)" identifier = (pointer_expression "*(uint **)(iVar22 + 0x3c)" * (cast_expression "(uint **)(iVar22 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x3c)" ( (binary_expression "iVar22 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uVar33 = uStack_30c;" (assignment_expression "uVar33 = uStack_30c" identifier = identifier) ;) }) (else_clause "else {\n    puVar1 = puVar25;\n    puVar18 = &uStack_368;\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_348);\n    puVar25 = puVar25 + 10;\n    uVar9 = puVar17[5];\n    puVar4[4] = *puVar18;\n    puVar4[5] = uVar9;\n    *(uint **)(iVar22 + 0x3c) = puVar25;\n  }" else (compound_statement "{\n    puVar1 = puVar25;\n    puVar18 = &uStack_368;\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_348);\n    puVar25 = puVar25 + 10;\n    uVar9 = puVar17[5];\n    puVar4[4] = *puVar18;\n    puVar4[5] = uVar9;\n    *(uint **)(iVar22 + 0x3c) = puVar25;\n  }" { (expression_statement "puVar1 = puVar25;" (assignment_expression "puVar1 = puVar25" identifier = identifier) ;) (expression_statement "puVar18 = &uStack_368;" (assignment_expression "puVar18 = &uStack_368" identifier = (pointer_expression "&uStack_368" & 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_348);" 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_348)" ( (binary_expression "puVar18 != &uStack_348" identifier != (pointer_expression "&uStack_348" & identifier)) )) ;) (expression_statement "puVar25 = puVar25 + 10;" (assignment_expression "puVar25 = puVar25 + 10" identifier = (binary_expression "puVar25 + 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 **)(iVar22 + 0x3c) = puVar25;" (assignment_expression "*(uint **)(iVar22 + 0x3c) = puVar25" (pointer_expression "*(uint **)(iVar22 + 0x3c)" * (cast_expression "(uint **)(iVar22 + 0x3c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x3c)" ( (binary_expression "iVar22 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar23 = (int)puVar25 - *(int *)(iVar22 + 0x38) >> 3;" (assignment_expression "iVar23 = (int)puVar25 - *(int *)(iVar22 + 0x38) >> 3" identifier = (binary_expression "(int)puVar25 - *(int *)(iVar22 + 0x38) >> 3" (binary_expression "(int)puVar25 - *(int *)(iVar22 + 0x38)" (cast_expression "(int)puVar25" ( (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_354 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_350 != -4) && (iStack_364 != 0)) {\n      if (*(int *)(iStack_364 + 100) == 0) {\n        *(int *)(iStack_364 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_364 + 100) = *(int *)(iStack_364 + 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_354 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_350 != -4) && (iStack_364 != 0)) {\n      if (*(int *)(iStack_364 + 100) == 0) {\n        *(int *)(iStack_364 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_364 + 100) = *(int *)(iStack_364 + 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_354 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_354 << 0x1c < 0)" ( (binary_expression "iStack_354 << 0x1c < 0" (binary_expression "iStack_354 << 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_350 != -4) && (iStack_364 != 0)) {\n      if (*(int *)(iStack_364 + 100) == 0) {\n        *(int *)(iStack_364 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_364 + 100) = *(int *)(iStack_364 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_350 != -4) && (iStack_364 != 0))" ( (binary_expression "(iStack_350 != -4) && (iStack_364 != 0)" (parenthesized_expression "(iStack_350 != -4)" ( (binary_expression "iStack_350 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_364 != 0)" ( (binary_expression "iStack_364 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_364 + 100) == 0) {\n        *(int *)(iStack_364 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_364 + 100) = *(int *)(iStack_364 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_364 + 100) == 0) {\n        *(int *)(iStack_364 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_364 + 100) == 0)" ( (binary_expression "*(int *)(iStack_364 + 100) == 0" (pointer_expression "*(int *)(iStack_364 + 100)" * (cast_expression "(int *)(iStack_364 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_364 + 100)" ( (binary_expression "iStack_364 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_364 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_364 + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_364 + 0x60) = iVar23 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_364 + 0x60)" * (cast_expression "(int *)(iStack_364 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_364 + 0x60)" ( (binary_expression "iStack_364 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_364 + 100) = *(int *)(iStack_364 + 100) + 1;" (assignment_expression "*(int *)(iStack_364 + 100) = *(int *)(iStack_364 + 100) + 1" (pointer_expression "*(int *)(iStack_364 + 100)" * (cast_expression "(int *)(iStack_364 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_364 + 100)" ( (binary_expression "iStack_364 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_364 + 100) + 1" (pointer_expression "*(int *)(iStack_364 + 100)" * (cast_expression "(int *)(iStack_364 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_364 + 100)" ( (binary_expression "iStack_364 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_370 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_370 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_370 + -0x7810)" * (cast_expression "(code **)(pcStack_370 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_370 + -0x7810)" ( (binary_expression "pcStack_370 + -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_370 + -0x7fc4) + 0x3574;" (assignment_expression "iVar23 = *(int *)(pcStack_370 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_370 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_370 + -0x7fc4)" * (cast_expression "(int *)(pcStack_370 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_370 + -0x7fc4)" ( (binary_expression "pcStack_370 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_370 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar23,0x231,*(int *)(pcStack_370 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar23,0x231,*(int *)(pcStack_370 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_370 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_370 + -0x7924)" * (cast_expression "(int *)(pcStack_370 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_370 + -0x7924)" ( (binary_expression "pcStack_370 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_3e0 = pcVar35 + 0x2759c0;" (assignment_expression "pcStack_3e0 = pcVar35 + 0x2759c0" identifier = (binary_expression "pcVar35 + 0x2759c0" identifier + number_literal)) ;) (expression_statement "uStack_3ec = 1;" (assignment_expression "uStack_3ec = 1" identifier = number_literal) ;) (expression_statement "uStack_3f8 = uStack_388;" (assignment_expression "uStack_3f8 = uStack_388" identifier = identifier) ;) (expression_statement "uStack_3e8 = 0;" (assignment_expression "uStack_3e8 = 0" identifier = number_literal) ;) (expression_statement "uStack_3f0 = 0;" (assignment_expression "uStack_3f0 = 0" identifier = number_literal) ;) (expression_statement "uStack_3f4 = uStack_384;" (assignment_expression "uStack_3f4 = uStack_384" identifier = identifier) ;) (expression_statement "uStack_400 = uStack_38c;" (assignment_expression "uStack_400 = uStack_38c" identifier = identifier) ;) (expression_statement "puStack_3b0 = &uStack_368;" (assignment_expression "puStack_3b0 = &uStack_368" identifier = (pointer_expression "&uStack_368" & identifier)) ;) (expression_statement "iStack_3ac = iVar22;" (assignment_expression "iStack_3ac = iVar22" identifier = identifier) ;) (expression_statement "iStack_3a8 = iVar20;" (assignment_expression "iStack_3a8 = iVar20" identifier = identifier) ;) (expression_statement "pcStack_3a4 = pcVar36;" (assignment_expression "pcStack_3a4 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e610))(&uStack_3d8);" (call_expression "(**(code **)(pcVar35 + 0x26e610))(&uStack_3d8)" (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_3d8)" ( (pointer_expression "&uStack_3d8" & 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_3b4 = iStack_37c;" (assignment_expression "iStack_3b4 = iStack_37c" identifier = identifier) ;) (expression_statement "uStack_3b8 = uStack_380;" (assignment_expression "uStack_3b8 = uStack_380" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    iVar20 = iStack_37c;\n    (**(code **)(pcStack_3e0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_3d8);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_3d8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_3b8);\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_37c;\n    (**(code **)(pcStack_3e0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_3d8);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }" { (expression_statement "iVar20 = iStack_37c;" (assignment_expression "iVar20 = iStack_37c" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_3e0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_3d8);" (call_expression "(**(code **)(pcStack_3e0 + -0x5ce0))(iVar23 + 0x38,puVar21,&uStack_3d8)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x5ce0)" * (cast_expression "(code **)(pcStack_3e0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x5ce0)" ( (binary_expression "pcStack_3e0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar23 + 0x38,puVar21,&uStack_3d8)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_3d8" & 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_3d8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_3b8);\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_3d8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_3b8);\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_3d8;" (assignment_expression "puVar14 = &uStack_3d8" identifier = (pointer_expression "&uStack_3d8" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_3b8);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      iVar20 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = iVar20;\n      puVar5[2] = uVar27;\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 "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_3b8)" ( (binary_expression "puVar14 != &uStack_3b8" identifier != (pointer_expression "&uStack_3b8" & 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 "iVar22 = (int)puVar21 - *(int *)(iVar23 + 0x38) >> 3;" (assignment_expression "iVar22 = (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) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(uVar33 + 0x20) = *(byte *)(uVar33 + 0x20) & 0xf7 | 8;\n    if (iStack_3c4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_3c0 != -4) && (iStack_3d4 != 0)) {\n      if (*(int *)(iStack_3d4 + 100) == 0) {\n        *(int *)(iStack_3d4 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_3d4 + 100) = *(int *)(iStack_3d4 + 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) = iVar22 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(uVar33 + 0x20) = *(byte *)(uVar33 + 0x20) & 0xf7 | 8;\n    if (iStack_3c4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((iStack_3c0 != -4) && (iStack_3d4 != 0)) {\n      if (*(int *)(iStack_3d4 + 100) == 0) {\n        *(int *)(iStack_3d4 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_3d4 + 100) = *(int *)(iStack_3d4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar23 + 0x14) = iVar22 * 0x33333338;" (assignment_expression "*(int *)(iVar23 + 0x14) = iVar22 * 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 "iVar22 * 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 *)(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_3c4 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_3c4 << 0x1c < 0)" ( (binary_expression "iStack_3c4 << 0x1c < 0" (binary_expression "iStack_3c4 << 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_3c0 != -4) && (iStack_3d4 != 0)) {\n      if (*(int *)(iStack_3d4 + 100) == 0) {\n        *(int *)(iStack_3d4 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_3d4 + 100) = *(int *)(iStack_3d4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_3c0 != -4) && (iStack_3d4 != 0))" ( (binary_expression "(iStack_3c0 != -4) && (iStack_3d4 != 0)" (parenthesized_expression "(iStack_3c0 != -4)" ( (binary_expression "iStack_3c0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_3d4 != 0)" ( (binary_expression "iStack_3d4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_3d4 + 100) == 0) {\n        *(int *)(iStack_3d4 + 0x60) = iVar22 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_3d4 + 100) = *(int *)(iStack_3d4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_3d4 + 100) == 0) {\n        *(int *)(iStack_3d4 + 0x60) = iVar22 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_3d4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_3d4 + 100) == 0" (pointer_expression "*(int *)(iStack_3d4 + 100)" * (cast_expression "(int *)(iStack_3d4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_3d4 + 100)" ( (binary_expression "iStack_3d4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_3d4 + 0x60) = iVar22 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_3d4 + 0x60) = iVar22 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_3d4 + 0x60) = iVar22 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_3d4 + 0x60)" * (cast_expression "(int *)(iStack_3d4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_3d4 + 0x60)" ( (binary_expression "iStack_3d4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar22 * -0x33333333 + -1" (binary_expression "iVar22 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_3d4 + 100) = *(int *)(iStack_3d4 + 100) + 1;" (assignment_expression "*(int *)(iStack_3d4 + 100) = *(int *)(iStack_3d4 + 100) + 1" (pointer_expression "*(int *)(iStack_3d4 + 100)" * (cast_expression "(int *)(iStack_3d4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_3d4 + 100)" ( (binary_expression "iStack_3d4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_3d4 + 100) + 1" (pointer_expression "*(int *)(iStack_3d4 + 100)" * (cast_expression "(int *)(iStack_3d4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_3d4 + 100)" ( (binary_expression "iStack_3d4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_3e0 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_3e0 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_3e0 + -0x7810)" * (cast_expression "(code **)(pcStack_3e0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7810)" ( (binary_expression "pcStack_3e0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_global_relative;" (assignment_expression "pcVar36 = add_global_relative" identifier = identifier) ;) (expression_statement "iVar22 = *(int *)(pcStack_3e0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar22 = *(int *)(pcStack_3e0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_3e0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_3e0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_3e0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3e0 + -0x7fc4)" ( (binary_expression "pcStack_3e0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_3e0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_3e0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar22,0x231,*(int *)(pcStack_3e0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_3e0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_3e0 + -0x7924)" * (cast_expression "(int *)(pcStack_3e0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3e0 + -0x7924)" ( (binary_expression "pcStack_3e0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcStack_450 = pcVar35 + 0x2757fc;" (assignment_expression "pcStack_450 = pcVar35 + 0x2757fc" identifier = (binary_expression "pcVar35 + 0x2757fc" identifier + number_literal)) ;) (expression_statement "uStack_458 = uStack_3e8 & 0xff;" (assignment_expression "uStack_458 = uStack_3e8 & 0xff" identifier = (binary_expression "uStack_3e8 & 0xff" identifier & number_literal)) ;) (expression_statement "uStack_45c = 1;" (assignment_expression "uStack_45c = 1" identifier = number_literal) ;) (expression_statement "uStack_460 = 1;" (assignment_expression "uStack_460 = 1" identifier = number_literal) ;) (expression_statement "uStack_468 = uStack_3f8;" (assignment_expression "uStack_468 = uStack_3f8" identifier = identifier) ;) (expression_statement "uStack_464 = uStack_3f4;" (assignment_expression "uStack_464 = uStack_3f4" identifier = identifier) ;) (expression_statement "iStack_470 = iStack_3fc;" (assignment_expression "iStack_470 = iStack_3fc" identifier = identifier) ;) (expression_statement "puStack_420 = &uStack_3d8;" (assignment_expression "puStack_420 = &uStack_3d8" identifier = (pointer_expression "&uStack_3d8" & identifier)) ;) (expression_statement "iStack_41c = iVar23;" (assignment_expression "iStack_41c = iVar23" identifier = identifier) ;) (expression_statement "uStack_418 = uVar33;" (assignment_expression "uStack_418 = uVar33" identifier = identifier) ;) (expression_statement "pcStack_414 = pcVar36;" (assignment_expression "pcStack_414 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e44c))(&uStack_448);" (call_expression "(**(code **)(pcVar35 + 0x26e44c))(&uStack_448)" (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_448)" ( (pointer_expression "&uStack_448" & 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_424 = uStack_3ec;" (assignment_expression "uStack_424 = uStack_3ec" identifier = identifier) ;) (expression_statement "uStack_428 = uStack_3f0;" (assignment_expression "uStack_428 = uStack_3f0" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_450 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_448);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_448;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_428);\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_450 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_448);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_450 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_448);" (call_expression "(**(code **)(pcStack_450 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_448)" (parenthesized_expression "(**(code **)(pcStack_450 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_450 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_450 + -0x5ce0)" * (cast_expression "(code **)(pcStack_450 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_450 + -0x5ce0)" ( (binary_expression "pcStack_450 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar22 + 0x38,puVar21,&uStack_448)" ( (binary_expression "iVar22 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_448" & 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_448;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_428);\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_448;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_428);\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_448;" (assignment_expression "puVar14 = &uStack_448" identifier = (pointer_expression "&uStack_448" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_428);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\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 "uVar34 = puVar6[1];" (assignment_expression "uVar34 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = uVar34;" (assignment_expression "puVar5[1] = uVar34" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_428)" ( (binary_expression "puVar14 != &uStack_428" identifier != (pointer_expression "&uStack_428" & 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_434 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_430 != -4) && (iStack_444 != 0)) {\n      if (*(int *)(iStack_444 + 100) == 0) {\n        *(int *)(iStack_444 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_444 + 100) = *(int *)(iStack_444 + 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_434 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_430 != -4) && (iStack_444 != 0)) {\n      if (*(int *)(iStack_444 + 100) == 0) {\n        *(int *)(iStack_444 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_444 + 100) = *(int *)(iStack_444 + 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_434 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_434 << 0x1c < 0)" ( (binary_expression "iStack_434 << 0x1c < 0" (binary_expression "iStack_434 << 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_430 != -4) && (iStack_444 != 0)) {\n      if (*(int *)(iStack_444 + 100) == 0) {\n        *(int *)(iStack_444 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_444 + 100) = *(int *)(iStack_444 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_430 != -4) && (iStack_444 != 0))" ( (binary_expression "(iStack_430 != -4) && (iStack_444 != 0)" (parenthesized_expression "(iStack_430 != -4)" ( (binary_expression "iStack_430 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_444 != 0)" ( (binary_expression "iStack_444 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_444 + 100) == 0) {\n        *(int *)(iStack_444 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_444 + 100) = *(int *)(iStack_444 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_444 + 100) == 0) {\n        *(int *)(iStack_444 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_444 + 100) == 0)" ( (binary_expression "*(int *)(iStack_444 + 100) == 0" (pointer_expression "*(int *)(iStack_444 + 100)" * (cast_expression "(int *)(iStack_444 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_444 + 100)" ( (binary_expression "iStack_444 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_444 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_444 + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_444 + 0x60) = iVar23 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_444 + 0x60)" * (cast_expression "(int *)(iStack_444 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_444 + 0x60)" ( (binary_expression "iStack_444 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_444 + 100) = *(int *)(iStack_444 + 100) + 1;" (assignment_expression "*(int *)(iStack_444 + 100) = *(int *)(iStack_444 + 100) + 1" (pointer_expression "*(int *)(iStack_444 + 100)" * (cast_expression "(int *)(iStack_444 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_444 + 100)" ( (binary_expression "iStack_444 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_444 + 100) + 1" (pointer_expression "*(int *)(iStack_444 + 100)" * (cast_expression "(int *)(iStack_444 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_444 + 100)" ( (binary_expression "iStack_444 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_450 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_450 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_450 + -0x7810)" * (cast_expression "(code **)(pcStack_450 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_450 + -0x7810)" ( (binary_expression "pcStack_450 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_local;" (assignment_expression "pcVar36 = add_local" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(pcStack_450 + -0x7fc4) + 0x3574;" (assignment_expression "iVar24 = *(int *)(pcStack_450 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_450 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_450 + -0x7fc4)" * (cast_expression "(int *)(pcStack_450 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_450 + -0x7fc4)" ( (binary_expression "pcStack_450 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar24,0x231,*(int *)(pcStack_450 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar24,0x231,*(int *)(pcStack_450 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar24,0x231,*(int *)(pcStack_450 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_450 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_450 + -0x7924)" * (cast_expression "(int *)(pcStack_450 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_450 + -0x7924)" ( (binary_expression "pcStack_450 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar23 = iStack_470;" (assignment_expression "iVar23 = iStack_470" identifier = identifier) ;) (expression_statement "pcStack_4c0 = pcVar35 + 0x275634;" (assignment_expression "pcStack_4c0 = pcVar35 + 0x275634" identifier = (binary_expression "pcVar35 + 0x275634" identifier + number_literal)) ;) (expression_statement "uStack_4d8 = uStack_468;" (assignment_expression "uStack_4d8 = uStack_468" identifier = identifier) ;) (expression_statement "uStack_4c4 = 0;" (assignment_expression "uStack_4c4 = 0" identifier = number_literal) ;) (expression_statement "uStack_4c8 = 0;" (assignment_expression "uStack_4c8 = 0" identifier = number_literal) ;) (expression_statement "uStack_4cc = 0;" (assignment_expression "uStack_4cc = 0" identifier = number_literal) ;) (expression_statement "uStack_4d0 = 0;" (assignment_expression "uStack_4d0 = 0" identifier = number_literal) ;) (expression_statement "uStack_4d4 = uStack_464;" (assignment_expression "uStack_4d4 = uStack_464" identifier = identifier) ;) (expression_statement "iStack_4e0 = iStack_46c;" (assignment_expression "iStack_4e0 = iStack_46c" identifier = identifier) ;) (expression_statement "puStack_490 = &uStack_448;" (assignment_expression "puStack_490 = &uStack_448" identifier = (pointer_expression "&uStack_448" & identifier)) ;) (expression_statement "iStack_48c = iVar22;" (assignment_expression "iStack_48c = iVar22" identifier = identifier) ;) (expression_statement "iStack_488 = iVar20;" (assignment_expression "iStack_488 = iVar20" identifier = identifier) ;) (expression_statement "pcStack_484 = pcVar36;" (assignment_expression "pcStack_484 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e06c))(&uStack_4b8);" (call_expression "(**(code **)(pcVar35 + 0x26e06c))(&uStack_4b8)" (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_4b8)" ( (pointer_expression "&uStack_4b8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_494 = uStack_45c;" (assignment_expression "uStack_494 = uStack_45c" identifier = identifier) ;) (expression_statement "uStack_498 = uStack_460;" (assignment_expression "uStack_498 = uStack_460" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_4c0 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_4b8);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_4b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_498);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar24 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar24 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar24 + 0x40)" * (cast_expression "(undefined4 **)(iVar24 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x40)" ( (binary_expression "iVar24 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_4c0 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_4b8);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_4c0 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_4b8);" (call_expression "(**(code **)(pcStack_4c0 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_4b8)" (parenthesized_expression "(**(code **)(pcStack_4c0 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_4c0 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_4c0 + -0x5ce0)" * (cast_expression "(code **)(pcStack_4c0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_4c0 + -0x5ce0)" ( (binary_expression "pcStack_4c0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar24 + 0x38,puVar21,&uStack_4b8)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_4b8" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_4b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_498);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_4b8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_498);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_4b8;" (assignment_expression "puVar14 = &uStack_4b8" identifier = (pointer_expression "&uStack_4b8" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_498);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\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 "uVar34 = puVar6[1];" (assignment_expression "uVar34 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = uVar34;" (assignment_expression "puVar5[1] = uVar34" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_498)" ( (binary_expression "puVar14 != &uStack_498" identifier != (pointer_expression "&uStack_498" & 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 **)(iVar24 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar24 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar20 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;" (assignment_expression "iVar20 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar24 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar24 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_4a4 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_4a0 != -4) && (iStack_4b4 != 0)) {\n      if (*(int *)(iStack_4b4 + 100) == 0) {\n        *(int *)(iStack_4b4 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_4b4 + 100) = *(int *)(iStack_4b4 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar24 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar24 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar24 + 0x20) << 1" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_4a4 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_4a0 != -4) && (iStack_4b4 != 0)) {\n      if (*(int *)(iStack_4b4 + 100) == 0) {\n        *(int *)(iStack_4b4 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_4b4 + 100) = *(int *)(iStack_4b4 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;" (assignment_expression "*(int *)(iVar24 + 0x14) = iVar20 * 0x33333338" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar20 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar24 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar24 + 0x10)" * (cast_expression "(undefined4 *)(iVar24 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_4a4 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_4a4 << 0x1c < 0)" ( (binary_expression "iStack_4a4 << 0x1c < 0" (binary_expression "iStack_4a4 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;" (assignment_expression "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_4a0 != -4) && (iStack_4b4 != 0)) {\n      if (*(int *)(iStack_4b4 + 100) == 0) {\n        *(int *)(iStack_4b4 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_4b4 + 100) = *(int *)(iStack_4b4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_4a0 != -4) && (iStack_4b4 != 0))" ( (binary_expression "(iStack_4a0 != -4) && (iStack_4b4 != 0)" (parenthesized_expression "(iStack_4a0 != -4)" ( (binary_expression "iStack_4a0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_4b4 != 0)" ( (binary_expression "iStack_4b4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_4b4 + 100) == 0) {\n        *(int *)(iStack_4b4 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_4b4 + 100) = *(int *)(iStack_4b4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_4b4 + 100) == 0) {\n        *(int *)(iStack_4b4 + 0x60) = iVar20 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_4b4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_4b4 + 100) == 0" (pointer_expression "*(int *)(iStack_4b4 + 100)" * (cast_expression "(int *)(iStack_4b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_4b4 + 100)" ( (binary_expression "iStack_4b4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_4b4 + 0x60) = iVar20 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_4b4 + 0x60) = iVar20 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_4b4 + 0x60) = iVar20 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_4b4 + 0x60)" * (cast_expression "(int *)(iStack_4b4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_4b4 + 0x60)" ( (binary_expression "iStack_4b4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar20 * -0x33333333 + -1" (binary_expression "iVar20 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_4b4 + 100) = *(int *)(iStack_4b4 + 100) + 1;" (assignment_expression "*(int *)(iStack_4b4 + 100) = *(int *)(iStack_4b4 + 100) + 1" (pointer_expression "*(int *)(iStack_4b4 + 100)" * (cast_expression "(int *)(iStack_4b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_4b4 + 100)" ( (binary_expression "iStack_4b4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_4b4 + 100) + 1" (pointer_expression "*(int *)(iStack_4b4 + 100)" * (cast_expression "(int *)(iStack_4b4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_4b4 + 100)" ( (binary_expression "iStack_4b4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_4c0 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_4c0 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_4c0 + -0x7810)" * (cast_expression "(code **)(pcStack_4c0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_4c0 + -0x7810)" ( (binary_expression "pcStack_4c0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_local;" (assignment_expression "pcVar36 = add_local" identifier = identifier) ;) (expression_statement "iVar22 = *(int *)(pcStack_4c0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar22 = *(int *)(pcStack_4c0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_4c0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_4c0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_4c0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_4c0 + -0x7fc4)" ( (binary_expression "pcStack_4c0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_4c0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_4c0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar22,0x231,*(int *)(pcStack_4c0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_4c0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_4c0 + -0x7924)" * (cast_expression "(int *)(pcStack_4c0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_4c0 + -0x7924)" ( (binary_expression "pcStack_4c0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar20 = iStack_4e0;" (assignment_expression "iVar20 = iStack_4e0" identifier = identifier) ;) (expression_statement "pcStack_530 = pcVar35 + 0x275474;" (assignment_expression "pcStack_530 = pcVar35 + 0x275474" identifier = (binary_expression "pcVar35 + 0x275474" identifier + number_literal)) ;) (expression_statement "iStack_4f8 = iVar23;" (assignment_expression "iStack_4f8 = iVar23" identifier = identifier) ;) (expression_statement "uStack_548 = uStack_4d8;" (assignment_expression "uStack_548 = uStack_4d8" identifier = identifier) ;) (expression_statement "uStack_534 = 0;" (assignment_expression "uStack_534 = 0" identifier = number_literal) ;) (expression_statement "uStack_538 = 0;" (assignment_expression "uStack_538 = 0" identifier = number_literal) ;) (expression_statement "uStack_53c = 0;" (assignment_expression "uStack_53c = 0" identifier = number_literal) ;) (expression_statement "uStack_540 = 0;" (assignment_expression "uStack_540 = 0" identifier = number_literal) ;) (expression_statement "uStack_544 = uStack_4d4;" (assignment_expression "uStack_544 = uStack_4d4" identifier = identifier) ;) (expression_statement "iStack_550 = iStack_4e0;" (assignment_expression "iStack_550 = iStack_4e0" identifier = identifier) ;) (expression_statement "puStack_500 = &uStack_4b8;" (assignment_expression "puStack_500 = &uStack_4b8" identifier = (pointer_expression "&uStack_4b8" & identifier)) ;) (expression_statement "iStack_4fc = iVar24;" (assignment_expression "iStack_4fc = iVar24" identifier = identifier) ;) (expression_statement "pcStack_4f4 = pcVar36;" (assignment_expression "pcStack_4f4 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26e030))(&uStack_528);" (call_expression "(**(code **)(pcVar35 + 0x26e030))(&uStack_528)" (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_528)" ( (pointer_expression "&uStack_528" & 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_504 = uStack_4cc;" (assignment_expression "uStack_504 = uStack_4cc" identifier = identifier) ;) (expression_statement "uStack_508 = uStack_4d0;" (assignment_expression "uStack_508 = uStack_4d0" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_530 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_528);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_528;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_508);\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_530 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_528);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_530 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_528);" (call_expression "(**(code **)(pcStack_530 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_528)" (parenthesized_expression "(**(code **)(pcStack_530 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_530 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_530 + -0x5ce0)" * (cast_expression "(code **)(pcStack_530 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_530 + -0x5ce0)" ( (binary_expression "pcStack_530 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar22 + 0x38,puVar21,&uStack_528)" ( (binary_expression "iVar22 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_528" & 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_528;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_508);\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_528;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_508);\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_528;" (assignment_expression "puVar14 = &uStack_528" identifier = (pointer_expression "&uStack_528" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_508);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\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 "uVar34 = puVar6[1];" (assignment_expression "uVar34 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = uVar34;" (assignment_expression "puVar5[1] = uVar34" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_508)" ( (binary_expression "puVar14 != &uStack_508" identifier != (pointer_expression "&uStack_508" & 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_514 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_510 != -4) && (iStack_524 != 0)) {\n      if (*(int *)(iStack_524 + 100) == 0) {\n        *(int *)(iStack_524 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_524 + 100) = *(int *)(iStack_524 + 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_514 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_510 != -4) && (iStack_524 != 0)) {\n      if (*(int *)(iStack_524 + 100) == 0) {\n        *(int *)(iStack_524 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_524 + 100) = *(int *)(iStack_524 + 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_514 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_514 << 0x1c < 0)" ( (binary_expression "iStack_514 << 0x1c < 0" (binary_expression "iStack_514 << 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_510 != -4) && (iStack_524 != 0)) {\n      if (*(int *)(iStack_524 + 100) == 0) {\n        *(int *)(iStack_524 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_524 + 100) = *(int *)(iStack_524 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_510 != -4) && (iStack_524 != 0))" ( (binary_expression "(iStack_510 != -4) && (iStack_524 != 0)" (parenthesized_expression "(iStack_510 != -4)" ( (binary_expression "iStack_510 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_524 != 0)" ( (binary_expression "iStack_524 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_524 + 100) == 0) {\n        *(int *)(iStack_524 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_524 + 100) = *(int *)(iStack_524 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_524 + 100) == 0) {\n        *(int *)(iStack_524 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_524 + 100) == 0)" ( (binary_expression "*(int *)(iStack_524 + 100) == 0" (pointer_expression "*(int *)(iStack_524 + 100)" * (cast_expression "(int *)(iStack_524 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_524 + 100)" ( (binary_expression "iStack_524 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_524 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_524 + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_524 + 0x60) = iVar23 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_524 + 0x60)" * (cast_expression "(int *)(iStack_524 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_524 + 0x60)" ( (binary_expression "iStack_524 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_524 + 100) = *(int *)(iStack_524 + 100) + 1;" (assignment_expression "*(int *)(iStack_524 + 100) = *(int *)(iStack_524 + 100) + 1" (pointer_expression "*(int *)(iStack_524 + 100)" * (cast_expression "(int *)(iStack_524 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_524 + 100)" ( (binary_expression "iStack_524 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_524 + 100) + 1" (pointer_expression "*(int *)(iStack_524 + 100)" * (cast_expression "(int *)(iStack_524 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_524 + 100)" ( (binary_expression "iStack_524 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_530 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_530 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_530 + -0x7810)" * (cast_expression "(code **)(pcStack_530 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_530 + -0x7810)" ( (binary_expression "pcStack_530 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_local_relative;" (assignment_expression "pcVar36 = add_local_relative" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(pcStack_530 + -0x7fc4) + 0x3574;" (assignment_expression "iVar24 = *(int *)(pcStack_530 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_530 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_530 + -0x7fc4)" * (cast_expression "(int *)(pcStack_530 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_530 + -0x7fc4)" ( (binary_expression "pcStack_530 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar24,0x231,*(int *)(pcStack_530 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar24,0x231,*(int *)(pcStack_530 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar24,0x231,*(int *)(pcStack_530 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_530 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_530 + -0x7924)" * (cast_expression "(int *)(pcStack_530 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_530 + -0x7924)" ( (binary_expression "pcStack_530 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar23 = iStack_550;" (assignment_expression "iVar23 = iStack_550" identifier = identifier) ;) (expression_statement "pcStack_5a0 = pcVar35 + 0x2752b8;" (assignment_expression "pcStack_5a0 = pcVar35 + 0x2752b8" identifier = (binary_expression "pcVar35 + 0x2752b8" identifier + number_literal)) ;) (expression_statement "uStack_5a4 = uStack_538 & 0xff;" (assignment_expression "uStack_5a4 = uStack_538 & 0xff" identifier = (binary_expression "uStack_538 & 0xff" identifier & number_literal)) ;) (expression_statement "uStack_5ac = 1;" (assignment_expression "uStack_5ac = 1" identifier = number_literal) ;) (expression_statement "uStack_5b0 = 1;" (assignment_expression "uStack_5b0 = 1" identifier = number_literal) ;) (expression_statement "uStack_5b8 = uStack_548;" (assignment_expression "uStack_5b8 = uStack_548" identifier = identifier) ;) (expression_statement "iStack_568 = iVar20;" (assignment_expression "iStack_568 = iVar20" identifier = identifier) ;) (expression_statement "uStack_5a8 = 0;" (assignment_expression "uStack_5a8 = 0" identifier = number_literal) ;) (expression_statement "uStack_5b4 = uStack_544;" (assignment_expression "uStack_5b4 = uStack_544" identifier = identifier) ;) (expression_statement "iStack_5c0 = iStack_54c;" (assignment_expression "iStack_5c0 = iStack_54c" identifier = identifier) ;) (expression_statement "puStack_570 = &uStack_528;" (assignment_expression "puStack_570 = &uStack_528" identifier = (pointer_expression "&uStack_528" & identifier)) ;) (expression_statement "iStack_56c = iVar22;" (assignment_expression "iStack_56c = iVar22" identifier = identifier) ;) (expression_statement "pcStack_564 = pcVar36;" (assignment_expression "pcStack_564 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26dcf0))(&uStack_598);" (call_expression "(**(code **)(pcVar35 + 0x26dcf0))(&uStack_598)" (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_598)" ( (pointer_expression "&uStack_598" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_574 = uStack_53c;" (assignment_expression "uStack_574 = uStack_53c" identifier = identifier) ;) (expression_statement "uStack_578 = uStack_540;" (assignment_expression "uStack_578 = uStack_540" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_5a0 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_598);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_598;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_578);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar24 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar24 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar24 + 0x40)" * (cast_expression "(undefined4 **)(iVar24 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x40)" ( (binary_expression "iVar24 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_5a0 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_598);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_5a0 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_598);" (call_expression "(**(code **)(pcStack_5a0 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_598)" (parenthesized_expression "(**(code **)(pcStack_5a0 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_5a0 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_5a0 + -0x5ce0)" * (cast_expression "(code **)(pcStack_5a0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a0 + -0x5ce0)" ( (binary_expression "pcStack_5a0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar24 + 0x38,puVar21,&uStack_598)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_598" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_598;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_578);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_598;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_578);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_598;" (assignment_expression "puVar14 = &uStack_598" identifier = (pointer_expression "&uStack_598" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_578);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\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 "uVar34 = puVar6[1];" (assignment_expression "uVar34 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = uVar34;" (assignment_expression "puVar5[1] = uVar34" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_578)" ( (binary_expression "puVar14 != &uStack_578" identifier != (pointer_expression "&uStack_578" & 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 **)(iVar24 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar24 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar20 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;" (assignment_expression "iVar20 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar24 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar24 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_584 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_580 != -4) && (iStack_594 != 0)) {\n      if (*(int *)(iStack_594 + 100) == 0) {\n        *(int *)(iStack_594 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_594 + 100) = *(int *)(iStack_594 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar24 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar24 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar24 + 0x20) << 1" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_584 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_580 != -4) && (iStack_594 != 0)) {\n      if (*(int *)(iStack_594 + 100) == 0) {\n        *(int *)(iStack_594 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_594 + 100) = *(int *)(iStack_594 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;" (assignment_expression "*(int *)(iVar24 + 0x14) = iVar20 * 0x33333338" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar20 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar24 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar24 + 0x10)" * (cast_expression "(undefined4 *)(iVar24 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_584 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_584 << 0x1c < 0)" ( (binary_expression "iStack_584 << 0x1c < 0" (binary_expression "iStack_584 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;" (assignment_expression "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_580 != -4) && (iStack_594 != 0)) {\n      if (*(int *)(iStack_594 + 100) == 0) {\n        *(int *)(iStack_594 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_594 + 100) = *(int *)(iStack_594 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_580 != -4) && (iStack_594 != 0))" ( (binary_expression "(iStack_580 != -4) && (iStack_594 != 0)" (parenthesized_expression "(iStack_580 != -4)" ( (binary_expression "iStack_580 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_594 != 0)" ( (binary_expression "iStack_594 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_594 + 100) == 0) {\n        *(int *)(iStack_594 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_594 + 100) = *(int *)(iStack_594 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_594 + 100) == 0) {\n        *(int *)(iStack_594 + 0x60) = iVar20 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_594 + 100) == 0)" ( (binary_expression "*(int *)(iStack_594 + 100) == 0" (pointer_expression "*(int *)(iStack_594 + 100)" * (cast_expression "(int *)(iStack_594 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_594 + 100)" ( (binary_expression "iStack_594 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_594 + 0x60) = iVar20 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_594 + 0x60) = iVar20 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_594 + 0x60) = iVar20 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_594 + 0x60)" * (cast_expression "(int *)(iStack_594 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_594 + 0x60)" ( (binary_expression "iStack_594 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar20 * -0x33333333 + -1" (binary_expression "iVar20 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_594 + 100) = *(int *)(iStack_594 + 100) + 1;" (assignment_expression "*(int *)(iStack_594 + 100) = *(int *)(iStack_594 + 100) + 1" (pointer_expression "*(int *)(iStack_594 + 100)" * (cast_expression "(int *)(iStack_594 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_594 + 100)" ( (binary_expression "iStack_594 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_594 + 100) + 1" (pointer_expression "*(int *)(iStack_594 + 100)" * (cast_expression "(int *)(iStack_594 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_594 + 100)" ( (binary_expression "iStack_594 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_5a0 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_5a0 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_5a0 + -0x7810)" * (cast_expression "(code **)(pcStack_5a0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a0 + -0x7810)" ( (binary_expression "pcStack_5a0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_symbolless_local_addend;" (assignment_expression "pcVar36 = add_symbolless_local_addend" identifier = identifier) ;) (expression_statement "iVar22 = *(int *)(pcStack_5a0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar22 = *(int *)(pcStack_5a0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_5a0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_5a0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_5a0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a0 + -0x7fc4)" ( (binary_expression "pcStack_5a0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_5a0 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_5a0 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar22,0x231,*(int *)(pcStack_5a0 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_5a0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_5a0 + -0x7924)" * (cast_expression "(int *)(pcStack_5a0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a0 + -0x7924)" ( (binary_expression "pcStack_5a0 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar20 = iStack_5c0;" (assignment_expression "iVar20 = iStack_5c0" identifier = identifier) ;) (expression_statement "pcStack_610 = pcVar35 + 0x2750f0;" (assignment_expression "pcStack_610 = pcVar35 + 0x2750f0" identifier = (binary_expression "pcVar35 + 0x2750f0" identifier + number_literal)) ;) (expression_statement "iStack_5d8 = iVar23;" (assignment_expression "iStack_5d8 = iVar23" identifier = identifier) ;) (expression_statement "uStack_61c = 1;" (assignment_expression "uStack_61c = 1" identifier = number_literal) ;) (expression_statement "uStack_614 = 0;" (assignment_expression "uStack_614 = 0" identifier = number_literal) ;) (expression_statement "uStack_618 = 0;" (assignment_expression "uStack_618 = 0" identifier = number_literal) ;) (expression_statement "uStack_620 = 0;" (assignment_expression "uStack_620 = 0" identifier = number_literal) ;) (expression_statement "uStack_624 = uStack_5b4;" (assignment_expression "uStack_624 = uStack_5b4" identifier = identifier) ;) (expression_statement "uStack_628 = uStack_5b8;" (assignment_expression "uStack_628 = uStack_5b8" identifier = identifier) ;) (expression_statement "iStack_630 = iStack_5c0;" (assignment_expression "iStack_630 = iStack_5c0" identifier = identifier) ;) (expression_statement "puStack_5e0 = &uStack_598;" (assignment_expression "puStack_5e0 = &uStack_598" identifier = (pointer_expression "&uStack_598" & identifier)) ;) (expression_statement "iStack_5dc = iVar24;" (assignment_expression "iStack_5dc = iVar24" identifier = identifier) ;) (expression_statement "pcStack_5d4 = pcVar36;" (assignment_expression "pcStack_5d4 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26dcac))(&uStack_608);" (call_expression "(**(code **)(pcVar35 + 0x26dcac))(&uStack_608)" (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_608)" ( (pointer_expression "&uStack_608" & 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_5e4 = uStack_5ac;" (assignment_expression "uStack_5e4 = uStack_5ac" identifier = identifier) ;) (expression_statement "uStack_5e8 = uStack_5b0;" (assignment_expression "uStack_5e8 = uStack_5b0" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_610 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_608);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_608;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_5e8);\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_610 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_608);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_610 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_608);" (call_expression "(**(code **)(pcStack_610 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_608)" (parenthesized_expression "(**(code **)(pcStack_610 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_610 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_610 + -0x5ce0)" * (cast_expression "(code **)(pcStack_610 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_610 + -0x5ce0)" ( (binary_expression "pcStack_610 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar22 + 0x38,puVar21,&uStack_608)" ( (binary_expression "iVar22 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_608" & 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_608;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_5e8);\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_608;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_5e8);\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_608;" (assignment_expression "puVar14 = &uStack_608" identifier = (pointer_expression "&uStack_608" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_5e8);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\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 "uVar34 = puVar6[1];" (assignment_expression "uVar34 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = uVar34;" (assignment_expression "puVar5[1] = uVar34" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_5e8)" ( (binary_expression "puVar14 != &uStack_5e8" identifier != (pointer_expression "&uStack_5e8" & 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_5f4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_5f0 != -4) && (iStack_604 != 0)) {\n      if (*(int *)(iStack_604 + 100) == 0) {\n        *(int *)(iStack_604 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_604 + 100) = *(int *)(iStack_604 + 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_5f4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_5f0 != -4) && (iStack_604 != 0)) {\n      if (*(int *)(iStack_604 + 100) == 0) {\n        *(int *)(iStack_604 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_604 + 100) = *(int *)(iStack_604 + 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_5f4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_5f4 << 0x1c < 0)" ( (binary_expression "iStack_5f4 << 0x1c < 0" (binary_expression "iStack_5f4 << 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_5f0 != -4) && (iStack_604 != 0)) {\n      if (*(int *)(iStack_604 + 100) == 0) {\n        *(int *)(iStack_604 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_604 + 100) = *(int *)(iStack_604 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_5f0 != -4) && (iStack_604 != 0))" ( (binary_expression "(iStack_5f0 != -4) && (iStack_604 != 0)" (parenthesized_expression "(iStack_5f0 != -4)" ( (binary_expression "iStack_5f0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_604 != 0)" ( (binary_expression "iStack_604 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_604 + 100) == 0) {\n        *(int *)(iStack_604 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_604 + 100) = *(int *)(iStack_604 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_604 + 100) == 0) {\n        *(int *)(iStack_604 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_604 + 100) == 0)" ( (binary_expression "*(int *)(iStack_604 + 100) == 0" (pointer_expression "*(int *)(iStack_604 + 100)" * (cast_expression "(int *)(iStack_604 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_604 + 100)" ( (binary_expression "iStack_604 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_604 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_604 + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_604 + 0x60) = iVar23 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_604 + 0x60)" * (cast_expression "(int *)(iStack_604 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_604 + 0x60)" ( (binary_expression "iStack_604 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_604 + 100) = *(int *)(iStack_604 + 100) + 1;" (assignment_expression "*(int *)(iStack_604 + 100) = *(int *)(iStack_604 + 100) + 1" (pointer_expression "*(int *)(iStack_604 + 100)" * (cast_expression "(int *)(iStack_604 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_604 + 100)" ( (binary_expression "iStack_604 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_604 + 100) + 1" (pointer_expression "*(int *)(iStack_604 + 100)" * (cast_expression "(int *)(iStack_604 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_604 + 100)" ( (binary_expression "iStack_604 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_610 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_610 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_610 + -0x7810)" * (cast_expression "(code **)(pcStack_610 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_610 + -0x7810)" ( (binary_expression "pcStack_610 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_symbolless_local_addend;" (assignment_expression "pcVar36 = add_symbolless_local_addend" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)(pcStack_610 + -0x7fc4) + 0x3574;" (assignment_expression "iVar24 = *(int *)(pcStack_610 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_610 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_610 + -0x7fc4)" * (cast_expression "(int *)(pcStack_610 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_610 + -0x7fc4)" ( (binary_expression "pcStack_610 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar24,0x231,*(int *)(pcStack_610 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar24,0x231,*(int *)(pcStack_610 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar24,0x231,*(int *)(pcStack_610 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_610 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_610 + -0x7924)" * (cast_expression "(int *)(pcStack_610 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_610 + -0x7924)" ( (binary_expression "pcStack_610 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar23 = iStack_630;" (assignment_expression "iVar23 = iStack_630" identifier = identifier) ;) (expression_statement "pcStack_680 = pcVar35 + 0x274f30;" (assignment_expression "pcStack_680 = pcVar35 + 0x274f30" identifier = (binary_expression "pcVar35 + 0x274f30" identifier + number_literal)) ;) (expression_statement "uStack_68c = 1;" (assignment_expression "uStack_68c = 1" identifier = number_literal) ;) (expression_statement "uStack_698 = uStack_628;" (assignment_expression "uStack_698 = uStack_628" identifier = identifier) ;) (expression_statement "iStack_648 = iVar20;" (assignment_expression "iStack_648 = iVar20" identifier = identifier) ;) (expression_statement "uStack_684 = 0;" (assignment_expression "uStack_684 = 0" identifier = number_literal) ;) (expression_statement "uStack_688 = 0;" (assignment_expression "uStack_688 = 0" identifier = number_literal) ;) (expression_statement "uStack_690 = 0;" (assignment_expression "uStack_690 = 0" identifier = number_literal) ;) (expression_statement "uStack_694 = uStack_624;" (assignment_expression "uStack_694 = uStack_624" identifier = identifier) ;) (expression_statement "iStack_6a0 = iStack_62c;" (assignment_expression "iStack_6a0 = iStack_62c" identifier = identifier) ;) (expression_statement "puStack_650 = &uStack_608;" (assignment_expression "puStack_650 = &uStack_608" identifier = (pointer_expression "&uStack_608" & identifier)) ;) (expression_statement "iStack_64c = iVar22;" (assignment_expression "iStack_64c = iVar22" identifier = identifier) ;) (expression_statement "pcStack_644 = pcVar36;" (assignment_expression "pcStack_644 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26d968))(&uStack_678);" (call_expression "(**(code **)(pcVar35 + 0x26d968))(&uStack_678)" (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_678)" ( (pointer_expression "&uStack_678" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uStack_654 = uStack_61c;" (assignment_expression "uStack_654 = uStack_61c" identifier = identifier) ;) (expression_statement "uStack_658 = uStack_620;" (assignment_expression "uStack_658 = uStack_620" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar24 + 0x40)) {\n    (**(code **)(pcStack_680 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_678);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_678;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_658);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" if (parenthesized_expression "(puVar21 == *(undefined4 **)(iVar24 + 0x40))" ( (binary_expression "puVar21 == *(undefined4 **)(iVar24 + 0x40)" identifier == (pointer_expression "*(undefined4 **)(iVar24 + 0x40)" * (cast_expression "(undefined4 **)(iVar24 + 0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x40)" ( (binary_expression "iVar24 + 0x40" identifier + number_literal) ))))) )) (compound_statement "{\n    (**(code **)(pcStack_680 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_678);\n    puVar21 = *(undefined4 **)(iVar24 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_680 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_678);" (call_expression "(**(code **)(pcStack_680 + -0x5ce0))(iVar24 + 0x38,puVar21,&uStack_678)" (parenthesized_expression "(**(code **)(pcStack_680 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_680 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_680 + -0x5ce0)" * (cast_expression "(code **)(pcStack_680 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_680 + -0x5ce0)" ( (binary_expression "pcStack_680 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar24 + 0x38,puVar21,&uStack_678)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_678" & identifier) ))) ;) (expression_statement "puVar21 = *(undefined4 **)(iVar24 + 0x3c);" (assignment_expression "puVar21 = *(undefined4 **)(iVar24 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_678;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_658);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" else (compound_statement "{\n    puVar30 = puVar21;\n    puVar14 = &uStack_678;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_658);\n    puVar21 = puVar21 + 10;\n    uVar8 = puVar6[5];\n    puVar5[4] = *puVar14;\n    puVar5[5] = uVar8;\n    *(undefined4 **)(iVar24 + 0x3c) = puVar21;\n  }" { (expression_statement "puVar30 = puVar21;" (assignment_expression "puVar30 = puVar21" identifier = identifier) ;) (expression_statement "puVar14 = &uStack_678;" (assignment_expression "puVar14 = &uStack_678" identifier = (pointer_expression "&uStack_678" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_658);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\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 "uVar34 = puVar6[1];" (assignment_expression "uVar34 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = uVar34;" (assignment_expression "puVar5[1] = uVar34" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_658)" ( (binary_expression "puVar14 != &uStack_658" identifier != (pointer_expression "&uStack_658" & 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 **)(iVar24 + 0x3c) = puVar21;" (assignment_expression "*(undefined4 **)(iVar24 + 0x3c) = puVar21" (pointer_expression "*(undefined4 **)(iVar24 + 0x3c)" * (cast_expression "(undefined4 **)(iVar24 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar20 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3;" (assignment_expression "iVar20 = (int)puVar21 - *(int *)(iVar24 + 0x38) >> 3" identifier = (binary_expression "(int)puVar21 - *(int *)(iVar24 + 0x38) >> 3" (binary_expression "(int)puVar21 - *(int *)(iVar24 + 0x38)" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (-1 < *(int *)(iVar24 + 0x20) << 1) {\n    *(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_664 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_660 != -4) && (iStack_674 != 0)) {\n      if (*(int *)(iStack_674 + 100) == 0) {\n        *(int *)(iStack_674 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_674 + 100) = *(int *)(iStack_674 + 100) + 1;\n    }\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(iVar24 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar24 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar24 + 0x20) << 1" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    *(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar24 + 0x10) = 0;\n    *(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;\n    if (iStack_664 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }\n    if ((iStack_660 != -4) && (iStack_674 != 0)) {\n      if (*(int *)(iStack_674 + 100) == 0) {\n        *(int *)(iStack_674 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_674 + 100) = *(int *)(iStack_674 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(iVar24 + 0x14) = iVar20 * 0x33333338;" (assignment_expression "*(int *)(iVar24 + 0x14) = iVar20 * 0x33333338" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar20 * 0x33333338" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar24 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar24 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar24 + 0x10)" * (cast_expression "(undefined4 *)(iVar24 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x10)" ( (binary_expression "iVar24 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar23 + 0x20) = *(byte *)(iVar23 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar23 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar23 + 0x20)" * (cast_expression "(byte *)(iVar23 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x20)" ( (binary_expression "iVar23 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iStack_664 << 0x1c < 0) {\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_664 << 0x1c < 0)" ( (binary_expression "iStack_664 << 0x1c < 0" (binary_expression "iStack_664 << 0x1c" identifier << number_literal) < number_literal) )) (compound_statement "{\n      *(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;\n    }" { (expression_statement "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1;" (assignment_expression "*(int *)(iVar24 + 0x30) = *(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x30) + 1" (pointer_expression "*(int *)(iVar24 + 0x30)" * (cast_expression "(int *)(iVar24 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x30)" ( (binary_expression "iVar24 + 0x30" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iStack_660 != -4) && (iStack_674 != 0)) {\n      if (*(int *)(iStack_674 + 100) == 0) {\n        *(int *)(iStack_674 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_674 + 100) = *(int *)(iStack_674 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_660 != -4) && (iStack_674 != 0))" ( (binary_expression "(iStack_660 != -4) && (iStack_674 != 0)" (parenthesized_expression "(iStack_660 != -4)" ( (binary_expression "iStack_660 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_674 != 0)" ( (binary_expression "iStack_674 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_674 + 100) == 0) {\n        *(int *)(iStack_674 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_674 + 100) = *(int *)(iStack_674 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_674 + 100) == 0) {\n        *(int *)(iStack_674 + 0x60) = iVar20 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_674 + 100) == 0)" ( (binary_expression "*(int *)(iStack_674 + 100) == 0" (pointer_expression "*(int *)(iStack_674 + 100)" * (cast_expression "(int *)(iStack_674 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_674 + 100)" ( (binary_expression "iStack_674 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_674 + 0x60) = iVar20 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_674 + 0x60) = iVar20 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_674 + 0x60) = iVar20 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_674 + 0x60)" * (cast_expression "(int *)(iStack_674 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_674 + 0x60)" ( (binary_expression "iStack_674 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar20 * -0x33333333 + -1" (binary_expression "iVar20 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_674 + 100) = *(int *)(iStack_674 + 100) + 1;" (assignment_expression "*(int *)(iStack_674 + 100) = *(int *)(iStack_674 + 100) + 1" (pointer_expression "*(int *)(iStack_674 + 100)" * (cast_expression "(int *)(iStack_674 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_674 + 100)" ( (binary_expression "iStack_674 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_674 + 100) + 1" (pointer_expression "*(int *)(iStack_674 + 100)" * (cast_expression "(int *)(iStack_674 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_674 + 100)" ( (binary_expression "iStack_674 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcStack_680 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_680 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_680 + -0x7810)" * (cast_expression "(code **)(pcStack_680 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_680 + -0x7810)" ( (binary_expression "pcStack_680 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = add_local_section;" (assignment_expression "pcVar36 = add_local_section" identifier = identifier) ;) (expression_statement "iVar22 = *(int *)(pcStack_680 + -0x7fc4) + 0x3574;" (assignment_expression "iVar22 = *(int *)(pcStack_680 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_680 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_680 + -0x7fc4)" * (cast_expression "(int *)(pcStack_680 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_680 + -0x7fc4)" ( (binary_expression "pcStack_680 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_680 + -0x7924) + -0x2b1c);" (call_expression "(*pcVar35)(iVar22,0x231,*(int *)(pcStack_680 + -0x7924) + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(iVar22,0x231,*(int *)(pcStack_680 + -0x7924) + -0x2b1c)" ( identifier , number_literal , (binary_expression "*(int *)(pcStack_680 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_680 + -0x7924)" * (cast_expression "(int *)(pcStack_680 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_680 + -0x7924)" ( (binary_expression "pcStack_680 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar20 = iStack_6a0;" (assignment_expression "iVar20 = iStack_6a0" identifier = identifier) ;) (expression_statement "pcStack_6f0 = pcVar35 + 0x274d6c;" (assignment_expression "pcStack_6f0 = pcVar35 + 0x274d6c" identifier = (binary_expression "pcVar35 + 0x274d6c" identifier + number_literal)) ;) (expression_statement "iStack_6b8 = iVar23;" (assignment_expression "iStack_6b8 = iVar23" identifier = identifier) ;) (expression_statement "uStack_6f8 = 1;" (assignment_expression "uStack_6f8 = 1" identifier = number_literal) ;) (expression_statement "uStack_6f4 = 0;" (assignment_expression "uStack_6f4 = 0" identifier = number_literal) ;) (expression_statement "uStack_6fc = 0;" (assignment_expression "uStack_6fc = 0" identifier = number_literal) ;) (expression_statement "uStack_700 = 0;" (assignment_expression "uStack_700 = 0" identifier = number_literal) ;) (expression_statement "uStack_704 = uStack_694;" (assignment_expression "uStack_704 = uStack_694" identifier = identifier) ;) (expression_statement "uStack_708 = uStack_698;" (assignment_expression "uStack_708 = uStack_698" identifier = identifier) ;) (expression_statement "iStack_710 = iStack_6a0;" (assignment_expression "iStack_710 = iStack_6a0" identifier = identifier) ;) (expression_statement "puStack_6c0 = &uStack_678;" (assignment_expression "puStack_6c0 = &uStack_678" identifier = (pointer_expression "&uStack_678" & identifier)) ;) (expression_statement "iStack_6bc = iVar24;" (assignment_expression "iStack_6bc = iVar24" identifier = identifier) ;) (expression_statement "pcStack_6b4 = pcVar36;" (assignment_expression "pcStack_6b4 = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26d928))(&uStack_6e8);" (call_expression "(**(code **)(pcVar35 + 0x26d928))(&uStack_6e8)" (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_6e8)" ( (pointer_expression "&uStack_6e8" & 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_6c4 = uStack_68c;" (assignment_expression "uStack_6c4 = uStack_68c" identifier = identifier) ;) (expression_statement "uStack_6c8 = uStack_690;" (assignment_expression "uStack_6c8 = uStack_690" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar22 + 0x40)) {\n    (**(code **)(pcStack_6f0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_6e8);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }\n  else {\n    puVar30 = puVar21;\n    puVar14 = &uStack_6e8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_6c8);\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_6f0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_6e8);\n    puVar21 = *(undefined4 **)(iVar22 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcStack_6f0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_6e8);" (call_expression "(**(code **)(pcStack_6f0 + -0x5ce0))(iVar22 + 0x38,puVar21,&uStack_6e8)" (parenthesized_expression "(**(code **)(pcStack_6f0 + -0x5ce0))" ( (pointer_expression "**(code **)(pcStack_6f0 + -0x5ce0)" * (pointer_expression "*(code **)(pcStack_6f0 + -0x5ce0)" * (cast_expression "(code **)(pcStack_6f0 + -0x5ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_6f0 + -0x5ce0)" ( (binary_expression "pcStack_6f0 + -0x5ce0" identifier + number_literal) ))))) )) (argument_list "(iVar22 + 0x38,puVar21,&uStack_6e8)" ( (binary_expression "iVar22 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&uStack_6e8" & 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_6e8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_6c8);\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_6e8;\n    do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_6c8);\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_6e8;" (assignment_expression "puVar14 = &uStack_6e8" identifier = (pointer_expression "&uStack_6e8" & identifier)) ;) (do_statement "do {\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\n      puVar5[3] = uVar8;\n      puVar30 = puVar5 + 4;\n    } while (puVar14 != &uStack_6c8);" do (compound_statement "{\n      puVar6 = puVar14;\n      puVar5 = puVar30;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar5 = *puVar6;\n      puVar5[1] = uVar34;\n      puVar5[2] = uVar27;\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 "uVar34 = puVar6[1];" (assignment_expression "uVar34 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = uVar34;" (assignment_expression "puVar5[1] = uVar34" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar27;" (assignment_expression "puVar5[2] = uVar27" (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_6c8)" ( (binary_expression "puVar14 != &uStack_6c8" identifier != (pointer_expression "&uStack_6c8" & 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_6d4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_6d0 != -4) && (iStack_6e4 != 0)) {\n      if (*(int *)(iStack_6e4 + 100) == 0) {\n        *(int *)(iStack_6e4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_6e4 + 100) = *(int *)(iStack_6e4 + 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_6d4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }\n    if ((iStack_6d0 != -4) && (iStack_6e4 != 0)) {\n      if (*(int *)(iStack_6e4 + 100) == 0) {\n        *(int *)(iStack_6e4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_6e4 + 100) = *(int *)(iStack_6e4 + 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_6d4 << 0x1c < 0) {\n      *(int *)(iVar22 + 0x30) = *(int *)(iVar22 + 0x30) + 1;\n    }" if (parenthesized_expression "(iStack_6d4 << 0x1c < 0)" ( (binary_expression "iStack_6d4 << 0x1c < 0" (binary_expression "iStack_6d4 << 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_6d0 != -4) && (iStack_6e4 != 0)) {\n      if (*(int *)(iStack_6e4 + 100) == 0) {\n        *(int *)(iStack_6e4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_6e4 + 100) = *(int *)(iStack_6e4 + 100) + 1;\n    }" if (parenthesized_expression "((iStack_6d0 != -4) && (iStack_6e4 != 0))" ( (binary_expression "(iStack_6d0 != -4) && (iStack_6e4 != 0)" (parenthesized_expression "(iStack_6d0 != -4)" ( (binary_expression "iStack_6d0 != -4" identifier != number_literal) )) && (parenthesized_expression "(iStack_6e4 != 0)" ( (binary_expression "iStack_6e4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      if (*(int *)(iStack_6e4 + 100) == 0) {\n        *(int *)(iStack_6e4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }\n      *(int *)(iStack_6e4 + 100) = *(int *)(iStack_6e4 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iStack_6e4 + 100) == 0) {\n        *(int *)(iStack_6e4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iStack_6e4 + 100) == 0)" ( (binary_expression "*(int *)(iStack_6e4 + 100) == 0" (pointer_expression "*(int *)(iStack_6e4 + 100)" * (cast_expression "(int *)(iStack_6e4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_6e4 + 100)" ( (binary_expression "iStack_6e4 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iStack_6e4 + 0x60) = iVar23 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iStack_6e4 + 0x60) = iVar23 * -0x33333333 + -1;" (assignment_expression "*(int *)(iStack_6e4 + 0x60) = iVar23 * -0x33333333 + -1" (pointer_expression "*(int *)(iStack_6e4 + 0x60)" * (cast_expression "(int *)(iStack_6e4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_6e4 + 0x60)" ( (binary_expression "iStack_6e4 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar23 * -0x33333333 + -1" (binary_expression "iVar23 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iStack_6e4 + 100) = *(int *)(iStack_6e4 + 100) + 1;" (assignment_expression "*(int *)(iStack_6e4 + 100) = *(int *)(iStack_6e4 + 100) + 1" (pointer_expression "*(int *)(iStack_6e4 + 100)" * (cast_expression "(int *)(iStack_6e4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_6e4 + 100)" ( (binary_expression "iStack_6e4 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iStack_6e4 + 100) + 1" (pointer_expression "*(int *)(iStack_6e4 + 100)" * (cast_expression "(int *)(iStack_6e4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_6e4 + 100)" ( (binary_expression "iStack_6e4 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "iVar24 = 0x231;" (assignment_expression "iVar24 = 0x231" identifier = number_literal) ;) (expression_statement "pcVar35 = *(code **)(pcStack_6f0 + -0x7810);" (assignment_expression "pcVar35 = *(code **)(pcStack_6f0 + -0x7810)" identifier = (pointer_expression "*(code **)(pcStack_6f0 + -0x7810)" * (cast_expression "(code **)(pcStack_6f0 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_6f0 + -0x7810)" ( (binary_expression "pcStack_6f0 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = (undefined4 *)(*(int *)(pcStack_6f0 + -0x7924) + -0x2b1c);" (assignment_expression "puVar30 = (undefined4 *)(*(int *)(pcStack_6f0 + -0x7924) + -0x2b1c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcStack_6f0 + -0x7924) + -0x2b1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_6f0 + -0x7924) + -0x2b1c)" ( (binary_expression "*(int *)(pcStack_6f0 + -0x7924) + -0x2b1c" (pointer_expression "*(int *)(pcStack_6f0 + -0x7924)" * (cast_expression "(int *)(pcStack_6f0 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_6f0 + -0x7924)" ( (binary_expression "pcStack_6f0 + -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 "iVar23 = *(int *)(pcStack_6f0 + -0x7fc4) + 0x3574;" (assignment_expression "iVar23 = *(int *)(pcStack_6f0 + -0x7fc4) + 0x3574" identifier = (binary_expression "*(int *)(pcStack_6f0 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(pcStack_6f0 + -0x7fc4)" * (cast_expression "(int *)(pcStack_6f0 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_6f0 + -0x7fc4)" ( (binary_expression "pcStack_6f0 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar35)();" (call_expression "(*pcVar35)()" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pOStack_738 = (Output_data *)(pcVar35 + 0x274bac);" (assignment_expression "pOStack_738 = (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_728 = iVar20;" (assignment_expression "iStack_728 = iVar20" identifier = 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 "puStack_730 = &uStack_6e8;" (assignment_expression "puStack_730 = &uStack_6e8" identifier = (pointer_expression "&uStack_6e8" & identifier)) ;) (expression_statement "iStack_72c = iVar22;" (assignment_expression "iStack_72c = iVar22" identifier = identifier) ;) (expression_statement "pcStack_724 = pcVar36;" (assignment_expression "pcStack_724 = pcVar36" identifier = identifier) ;) (if_statement "if (puVar21 == *(undefined4 **)(iVar23 + 0x40)) {\n    (**(code **)(pcVar35 + 0x26eefc))(iVar23 + 0x38);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }\n  else {\n    puVar14 = puVar30;\n    puVar5 = puVar21;\n    do {\n      puVar10 = puVar5;\n      puVar6 = puVar14;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar10 = *puVar6;\n      puVar10[1] = uVar34;\n      puVar10[2] = uVar27;\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 **)(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 **)(pcVar35 + 0x26eefc))(iVar23 + 0x38);\n    puVar21 = *(undefined4 **)(iVar23 + 0x3c);\n  }" { (expression_statement "(**(code **)(pcVar35 + 0x26eefc))(iVar23 + 0x38);" (call_expression "(**(code **)(pcVar35 + 0x26eefc))(iVar23 + 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 "(iVar23 + 0x38)" ( (binary_expression "iVar23 + 0x38" identifier + number_literal) ))) ;) (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    puVar14 = puVar30;\n    puVar5 = puVar21;\n    do {\n      puVar10 = puVar5;\n      puVar6 = puVar14;\n      puVar14 = puVar6 + 4;\n      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar10 = *puVar6;\n      puVar10[1] = uVar34;\n      puVar10[2] = uVar27;\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 **)(iVar23 + 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      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar10 = *puVar6;\n      puVar10[1] = uVar34;\n      puVar10[2] = uVar27;\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 **)(iVar23 + 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      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar10 = *puVar6;\n      puVar10[1] = uVar34;\n      puVar10[2] = uVar27;\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      uVar34 = puVar6[1];\n      uVar27 = puVar6[2];\n      uVar8 = puVar6[3];\n      *puVar10 = *puVar6;\n      puVar10[1] = uVar34;\n      puVar10[2] = uVar27;\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 "uVar34 = puVar6[1];" (assignment_expression "uVar34 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar6[2];" (assignment_expression "uVar27 = 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] = uVar34;" (assignment_expression "puVar10[1] = uVar34" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[2] = uVar27;" (assignment_expression "puVar10[2] = uVar27" (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 **)(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    iVar22 = puVar30[5];\n    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar24 + 0x20) = *(byte *)(iVar24 + 0x20) & 0xf7 | 8;\n    if (iVar22 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((puVar30[6] != -4) && (iVar22 = puVar30[1], iVar22 != 0)) {\n      if (*(int *)(iVar22 + 100) == 0) {\n        *(int *)(iVar22 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iVar22 + 100) = *(int *)(iVar22 + 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    iVar22 = puVar30[5];\n    *(int *)(iVar23 + 0x14) = iVar20 * 0x33333338;\n    *(undefined4 *)(iVar23 + 0x10) = 0;\n    *(byte *)(iVar24 + 0x20) = *(byte *)(iVar24 + 0x20) & 0xf7 | 8;\n    if (iVar22 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }\n    if ((puVar30[6] != -4) && (iVar22 = puVar30[1], iVar22 != 0)) {\n      if (*(int *)(iVar22 + 100) == 0) {\n        *(int *)(iVar22 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iVar22 + 100) = *(int *)(iVar22 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "iVar22 = puVar30[5];" (assignment_expression "iVar22 = puVar30[5]" identifier = (subscript_expression "puVar30[5]" identifier [ number_literal ])) ;) (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 *)(iVar24 + 0x20) = *(byte *)(iVar24 + 0x20) & 0xf7 | 8;" (assignment_expression "*(byte *)(iVar24 + 0x20) = *(byte *)(iVar24 + 0x20) & 0xf7 | 8" (pointer_expression "*(byte *)(iVar24 + 0x20)" * (cast_expression "(byte *)(iVar24 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar24 + 0x20) & 0xf7 | 8" (binary_expression "*(byte *)(iVar24 + 0x20) & 0xf7" (pointer_expression "*(byte *)(iVar24 + 0x20)" * (cast_expression "(byte *)(iVar24 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (if_statement "if (iVar22 << 0x1c < 0) {\n      *(int *)(iVar23 + 0x30) = *(int *)(iVar23 + 0x30) + 1;\n    }" if (parenthesized_expression "(iVar22 << 0x1c < 0)" ( (binary_expression "iVar22 << 0x1c < 0" (binary_expression "iVar22 << 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 ((puVar30[6] != -4) && (iVar22 = puVar30[1], iVar22 != 0)) {\n      if (*(int *)(iVar22 + 100) == 0) {\n        *(int *)(iVar22 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iVar22 + 100) = *(int *)(iVar22 + 100) + 1;\n    }" if (parenthesized_expression "((puVar30[6] != -4) && (iVar22 = puVar30[1], iVar22 != 0))" ( (binary_expression "(puVar30[6] != -4) && (iVar22 = puVar30[1], iVar22 != 0)" (parenthesized_expression "(puVar30[6] != -4)" ( (binary_expression "puVar30[6] != -4" (subscript_expression "puVar30[6]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar22 = puVar30[1], iVar22 != 0)" ( (comma_expression "iVar22 = puVar30[1], iVar22 != 0" (assignment_expression "iVar22 = puVar30[1]" identifier = (subscript_expression "puVar30[1]" identifier [ number_literal ])) , (binary_expression "iVar22 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      if (*(int *)(iVar22 + 100) == 0) {\n        *(int *)(iVar22 + 0x60) = iVar20 * -0x33333333 + -1;\n      }\n      *(int *)(iVar22 + 100) = *(int *)(iVar22 + 100) + 1;\n    }" { (if_statement "if (*(int *)(iVar22 + 100) == 0) {\n        *(int *)(iVar22 + 0x60) = iVar20 * -0x33333333 + -1;\n      }" if (parenthesized_expression "(*(int *)(iVar22 + 100) == 0)" ( (binary_expression "*(int *)(iVar22 + 100) == 0" (pointer_expression "*(int *)(iVar22 + 100)" * (cast_expression "(int *)(iVar22 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 100)" ( (binary_expression "iVar22 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(int *)(iVar22 + 0x60) = iVar20 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(iVar22 + 0x60) = iVar20 * -0x33333333 + -1;" (assignment_expression "*(int *)(iVar22 + 0x60) = iVar20 * -0x33333333 + -1" (pointer_expression "*(int *)(iVar22 + 0x60)" * (cast_expression "(int *)(iVar22 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x60)" ( (binary_expression "iVar22 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar20 * -0x33333333 + -1" (binary_expression "iVar20 * -0x33333333" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(iVar22 + 100) = *(int *)(iVar22 + 100) + 1;" (assignment_expression "*(int *)(iVar22 + 100) = *(int *)(iVar22 + 100) + 1" (pointer_expression "*(int *)(iVar22 + 100)" * (cast_expression "(int *)(iVar22 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 100)" ( (binary_expression "iVar22 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar22 + 100) + 1" (pointer_expression "*(int *)(iVar22 + 100)" * (cast_expression "(int *)(iVar22 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 100)" ( (binary_expression "iVar22 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)&pOStack_738[-0x301].offset_;" (assignment_expression "pcVar35 = *(code **)&pOStack_738[-0x301].offset_" identifier = (pointer_expression "*(code **)&pOStack_738[-0x301].offset_" * (cast_expression "(code **)&pOStack_738[-0x301].offset_" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOStack_738[-0x301].offset_" & (field_expression "pOStack_738[-0x301].offset_" (subscript_expression "pOStack_738[-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_738[-0x332].address_ + 0x3574);" (assignment_expression "this_00 = (Output_data_reloc_base<4,_true,_64,_true> *)\n            ((int)pOStack_738[-0x332].address_ + 0x3574)" identifier = (call_expression "(Output_data_reloc_base<4,_true,_64,_true> *)\n            ((int)pOStack_738[-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_738[-0x332].address_ + 0x3574)" ( (binary_expression "(int)pOStack_738[-0x332].address_ + 0x3574" (cast_expression "(int)pOStack_738[-0x332].address_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOStack_738[-0x332].address_" (subscript_expression "pOStack_738[-0x332]" identifier [ number_literal ]) . field_identifier)) + number_literal) )))) ;) (expression_statement "(*pcVar35)(this_00,0x231,(int)pOStack_738[-0x308].offset_ + -0x2b1c);" (call_expression "(*pcVar35)(this_00,0x231,(int)pOStack_738[-0x308].offset_ + -0x2b1c)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(this_00,0x231,(int)pOStack_738[-0x308].offset_ + -0x2b1c)" ( identifier , number_literal , (binary_expression "(int)pOStack_738[-0x308].offset_ + -0x2b1c" (cast_expression "(int)pOStack_738[-0x308].offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOStack_738[-0x308].offset_" (subscript_expression "pOStack_738[-0x308]" identifier [ number_literal ]) . field_identifier)) + number_literal) ))) ;) (expression_statement "iStack_754 = iVar23;" (assignment_expression "iStack_754 = iVar23" identifier = identifier) ;) (expression_statement "puStack_750 = puVar30;" (assignment_expression "puStack_750 = puVar30" identifier = identifier) ;) (expression_statement "pcStack_74c = pcVar36;" (assignment_expression "pcStack_74c = pcVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x26d47c))((Output_reloc_type *)auStack_780);" (call_expression "(**(code **)(pcVar35 + 0x26d47c))((Output_reloc_type *)auStack_780)" (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_780)" ( (cast_expression "(Output_reloc_type *)auStack_780" ( (type_descriptor "Output_reloc_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "auStack_780._36_4_ = pcStack_724;" (assignment_expression "auStack_780._36_4_ = pcStack_724" (field_expression "auStack_780._36_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_780._32_4_ = iStack_728;" (assignment_expression "auStack_780._32_4_ = iStack_728" (field_expression "auStack_780._32_4_" identifier . field_identifier) = identifier) ;) (expression_statement "Output_data_reloc_base<4,_true,_64,_true>::add\n            (this_00,pOStack_738,(Output_reloc_type *)auStack_780);" (update_expression "Output_data_reloc_base<4,_true,_64,_true>::add\n            (this_00,pOStack_738,(Output_reloc_type *)auStack_780)" (binary_expression "Output_data_reloc_base<4,_true,_64,_true>::add\n            (this_00,pOStack_738,(Output_reloc_type *)auStack_780)" (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_738,(Output_reloc_type *)auStack_780)" identifier (argument_list "(this_00,pOStack_738,(Output_reloc_type *)auStack_780)" ( identifier , identifier , (cast_expression "(Output_reloc_type *)auStack_780" ( (type_descriptor "Output_reloc_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) --) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00252908(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                 undefined4 param_10)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  undefined4 local_14;\n  \n  (*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0);\n  puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar6 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&local_38);\n    puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }\n  iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar7 * 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) = iVar7 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  return;\n}\n\n" (function_definition "void FUN_00252908(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                 undefined4 param_10)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  undefined4 local_14;\n  \n  (*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0);\n  puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar6 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&local_38);\n    puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }\n  iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar7 * 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) = iVar7 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  return;\n}" primitive_type (function_declarator "FUN_00252908(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                 undefined4 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                 undefined4 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 "undefined4 param_10" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  undefined4 local_14;\n  \n  (*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0);\n  puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar6 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&local_38);\n    puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }\n  iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar7 * 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) = iVar7 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -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 "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier 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 "undefined4 local_14;" type_identifier identifier ;) (expression_statement "(*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0);" (call_expression "(*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0)" (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,param_7,param_8,0)" ( (pointer_expression "&local_38" & identifier) , identifier , identifier , identifier , identifier , identifier , number_literal ))) ;) (expression_statement "puVar6 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar6 = *(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 (puVar6 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&local_38);\n    puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }" if (parenthesized_expression "(puVar6 == *(undefined4 **)(param_1 + 0x40))" ( (binary_expression "puVar6 == *(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,puVar6,&local_38);\n    puVar6 = *(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,puVar6,&local_38);" (call_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&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,puVar6,&local_38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "puVar6 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar6 = *(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 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }" else (compound_statement "{\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }" { (expression_statement "puVar1 = puVar6;" (assignment_expression "puVar1 = puVar6" identifier = identifier) ;) (expression_statement "puVar5 = &local_38;" (assignment_expression "puVar5 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (do_statement "do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);" do (compound_statement "{\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" { (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" identifier = identifier) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) (expression_statement "puVar5 = puVar4 + 4;" (assignment_expression "puVar5 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "uVar9 = puVar4[1];" (assignment_expression "uVar9 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar4[2];" (assignment_expression "uVar8 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar4[3];" (assignment_expression "uVar3 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar2 = *puVar4;" (assignment_expression "*puVar2 = *puVar4" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar2[1] = uVar9;" (assignment_expression "puVar2[1] = uVar9" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar8;" (assignment_expression "puVar2[2] = uVar8" (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 "(puVar5 != &local_18)" ( (binary_expression "puVar5 != &local_18" identifier != (pointer_expression "&local_18" & identifier)) )) ;) (expression_statement "puVar6 = puVar6 + 10;" (assignment_expression "puVar6 = puVar6 + 10" identifier = (binary_expression "puVar6 + 10" identifier + number_literal)) ;) (expression_statement "uVar3 = puVar4[5];" (assignment_expression "uVar3 = puVar4[5]" identifier = (subscript_expression "puVar4[5]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = *puVar5;" (assignment_expression "puVar2[4] = *puVar5" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (pointer_expression "*puVar5" * 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) = puVar6;" (assignment_expression "*(undefined4 **)(param_1 + 0x3c) = puVar6" (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 "iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3;" (assignment_expression "iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3" identifier = (binary_expression "(int)puVar6 - *(int *)(param_1 + 0x38) >> 3" (binary_expression "(int)puVar6 - *(int *)(param_1 + 0x38)" (cast_expression "(int)puVar6" ( (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) = iVar7 * 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) = iVar7 * -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) = iVar7 * 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) = iVar7 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" { (expression_statement "*(int *)(param_1 + 0x14) = iVar7 * 0x33333338;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar7 * 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 "iVar7 * 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) = iVar7 * -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) = iVar7 * -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) = iVar7 * -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) = iVar7 * -0x33333333 + -1;\n      }" { (expression_statement "*(int *)(local_34 + 0x60) = iVar7 * -0x33333333 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar7 * -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 "iVar7 * -0x33333333 + -1" (binary_expression "iVar7 * -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 "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -0x2b1c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             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 "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -0x2b1c)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2b1c" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (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 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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = 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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00252908(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                 undefined4 param_10)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  undefined4 local_14;\n  \n  (*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0);\n  puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar6 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&local_38);\n    puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }\n  iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar7 * 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) = iVar7 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -0x2b1c);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00252908(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                 undefined4 param_10)" (identifier "FUN_00252908") (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                 undefined4 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 "undefined4 param_10" (type_identifier "undefined4") (identifier "param_10")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 local_38;\n  int local_34;\n  int local_24;\n  int local_20;\n  undefined4 local_18;\n  undefined4 local_14;\n  \n  (*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0);\n  puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  local_14 = param_10;\n  local_18 = param_9;\n  if (puVar6 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&local_38);\n    puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }\n  iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3;\n  if (-1 < *(int *)(param_1 + 0x20) << 1) {\n    *(int *)(param_1 + 0x14) = iVar7 * 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) = iVar7 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -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 "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (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 "undefined4 local_14;" (type_identifier "undefined4") (identifier "local_14") (; ";")) (expression_statement "(*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0);" (call_expression "(*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0)" (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,param_7,param_8,0)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (identifier "param_2") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_7") (, ",") (identifier "param_8") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar6 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar6 = *(undefined4 **)(param_1 + 0x3c)" (identifier "puVar6") (= "=") (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 (puVar6 == *(undefined4 **)(param_1 + 0x40)) {\n    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&local_38);\n    puVar6 = *(undefined4 **)(param_1 + 0x3c);\n  }\n  else {\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }" (if "if") (parenthesized_expression "(puVar6 == *(undefined4 **)(param_1 + 0x40))" (( "(") (binary_expression "puVar6 == *(undefined4 **)(param_1 + 0x40)" (identifier "puVar6") (== "==") (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,puVar6,&local_38);\n    puVar6 = *(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,puVar6,&local_38);" (call_expression "(*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)\n              (param_1 + 0x38,puVar6,&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,puVar6,&local_38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) (, ",") (identifier "puVar6") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (expression_statement "puVar6 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar6 = *(undefined4 **)(param_1 + 0x3c)" (identifier "puVar6") (= "=") (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 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }" (else "else") (compound_statement "{\n    puVar1 = puVar6;\n    puVar5 = &local_38;\n    do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);\n    puVar6 = puVar6 + 10;\n    uVar3 = puVar4[5];\n    puVar2[4] = *puVar5;\n    puVar2[5] = uVar3;\n    *(undefined4 **)(param_1 + 0x3c) = puVar6;\n  }" ({ "{") (expression_statement "puVar1 = puVar6;" (assignment_expression "puVar1 = puVar6" (identifier "puVar1") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar5 = &local_38;" (assignment_expression "puVar5 = &local_38" (identifier "puVar5") (= "=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (; ";")) (do_statement "do {\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    } while (puVar5 != &local_18);" (do "do") (compound_statement "{\n      puVar4 = puVar5;\n      puVar2 = puVar1;\n      puVar5 = puVar4 + 4;\n      uVar9 = puVar4[1];\n      uVar8 = puVar4[2];\n      uVar3 = puVar4[3];\n      *puVar2 = *puVar4;\n      puVar2[1] = uVar9;\n      puVar2[2] = uVar8;\n      puVar2[3] = uVar3;\n      puVar1 = puVar2 + 4;\n    }" ({ "{") (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" (identifier "puVar4") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" (identifier "puVar2") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar5 = puVar4 + 4;" (assignment_expression "puVar5 = puVar4 + 4" (identifier "puVar5") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar9 = puVar4[1];" (assignment_expression "uVar9 = puVar4[1]" (identifier "uVar9") (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar8 = puVar4[2];" (assignment_expression "uVar8 = puVar4[2]" (identifier "uVar8") (= "=") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar3 = puVar4[3];" (assignment_expression "uVar3 = puVar4[3]" (identifier "uVar3") (= "=") (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar2 = *puVar4;" (assignment_expression "*puVar2 = *puVar4" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "puVar2[1] = uVar9;" (assignment_expression "puVar2[1] = uVar9" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar2[2] = uVar8;" (assignment_expression "puVar2[2] = uVar8" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (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 "(puVar5 != &local_18)" (( "(") (binary_expression "puVar5 != &local_18" (identifier "puVar5") (!= "!=") (pointer_expression "&local_18" (& "&") (identifier "local_18"))) () ")")) (; ";")) (expression_statement "puVar6 = puVar6 + 10;" (assignment_expression "puVar6 = puVar6 + 10" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 10" (identifier "puVar6") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "uVar3 = puVar4[5];" (assignment_expression "uVar3 = puVar4[5]" (identifier "uVar3") (= "=") (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar2[4] = *puVar5;" (assignment_expression "puVar2[4] = *puVar5" (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (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) = puVar6;" (assignment_expression "*(undefined4 **)(param_1 + 0x3c) = puVar6" (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 "puVar6")) (; ";")) (} "}")))) (expression_statement "iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3;" (assignment_expression "iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3" (identifier "iVar7") (= "=") (binary_expression "(int)puVar6 - *(int *)(param_1 + 0x38) >> 3" (binary_expression "(int)puVar6 - *(int *)(param_1 + 0x38)" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (- "-") (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) = iVar7 * 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) = iVar7 * -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) = iVar7 * 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) = iVar7 * -0x33333333 + -1;\n      }\n      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n    }\n    return;\n  }" ({ "{") (expression_statement "*(int *)(param_1 + 0x14) = iVar7 * 0x33333338;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar7 * 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 "iVar7 * 0x33333338" (identifier "iVar7") (* "*") (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) = iVar7 * -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) = iVar7 * -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) = iVar7 * -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) = iVar7 * -0x33333333 + -1;\n      }" ({ "{") (expression_statement "*(int *)(local_34 + 0x60) = iVar7 * -0x33333333 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar7 * -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 "iVar7 * -0x33333333 + -1" (binary_expression "iVar7 * -0x33333333" (identifier "iVar7") (* "*") (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 "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -0x2b1c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             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 "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,\n             PTR_s_in_a_linker_script_004c191c + -0x2b1c)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0x231") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2b1c" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x2b1c")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (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: (type_identifier) 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: (primitive_type) 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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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) (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))))

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

{
  undefined4 *puVar1;
  undefined4 *puVar2;
  undefined4 uVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  undefined4 *puVar6;
  int iVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 local_38;
  int local_34;
  int local_24;
  int local_20;
  undefined4 local_18;
  undefined4 local_14;
  
  (*(code *)PTR_Output_reloc_004c4170)(&local_38,param_2,param_4,param_5,param_7,param_8,0);
  puVar6 = *(undefined4 **)(param_1 + 0x3c);
  local_14 = param_10;
  local_18 = param_9;
  if (puVar6 == *(undefined4 **)(param_1 + 0x40)) {
    (*(code *)PTR__M_realloc_insert<gold_Output_reloc<4,true,64,false>const&>_004c3560)
              (param_1 + 0x38,puVar6,&local_38);
    puVar6 = *(undefined4 **)(param_1 + 0x3c);
  }
  else {
    puVar1 = puVar6;
    puVar5 = &local_38;
    do {
      puVar4 = puVar5;
      puVar2 = puVar1;
      puVar5 = puVar4 + 4;
      uVar9 = puVar4[1];
      uVar8 = puVar4[2];
      uVar3 = puVar4[3];
      *puVar2 = *puVar4;
      puVar2[1] = uVar9;
      puVar2[2] = uVar8;
      puVar2[3] = uVar3;
      puVar1 = puVar2 + 4;
    } while (puVar5 != &local_18);
    puVar6 = puVar6 + 10;
    uVar3 = puVar4[5];
    puVar2[4] = *puVar5;
    puVar2[5] = uVar3;
    *(undefined4 **)(param_1 + 0x3c) = puVar6;
  }
  iVar7 = (int)puVar6 - *(int *)(param_1 + 0x38) >> 3;
  if (-1 < *(int *)(param_1 + 0x20) << 1) {
    *(int *)(param_1 + 0x14) = iVar7 * 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) = iVar7 * -0x33333333 + -1;
      }
      *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;
    }
    return;
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x231,
             PTR_s_in_a_linker_script_004c191c + -0x2b1c);
  return;
}

