
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original name: write<32, true>
   DWARF original prototype: void write<32,_true>(Dynamic_entry * this, uchar * pov, Stringpool *
   pool) */

void __thiscall
gold::Output_data_dynamic::Dynamic_entry::write<32,_true>
          (Dynamic_entry *this,uchar *pov,Stringpool *pool)

{
  uint uVar1;
  uint uVar2;
  undefined4 *puVar3;
  undefined4 *puVar4;
  DT DVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  int *piVar9;
  uint uVar10;
  int iVar11;
  undefined4 *puVar12;
  int *piVar13;
  undefined4 *puVar14;
  undefined4 uVar15;
  undefined4 *puVar16;
  undefined *puVar17;
  undefined4 *puVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  undefined4 uVar22;
  undefined4 uVar23;
  undefined4 *puVar24;
  undefined4 uVar25;
  undefined4 *puVar26;
  undefined *puVar27;
  code *pcVar28;
  code *pcVar29;
  
  uVar1 = this->offset_ + 5;
  if (uVar1 < 5) {
                    /* WARNING: Could not emulate address calculation at 0x001a4f94 */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(&Position_dependent_options::default_options_.sort_common_.user_set_via_option +
              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)))();
    return;
  }
  if ((int)(((this->u_).sym)->got_offsets_).got_offset_ < 0) {
    DVar5 = this->tag_;
    *(uint *)(pov + 4) = this->offset_ + (((this->u_).sym)->u2_).shndx;
    *(DT *)pov = DVar5;
    return;
  }
  puVar17 = PTR_s_alize_xindex_004323b4 + 0x7850;
  (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar17);
  piVar13 = (int *)&DAT_00000069;
  piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec);
  puVar27 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar17 + 0x78f8);
  uVar1 = piVar9[3];
  if (uVar1 + 5 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a5190. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(puVar27 +
              *(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();
    return;
  }
  iVar6 = *piVar9;
  if (*(int *)(iVar6 + 0x20) < 0) {
    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);
    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);
    uVar10 = piVar9[2];
    piVar13[1] = 0;
    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +
                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;
    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +
                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;
    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
    return;
  }
  iVar6 = *(int *)(puVar27 + 0x28d274) + 0x7850;
  (**(code **)(puVar27 + 0x28d284))(*(int *)(puVar27 + 0x28d274) + -0x4fe0,0xc5,iVar6);
  puVar14 = (undefined4 *)&DAT_00000069;
  pcVar28 = *(code **)(puVar27 + 0x28d284);
  piVar9 = (int *)(*(int *)(puVar27 + 0x28d274) + -0x5cec);
  (*pcVar28)(piVar9,0x69,iVar6 + 0x78f8);
  uVar1 = piVar9[3];
  if (uVar1 + 5 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a5348. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();
    return;
  }
  iVar6 = *piVar9;
  if (*(int *)(iVar6 + 0x20) < 0) {
    iVar11 = *(int *)(iVar6 + 8);
    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);
    iVar6 = piVar9[2];
    *puVar14 = 0;
    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;
    puVar14[1] = iVar6;
    puVar14[3] = uVar2;
    return;
  }
  iVar6 = *(int *)(pcVar28 + 0x28d0bc) + 0x7850;
  (**(code **)(pcVar28 + 0x28d0cc))(*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0,0xc5,iVar6);
  uVar1 = 0x69;
  pcVar29 = *(code **)(pcVar28 + 0x28d0cc);
  piVar9 = (int *)(*(int *)(pcVar28 + 0x28d0bc) + -0x5cec);
  (*pcVar29)(piVar9,0x69,iVar6 + 0x78f8);
  if (uVar1 == 0) {
    return;
  }
  puVar7 = (undefined4 *)piVar9[1];
  puVar18 = (undefined4 *)&DAT_aaaaaaab;
  puVar14 = puVar7;
  uVar2 = uVar1;
  if (uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)) {
    do {
      *puVar14 = 0;
      puVar14[1] = 0;
      uVar2 = uVar2 - 1;
      puVar14[3] = 0;
      puVar14[2] = 0;
      puVar14[4] = 0;
      puVar14 = puVar14 + 6;
    } while (uVar2 != 0);
    piVar9[1] = (int)(puVar7 + uVar1 * 6);
    return;
  }
  iVar6 = *piVar9;
  puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3);
  uVar2 = (int)puVar14 * -0x55555555;
  if (uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU) {
    uVar10 = uVar2;
    if (uVar2 <= uVar1) {
      uVar10 = uVar1;
    }
    uVar10 = uVar10 + uVar2;
    iVar11 = -0x10;
    if (uVar2 <= uVar10) {
      if (0xaaaaaaa < uVar10) {
        uVar10 = 0xaaaaaaa;
      }
      iVar11 = uVar10 * 0x18;
    }
    puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar11);
    puVar14 = (undefined4 *)((int)puVar18 + ((int)puVar7 - iVar6));
    uVar10 = uVar1;
    do {
      *puVar14 = 0;
      puVar14[1] = 0;
      uVar10 = uVar10 - 1;
      puVar14[3] = 0;
      puVar14[2] = 0;
      puVar14[4] = 0;
      puVar14 = puVar14 + 6;
    } while (uVar10 != 0);
    puVar24 = (undefined4 *)piVar9[1];
    puVar12 = (undefined4 *)*piVar9;
    puVar7 = puVar18;
    for (puVar14 = puVar12; puVar14 != puVar24; puVar14 = puVar14 + 6) {
      uVar22 = puVar14[1];
      uVar21 = puVar14[2];
      uVar20 = puVar14[3];
      uVar19 = puVar14[4];
      uVar15 = puVar14[5];
      *puVar7 = *puVar14;
      puVar7[1] = uVar22;
      puVar7[2] = uVar21;
      puVar7[3] = uVar20;
      puVar7[4] = uVar19;
      puVar7[5] = uVar15;
      puVar7 = puVar7 + 6;
    }
    if (puVar12 != (undefined4 *)0x0) {
      (**(code **)(pcVar29 + 0x28cd40))();
    }
    *piVar9 = (int)puVar18;
    piVar9[2] = (int)puVar18 + iVar11;
    piVar9[1] = (int)(puVar18 + (uVar1 + uVar2) * 6);
    return;
  }
  pcVar28 = *(code **)(pcVar29 + 0x28cf34);
  puVar7 = (undefined4 *)(*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c);
  (*pcVar28)();
  puVar24 = (undefined4 *)puVar7[1];
  puVar12 = (undefined4 *)*puVar7;
  iVar6 = (int)puVar24 - (int)puVar12 >> 3;
  uVar1 = iVar6 * -0x49249249;
  if (uVar1 == 0) {
    uVar2 = 1;
LAB_001a5b4c:
    iVar6 = uVar2 * 0x38;
  }
  else {
    uVar2 = iVar6 * 0x6db6db6e;
    if (uVar2 < uVar1) {
      iVar6 = -0x20;
    }
    else {
      iVar6 = -0x20;
      if (uVar2 < 0x4924925) {
        puVar26 = (undefined4 *)&DAT_00000038;
        if (uVar2 == 0) {
          iVar6 = 0;
          puVar3 = (undefined4 *)0x0;
          goto LAB_001a57f4;
        }
        goto LAB_001a5b4c;
      }
    }
  }
  puVar3 = (undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar6);
  iVar6 = (int)puVar3 + iVar6;
  puVar26 = puVar3 + 0xe;
LAB_001a57f4:
  puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));
  uVar23 = puVar18[1];
  puVar8 = puVar18 + 9;
  uVar22 = puVar18[2];
  uVar21 = puVar18[3];
  uVar20 = puVar18[4];
  uVar19 = puVar18[5];
  uVar15 = puVar18[6];
  puVar16 = (undefined4 *)puVar18[7];
  *puVar4 = *puVar18;
  puVar4[1] = uVar23;
  puVar4[2] = uVar22;
  puVar4[3] = uVar21;
  puVar4[4] = uVar20;
  puVar4[5] = uVar19;
  puVar4[6] = uVar15;
  puVar4[7] = puVar4 + 9;
  if (puVar16 == puVar8) {
    uVar20 = puVar18[10];
    uVar19 = puVar18[0xb];
    uVar15 = puVar18[0xc];
    puVar4[9] = *puVar8;
    puVar4[10] = uVar20;
    puVar4[0xb] = uVar19;
    puVar4[0xc] = uVar15;
  }
  else {
    uVar15 = puVar18[9];
    puVar4[7] = puVar16;
    puVar4[9] = uVar15;
  }
  uVar15 = puVar18[8];
  puVar18[7] = puVar8;
  puVar18[8] = 0;
  puVar4[8] = uVar15;
  *(undefined1 *)(puVar18 + 9) = 0;
  if (puVar12 != puVar14) {
    puVar26 = puVar12 + 9;
    puVar18 = puVar3;
    while( true ) {
      uVar15 = puVar26[-4];
      uVar22 = puVar26[-8];
      uVar21 = puVar26[-7];
      uVar20 = puVar26[-6];
      uVar19 = puVar26[-5];
      *puVar18 = puVar26[-9];
      puVar18[1] = uVar22;
      puVar18[2] = uVar21;
      puVar18[3] = uVar20;
      puVar18[4] = uVar19;
      puVar18[5] = uVar15;
      uVar15 = puVar26[-3];
      puVar18[7] = puVar18 + 9;
      puVar18[6] = uVar15;
      if ((undefined4 *)puVar26[-2] == puVar26) {
        uVar20 = puVar26[1];
        uVar19 = puVar26[2];
        uVar15 = puVar26[3];
        puVar18[9] = *puVar26;
        puVar18[10] = uVar20;
        puVar18[0xb] = uVar19;
        puVar18[0xc] = uVar15;
        puVar18[8] = puVar26[-1];
        puVar26[-2] = puVar26;
        puVar26[-1] = 0;
        *(undefined1 *)puVar26 = 0;
      }
      else {
        puVar18[7] = (undefined4 *)puVar26[-2];
        puVar18[9] = *puVar26;
        puVar18[8] = puVar26[-1];
        puVar26[-2] = puVar26;
        puVar26[-1] = 0;
        *(undefined1 *)puVar26 = 0;
      }
      if (puVar14 == puVar26 + 5) break;
      puVar26 = puVar26 + 0xe;
      puVar18 = puVar18 + 0xe;
    }
    puVar26 = puVar3 + ((((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &
                        0x1fffffff) + 2) * 0xe;
  }
  puVar4 = puVar14 + 9;
  puVar8 = puVar26;
  puVar18 = puVar12;
  if (puVar24 != puVar14) {
    do {
      while( true ) {
        uVar25 = puVar4[-9];
        uVar23 = puVar4[-8];
        uVar22 = puVar4[-7];
        uVar21 = puVar4[-6];
        uVar20 = puVar4[-5];
        uVar19 = puVar4[-4];
        uVar15 = puVar4[-3];
        puVar16 = (undefined4 *)puVar4[-2];
        puVar8[7] = puVar8 + 9;
        *puVar8 = uVar25;
        puVar8[1] = uVar23;
        puVar8[2] = uVar22;
        puVar8[3] = uVar21;
        puVar8[4] = uVar20;
        puVar8[5] = uVar19;
        puVar8[6] = uVar15;
        if (puVar4 != puVar16) break;
        uVar20 = puVar4[1];
        uVar19 = puVar4[2];
        uVar15 = puVar4[3];
        puVar8[9] = *puVar4;
        puVar8[10] = uVar20;
        puVar8[0xb] = uVar19;
        puVar8[0xc] = uVar15;
        puVar16 = puVar4 + 5;
        puVar4[-2] = puVar4;
        *(undefined1 *)puVar4 = 0;
        uVar15 = puVar4[-1];
        puVar4[-1] = 0;
        puVar8[8] = uVar15;
        puVar4 = puVar4 + 0xe;
        puVar8 = puVar8 + 0xe;
        if (puVar24 == puVar16) goto LAB_001a5a78;
      }
      uVar15 = *puVar4;
      uVar19 = puVar4[-1];
      puVar8[7] = puVar16;
      puVar8[9] = uVar15;
      puVar16 = puVar4 + 5;
      puVar4[-2] = puVar4;
      puVar4[-1] = 0;
      *(undefined1 *)puVar4 = 0;
      puVar8[8] = uVar19;
      puVar4 = puVar4 + 0xe;
      puVar8 = puVar8 + 0xe;
    } while (puVar24 != puVar16);
LAB_001a5a78:
    puVar26 = puVar26 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &
                         0x1fffffff) + 1) * 0xe;
  }
  while (puVar18 != puVar24) {
    puVar14 = puVar18 + 7;
    puVar4 = puVar18 + 9;
    puVar18 = puVar18 + 0xe;
    if ((undefined4 *)*puVar14 != puVar4) {
      (**(code **)(pcVar28 + 0x28cb34))();
    }
  }
  if (puVar12 != (undefined4 *)0x0) {
    (**(code **)(pcVar28 + 0x28cb34))(puVar12);
  }
  *puVar7 = puVar3;
  puVar7[1] = puVar26;
  puVar7[2] = iVar6;
  return;
}



/* void gold::Output_data_dynamic::Dynamic_entry::write<32, true>(unsigned char*,
   gold::Stringpool_template<char> const*) const */

void __thiscall
gold::Output_data_dynamic::Dynamic_entry::write<32,true>
          (Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)

{
  uint uVar1;
  uint uVar2;
  undefined4 *puVar3;
  undefined4 *puVar4;
  undefined4 uVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  int *piVar9;
  uint uVar10;
  int iVar11;
  undefined4 *puVar12;
  int *piVar13;
  undefined4 *puVar14;
  undefined4 *puVar15;
  undefined *puVar16;
  undefined4 *puVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  undefined4 uVar22;
  undefined4 *puVar23;
  undefined4 uVar24;
  undefined4 *puVar25;
  undefined *puVar26;
  code *pcVar27;
  code *pcVar28;
  
  uVar1 = *(int *)(this + 0xc) + 5;
  if (uVar1 < 5) {
                    /* WARNING: Could not emulate address calculation at 0x001a4f94 */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(Position_dependent_options::default_options_ +
              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))();
    return;
  }
  if (*(int *)(*(int *)this + 0x20) < 0) {
    uVar5 = *(undefined4 *)(this + 8);
    *(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc);
    *(undefined4 *)param_1 = uVar5;
    return;
  }
  puVar16 = PTR_s_alize_xindex_004323b4 + 0x7850;
  (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar16);
  piVar13 = (int *)&DAT_00000069;
  piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec);
  puVar26 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar16 + 0x78f8);
  uVar1 = piVar9[3];
  if (uVar1 + 5 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a5190. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(puVar26 +
              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();
    return;
  }
  iVar6 = *piVar9;
  if (*(int *)(iVar6 + 0x20) < 0) {
    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);
    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);
    uVar10 = piVar9[2];
    piVar13[1] = 0;
    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +
                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;
    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +
                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;
    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
    return;
  }
  iVar6 = *(int *)(puVar26 + 0x28d274) + 0x7850;
  (**(code **)(puVar26 + 0x28d284))(*(int *)(puVar26 + 0x28d274) + -0x4fe0,0xc5,iVar6);
  puVar14 = (undefined4 *)&DAT_00000069;
  pcVar27 = *(code **)(puVar26 + 0x28d284);
  piVar9 = (int *)(*(int *)(puVar26 + 0x28d274) + -0x5cec);
  (*pcVar27)(piVar9,0x69,iVar6 + 0x78f8);
  uVar1 = piVar9[3];
  if (uVar1 + 5 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a5348. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();
    return;
  }
  iVar6 = *piVar9;
  if (*(int *)(iVar6 + 0x20) < 0) {
    iVar11 = *(int *)(iVar6 + 8);
    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);
    iVar6 = piVar9[2];
    *puVar14 = 0;
    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;
    puVar14[1] = iVar6;
    puVar14[3] = uVar2;
    return;
  }
  iVar6 = *(int *)(pcVar27 + 0x28d0bc) + 0x7850;
  (**(code **)(pcVar27 + 0x28d0cc))(*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0,0xc5,iVar6);
  uVar1 = 0x69;
  pcVar28 = *(code **)(pcVar27 + 0x28d0cc);
  piVar9 = (int *)(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec);
  (*pcVar28)(piVar9,0x69,iVar6 + 0x78f8);
  if (uVar1 == 0) {
    return;
  }
  puVar7 = (undefined4 *)piVar9[1];
  puVar17 = (undefined4 *)&DAT_aaaaaaab;
  puVar14 = puVar7;
  uVar2 = uVar1;
  if (uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)) {
    do {
      *puVar14 = 0;
      puVar14[1] = 0;
      uVar2 = uVar2 - 1;
      puVar14[3] = 0;
      puVar14[2] = 0;
      puVar14[4] = 0;
      puVar14 = puVar14 + 6;
    } while (uVar2 != 0);
    piVar9[1] = (int)(puVar7 + uVar1 * 6);
    return;
  }
  iVar6 = *piVar9;
  puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3);
  uVar2 = (int)puVar14 * -0x55555555;
  if (uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU) {
    uVar10 = uVar2;
    if (uVar2 <= uVar1) {
      uVar10 = uVar1;
    }
    uVar10 = uVar10 + uVar2;
    iVar11 = -0x10;
    if (uVar2 <= uVar10) {
      if (0xaaaaaaa < uVar10) {
        uVar10 = 0xaaaaaaa;
      }
      iVar11 = uVar10 * 0x18;
    }
    puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11);
    puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6));
    uVar10 = uVar1;
    do {
      *puVar14 = 0;
      puVar14[1] = 0;
      uVar10 = uVar10 - 1;
      puVar14[3] = 0;
      puVar14[2] = 0;
      puVar14[4] = 0;
      puVar14 = puVar14 + 6;
    } while (uVar10 != 0);
    puVar23 = (undefined4 *)piVar9[1];
    puVar12 = (undefined4 *)*piVar9;
    puVar7 = puVar17;
    for (puVar14 = puVar12; puVar14 != puVar23; puVar14 = puVar14 + 6) {
      uVar21 = puVar14[1];
      uVar20 = puVar14[2];
      uVar19 = puVar14[3];
      uVar18 = puVar14[4];
      uVar5 = puVar14[5];
      *puVar7 = *puVar14;
      puVar7[1] = uVar21;
      puVar7[2] = uVar20;
      puVar7[3] = uVar19;
      puVar7[4] = uVar18;
      puVar7[5] = uVar5;
      puVar7 = puVar7 + 6;
    }
    if (puVar12 != (undefined4 *)0x0) {
      (**(code **)(pcVar28 + 0x28cd40))();
    }
    *piVar9 = (int)puVar17;
    piVar9[2] = (int)puVar17 + iVar11;
    piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6);
    return;
  }
  pcVar27 = *(code **)(pcVar28 + 0x28cf34);
  puVar7 = (undefined4 *)(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c);
  (*pcVar27)();
  puVar23 = (undefined4 *)puVar7[1];
  puVar12 = (undefined4 *)*puVar7;
  iVar6 = (int)puVar23 - (int)puVar12 >> 3;
  uVar1 = iVar6 * -0x49249249;
  if (uVar1 == 0) {
    uVar2 = 1;
LAB_001a5b4c:
    iVar6 = uVar2 * 0x38;
  }
  else {
    uVar2 = iVar6 * 0x6db6db6e;
    if (uVar2 < uVar1) {
      iVar6 = -0x20;
    }
    else {
      iVar6 = -0x20;
      if (uVar2 < 0x4924925) {
        puVar25 = (undefined4 *)&DAT_00000038;
        if (uVar2 == 0) {
          iVar6 = 0;
          puVar3 = (undefined4 *)0x0;
          goto LAB_001a57f4;
        }
        goto LAB_001a5b4c;
      }
    }
  }
  puVar3 = (undefined4 *)(**(code **)(pcVar27 + 0x28cbe4))(iVar6);
  iVar6 = (int)puVar3 + iVar6;
  puVar25 = puVar3 + 0xe;
LAB_001a57f4:
  puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));
  uVar22 = puVar17[1];
  puVar8 = puVar17 + 9;
  uVar21 = puVar17[2];
  uVar20 = puVar17[3];
  uVar19 = puVar17[4];
  uVar18 = puVar17[5];
  uVar5 = puVar17[6];
  puVar15 = (undefined4 *)puVar17[7];
  *puVar4 = *puVar17;
  puVar4[1] = uVar22;
  puVar4[2] = uVar21;
  puVar4[3] = uVar20;
  puVar4[4] = uVar19;
  puVar4[5] = uVar18;
  puVar4[6] = uVar5;
  puVar4[7] = puVar4 + 9;
  if (puVar15 == puVar8) {
    uVar19 = puVar17[10];
    uVar18 = puVar17[0xb];
    uVar5 = puVar17[0xc];
    puVar4[9] = *puVar8;
    puVar4[10] = uVar19;
    puVar4[0xb] = uVar18;
    puVar4[0xc] = uVar5;
  }
  else {
    uVar5 = puVar17[9];
    puVar4[7] = puVar15;
    puVar4[9] = uVar5;
  }
  uVar5 = puVar17[8];
  puVar17[7] = puVar8;
  puVar17[8] = 0;
  puVar4[8] = uVar5;
  *(undefined1 *)(puVar17 + 9) = 0;
  if (puVar12 != puVar14) {
    puVar25 = puVar12 + 9;
    puVar17 = puVar3;
    while( true ) {
      uVar5 = puVar25[-4];
      uVar21 = puVar25[-8];
      uVar20 = puVar25[-7];
      uVar19 = puVar25[-6];
      uVar18 = puVar25[-5];
      *puVar17 = puVar25[-9];
      puVar17[1] = uVar21;
      puVar17[2] = uVar20;
      puVar17[3] = uVar19;
      puVar17[4] = uVar18;
      puVar17[5] = uVar5;
      uVar5 = puVar25[-3];
      puVar17[7] = puVar17 + 9;
      puVar17[6] = uVar5;
      if ((undefined4 *)puVar25[-2] == puVar25) {
        uVar19 = puVar25[1];
        uVar18 = puVar25[2];
        uVar5 = puVar25[3];
        puVar17[9] = *puVar25;
        puVar17[10] = uVar19;
        puVar17[0xb] = uVar18;
        puVar17[0xc] = uVar5;
        puVar17[8] = puVar25[-1];
        puVar25[-2] = puVar25;
        puVar25[-1] = 0;
        *(undefined1 *)puVar25 = 0;
      }
      else {
        puVar17[7] = (undefined4 *)puVar25[-2];
        puVar17[9] = *puVar25;
        puVar17[8] = puVar25[-1];
        puVar25[-2] = puVar25;
        puVar25[-1] = 0;
        *(undefined1 *)puVar25 = 0;
      }
      if (puVar14 == puVar25 + 5) break;
      puVar25 = puVar25 + 0xe;
      puVar17 = puVar17 + 0xe;
    }
    puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &
                        0x1fffffff) + 2) * 0xe;
  }
  puVar4 = puVar14 + 9;
  puVar8 = puVar25;
  puVar17 = puVar12;
  if (puVar23 != puVar14) {
    do {
      while( true ) {
        uVar24 = puVar4[-9];
        uVar22 = puVar4[-8];
        uVar21 = puVar4[-7];
        uVar20 = puVar4[-6];
        uVar19 = puVar4[-5];
        uVar18 = puVar4[-4];
        uVar5 = puVar4[-3];
        puVar15 = (undefined4 *)puVar4[-2];
        puVar8[7] = puVar8 + 9;
        *puVar8 = uVar24;
        puVar8[1] = uVar22;
        puVar8[2] = uVar21;
        puVar8[3] = uVar20;
        puVar8[4] = uVar19;
        puVar8[5] = uVar18;
        puVar8[6] = uVar5;
        if (puVar4 != puVar15) break;
        uVar19 = puVar4[1];
        uVar18 = puVar4[2];
        uVar5 = puVar4[3];
        puVar8[9] = *puVar4;
        puVar8[10] = uVar19;
        puVar8[0xb] = uVar18;
        puVar8[0xc] = uVar5;
        puVar15 = puVar4 + 5;
        puVar4[-2] = puVar4;
        *(undefined1 *)puVar4 = 0;
        uVar5 = puVar4[-1];
        puVar4[-1] = 0;
        puVar8[8] = uVar5;
        puVar4 = puVar4 + 0xe;
        puVar8 = puVar8 + 0xe;
        if (puVar23 == puVar15) goto LAB_001a5a78;
      }
      uVar5 = *puVar4;
      uVar18 = puVar4[-1];
      puVar8[7] = puVar15;
      puVar8[9] = uVar5;
      puVar15 = puVar4 + 5;
      puVar4[-2] = puVar4;
      puVar4[-1] = 0;
      *(undefined1 *)puVar4 = 0;
      puVar8[8] = uVar18;
      puVar4 = puVar4 + 0xe;
      puVar8 = puVar8 + 0xe;
    } while (puVar23 != puVar15);
LAB_001a5a78:
    puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &
                         0x1fffffff) + 1) * 0xe;
  }
  while (puVar17 != puVar23) {
    puVar14 = puVar17 + 7;
    puVar4 = puVar17 + 9;
    puVar17 = puVar17 + 0xe;
    if ((undefined4 *)*puVar14 != puVar4) {
      (**(code **)(pcVar27 + 0x28cb34))();
    }
  }
  if (puVar12 != (undefined4 *)0x0) {
    (**(code **)(pcVar27 + 0x28cb34))(puVar12);
  }
  *puVar7 = puVar3;
  puVar7[1] = puVar25;
  puVar7[2] = iVar6;
  return;
}


lui gp,0x29
addiu gp,gp,0x5280
addu gp,gp,t9
lw v1,0xc(a0)
addiu sp,sp,-0x28
addiu v0,v1,0x5
sw s1,0x20(sp)
sw gp,0x10(sp)
or s1,a1,zero
sltiu a1,v0,0x5
sw s0,0x1c(sp)
sw ra,0x24(sp)
beq a1,zero,0x001a50c0
_or s0,a0,zero
sll v1,v0,0x2
lw v0,-0x7e1c(gp)
addiu v0,v0,0x5dd0
addu v0,v0,v1
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
lw a0,0x0(a0)
lw v0,0x20(a0)
ext v0,v0,0x1e,0x1
beq v0,zero,0x001a50f4
_lw a2,-0x7e1c(gp)
lw v1,0x4(s0)
beq v1,zero,0x001a4fe0
_lw v0,0x14(a0)
lw a0,0x20(v1)
ext a0,a0,0x1e,0x1
beq a0,zero,0x001a50f8
_li a1,0xcf
lw v1,0x14(v1)
addu v0,v0,v1
lw v1,0x8(s0)
lw ra,0x24(sp)
lw s0,0x1c(sp)
sw v0,0x4(s1)
sw v1,0x0(s1)
lw s1,0x20(sp)
jr ra
_addiu sp,sp,0x28
lw v1,0x8(s0)
lw v0,0x0(a0)
lw ra,0x24(sp)
lw s0,0x1c(sp)
sw v0,0x4(s1)
sw v1,0x0(s1)
lw s1,0x20(sp)
jr ra
_addiu sp,sp,0x28
lw v0,-0x75f0(gp)
lw v0,0x0(v0)
lw a0,0xc(v0)
beq a0,zero,0x001a5128
_lw a2,-0x7e1c(gp)
lw v0,0x0(a0)
lw t9,0x98(v0)
jalr t9
_lw a1,0x8(s0)
lw v1,0x8(s0)
lw ra,0x24(sp)
lw s0,0x1c(sp)
sw v0,0x4(s1)
sw v1,0x0(s1)
lw s1,0x20(sp)
jr ra
_addiu sp,sp,0x28
lw t9,-0x7df0(gp)
or a0,a2,zero
jalr t9
_lw a1,0x0(s0)
lw v1,0x8(s0)
lw ra,0x24(sp)
lw s0,0x1c(sp)
sw v0,0x4(s1)
sw v1,0x0(s1)
lw s1,0x20(sp)
jr ra
_addiu sp,sp,0x28
lw v0,0x0(a0)
lw v1,0x8(s0)
lw ra,0x24(sp)
lw s0,0x1c(sp)
lw v0,0x30(v0)
sw v1,0x0(s1)
sw v0,0x4(s1)
lw s1,0x20(sp)
jr ra
_addiu sp,sp,0x28
lw v0,0x0(a0)
lw a0,0x20(v0)
bgez a0,0x001a510c
_lw ra,0x24(sp)
lw v0,0xc(v0)
addu v0,v1,v0
lw v1,0x8(s0)
lw s0,0x1c(sp)
sw v0,0x4(s1)
sw v1,0x0(s1)
lw s1,0x20(sp)
jr ra
_addiu sp,sp,0x28
li a1,0xcf
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x7894
jalr t9
_addiu a0,a0,-0x4fe0
lw a2,-0x7e1c(gp)
li a1,0xc5
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x7850
jalr t9
_addiu a0,a0,-0x4fe0
li a1,0x69
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x78f8
jalr t9
_addiu a0,a0,-0x5cec
(translation_unit "/* void gold::Output_data_dynamic::Dynamic_entry::write<32, true>(unsigned char*,\n   gold::Stringpool_template<char> const*) const */\n\nvoid __thiscall\ngold::Output_data_dynamic::Dynamic_entry::write<32,true>\n          (Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  int *piVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  undefined4 *puVar17;\n  undefined4 uVar18;\n  undefined4 uVar19;\n  undefined4 uVar20;\n  undefined4 uVar21;\n  undefined4 uVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined4 *puVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  \n  uVar1 = *(int *)(this + 0xc) + 5;\n  if (uVar1 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001a4f94 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))();\n    return;\n  }\n  if (*(int *)(*(int *)this + 0x20) < 0) {\n    uVar5 = *(undefined4 *)(this + 8);\n    *(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc);\n    *(undefined4 *)param_1 = uVar5;\n    return;\n  }\n  puVar16 = PTR_s_alize_xindex_004323b4 + 0x7850;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar16);\n  piVar13 = (int *)&DAT_00000069;\n  piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec);\n  puVar26 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar16 + 0x78f8);\n  uVar1 = piVar9[3];\n  if (uVar1 + 5 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001a5190. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();\n    return;\n  }\n  iVar6 = *piVar9;\n  if (*(int *)(iVar6 + 0x20) < 0) {\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);\n    uVar10 = piVar9[2];\n    piVar13[1] = 0;\n    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;\n    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }\n  iVar6 = *(int *)(puVar26 + 0x28d274) + 0x7850;\n  (**(code **)(puVar26 + 0x28d284))(*(int *)(puVar26 + 0x28d274) + -0x4fe0,0xc5,iVar6);\n  puVar14 = (undefined4 *)&DAT_00000069;\n  pcVar27 = *(code **)(puVar26 + 0x28d284);\n  piVar9 = (int *)(*(int *)(puVar26 + 0x28d274) + -0x5cec);\n  (*pcVar27)(piVar9,0x69,iVar6 + 0x78f8);\n  uVar1 = piVar9[3];\n  if (uVar1 + 5 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001a5348. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();\n    return;\n  }\n  iVar6 = *piVar9;\n  if (*(int *)(iVar6 + 0x20) < 0) {\n    iVar11 = *(int *)(iVar6 + 8);\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    iVar6 = piVar9[2];\n    *puVar14 = 0;\n    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;\n    puVar14[1] = iVar6;\n    puVar14[3] = uVar2;\n    return;\n  }\n  iVar6 = *(int *)(pcVar27 + 0x28d0bc) + 0x7850;\n  (**(code **)(pcVar27 + 0x28d0cc))(*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0,0xc5,iVar6);\n  uVar1 = 0x69;\n  pcVar28 = *(code **)(pcVar27 + 0x28d0cc);\n  piVar9 = (int *)(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec);\n  (*pcVar28)(piVar9,0x69,iVar6 + 0x78f8);\n  if (uVar1 == 0) {\n    return;\n  }\n  puVar7 = (undefined4 *)piVar9[1];\n  puVar17 = (undefined4 *)&DAT_aaaaaaab;\n  puVar14 = puVar7;\n  uVar2 = uVar1;\n  if (uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)) {\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);\n    piVar9[1] = (int)(puVar7 + uVar1 * 6);\n    return;\n  }\n  iVar6 = *piVar9;\n  puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3);\n  uVar2 = (int)puVar14 * -0x55555555;\n  if (uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU) {\n    uVar10 = uVar2;\n    if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }\n    uVar10 = uVar10 + uVar2;\n    iVar11 = -0x10;\n    if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }\n    puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11);\n    puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6));\n    uVar10 = uVar1;\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);\n    puVar23 = (undefined4 *)piVar9[1];\n    puVar12 = (undefined4 *)*piVar9;\n    puVar7 = puVar17;\n    for (puVar14 = puVar12; puVar14 != puVar23; puVar14 = puVar14 + 6) {\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }\n    if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }\n    *piVar9 = (int)puVar17;\n    piVar9[2] = (int)puVar17 + iVar11;\n    piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6);\n    return;\n  }\n  pcVar27 = *(code **)(pcVar28 + 0x28cf34);\n  puVar7 = (undefined4 *)(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c);\n  (*pcVar27)();\n  puVar23 = (undefined4 *)puVar7[1];\n  puVar12 = (undefined4 *)*puVar7;\n  iVar6 = (int)puVar23 - (int)puVar12 >> 3;\n  uVar1 = iVar6 * -0x49249249;\n  if (uVar1 == 0) {\n    uVar2 = 1;\nLAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;\n  }\n  else {\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }\n  puVar3 = (undefined4 *)(**(code **)(pcVar27 + 0x28cbe4))(iVar6);\n  iVar6 = (int)puVar3 + iVar6;\n  puVar25 = puVar3 + 0xe;\nLAB_001a57f4:\n  puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));\n  uVar22 = puVar17[1];\n  puVar8 = puVar17 + 9;\n  uVar21 = puVar17[2];\n  uVar20 = puVar17[3];\n  uVar19 = puVar17[4];\n  uVar18 = puVar17[5];\n  uVar5 = puVar17[6];\n  puVar15 = (undefined4 *)puVar17[7];\n  *puVar4 = *puVar17;\n  puVar4[1] = uVar22;\n  puVar4[2] = uVar21;\n  puVar4[3] = uVar20;\n  puVar4[4] = uVar19;\n  puVar4[5] = uVar18;\n  puVar4[6] = uVar5;\n  puVar4[7] = puVar4 + 9;\n  if (puVar15 == puVar8) {\n    uVar19 = puVar17[10];\n    uVar18 = puVar17[0xb];\n    uVar5 = puVar17[0xc];\n    puVar4[9] = *puVar8;\n    puVar4[10] = uVar19;\n    puVar4[0xb] = uVar18;\n    puVar4[0xc] = uVar5;\n  }\n  else {\n    uVar5 = puVar17[9];\n    puVar4[7] = puVar15;\n    puVar4[9] = uVar5;\n  }\n  uVar5 = puVar17[8];\n  puVar17[7] = puVar8;\n  puVar17[8] = 0;\n  puVar4[8] = uVar5;\n  *(undefined1 *)(puVar17 + 9) = 0;\n  if (puVar12 != puVar14) {\n    puVar25 = puVar12 + 9;\n    puVar17 = puVar3;\n    while( true ) {\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }\n    puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }\n  puVar4 = puVar14 + 9;\n  puVar8 = puVar25;\n  puVar17 = puVar12;\n  if (puVar23 != puVar14) {\n    do {\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar23 != puVar15);\nLAB_001a5a78:\n    puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }\n  while (puVar17 != puVar23) {\n    puVar14 = puVar17 + 7;\n    puVar4 = puVar17 + 9;\n    puVar17 = puVar17 + 0xe;\n    if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }\n  }\n  if (puVar12 != (undefined4 *)0x0) {\n    (**(code **)(pcVar27 + 0x28cb34))(puVar12);\n  }\n  *puVar7 = puVar3;\n  puVar7[1] = puVar25;\n  puVar7[2] = iVar6;\n  return;\n}\n\n" comment (declaration "void __thiscall\ngold::Output_data_dynamic::Dynamic_entry::write<32,true>\n          (Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)\n\n{\n  uint uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_data_dynamic::Dynamic_entry::" identifier : : identifier : : identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "true>\n          (Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)\n\n{\n  uint" (function_declarator "true>\n          (Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)" identifier (ERROR ">" >) (parameter_list "(Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)" ( (parameter_declaration "Dynamic_entry *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "uchar *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Stringpool_template *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) { identifier) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "undefined4 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (expression_statement "uVar1 = *(int *)(this + 0xc) + 5;" (assignment_expression "uVar1 = *(int *)(this + 0xc) + 5" identifier = (binary_expression "*(int *)(this + 0xc) + 5" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (uVar1 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001a4f94 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))();\n    return;\n  }" if (parenthesized_expression "(uVar1 < 5)" ( (binary_expression "uVar1 < 5" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x001a4f94 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))();\n    return;\n  }" { comment comment (expression_statement "(*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))();" (call_expression "(*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))()" (parenthesized_expression "(*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))" ( (pointer_expression "*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0)" * (cast_expression "(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0)" ( (binary_expression "Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0" (binary_expression "Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" identifier (ERROR "::default_options_" : : identifier) + (pointer_expression "*(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" * (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0" (binary_expression "PTR_s_alize_xindex_004323b4 + uVar1 * 4" identifier + (binary_expression "uVar1 * 4" identifier * number_literal)) + number_literal) ))))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(*(int *)this + 0x20) < 0) {\n    uVar5 = *(undefined4 *)(this + 8);\n    *(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc);\n    *(undefined4 *)param_1 = uVar5;\n    return;\n  }" if (parenthesized_expression "(*(int *)(*(int *)this + 0x20) < 0)" ( (binary_expression "*(int *)(*(int *)this + 0x20) < 0" (pointer_expression "*(int *)(*(int *)this + 0x20)" * (cast_expression "(int *)(*(int *)this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)this + 0x20)" ( (binary_expression "*(int *)this + 0x20" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) < number_literal) )) (compound_statement "{\n    uVar5 = *(undefined4 *)(this + 8);\n    *(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc);\n    *(undefined4 *)param_1 = uVar5;\n    return;\n  }" { (expression_statement "uVar5 = *(undefined4 *)(this + 8);" (assignment_expression "uVar5 = *(undefined4 *)(this + 8)" identifier = (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc);" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc)" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc)" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)this + 0xc)" * (cast_expression "(int *)(*(int *)this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)this + 0xc)" ( (binary_expression "*(int *)this + 0xc" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))))) ;) (expression_statement "*(undefined4 *)param_1 = uVar5;" (assignment_expression "*(undefined4 *)param_1 = uVar5" (pointer_expression "*(undefined4 *)param_1" * (cast_expression "(undefined4 *)param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "puVar16 = PTR_s_alize_xindex_004323b4 + 0x7850;" (assignment_expression "puVar16 = PTR_s_alize_xindex_004323b4 + 0x7850" identifier = (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7850" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar16);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar16)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar16)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "piVar13 = (int *)&DAT_00000069;" (assignment_expression "piVar13 = (int *)&DAT_00000069" identifier = (cast_expression "(int *)&DAT_00000069" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000069" & identifier))) ;) (expression_statement "piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec);" (assignment_expression "piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec)" identifier = (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0x5cec)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) )))) ;) (expression_statement "puVar26 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar26 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar16 + 0x78f8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar16 + 0x78f8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9,0x69,puVar16 + 0x78f8)" ( identifier , number_literal , (binary_expression "puVar16 + 0x78f8" identifier + number_literal) ))) ;) (expression_statement "uVar1 = piVar9[3];" (assignment_expression "uVar1 = piVar9[3]" identifier = (subscript_expression "piVar9[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar1 + 5 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001a5190. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();\n    return;\n  }" if (parenthesized_expression "(uVar1 + 5 < 5)" ( (binary_expression "uVar1 + 5 < 5" (binary_expression "uVar1 + 5" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001a5190. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();\n    return;\n  }" { comment comment (expression_statement "(*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();" (call_expression "(*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))()" (parenthesized_expression "(*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))" ( (pointer_expression "*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090)" * (cast_expression "(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090)" ( (binary_expression "puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090" (binary_expression "puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" * (cast_expression "(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" ( (binary_expression "*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4" (binary_expression "*(int *)(puVar26 + 0x28d274) + 0x5de4" (pointer_expression "*(int *)(puVar26 + 0x28d274)" * (cast_expression "(int *)(puVar26 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x28d274)" ( (binary_expression "puVar26 + 0x28d274" identifier + number_literal) )))) + number_literal) + (binary_expression "(uVar1 + 5) * 4" (parenthesized_expression "(uVar1 + 5)" ( (binary_expression "uVar1 + 5" identifier + number_literal) )) * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (*(int *)(iVar6 + 0x20) < 0) {\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);\n    uVar10 = piVar9[2];\n    piVar13[1] = 0;\n    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;\n    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x20) < 0)" ( (binary_expression "*(int *)(iVar6 + 0x20) < 0" (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);\n    uVar10 = piVar9[2];\n    piVar13[1] = 0;\n    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;\n    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }" { (expression_statement "uVar2 = uVar1 + *(int *)(iVar6 + 0xc);" (assignment_expression "uVar2 = uVar1 + *(int *)(iVar6 + 0xc)" identifier = (binary_expression "uVar1 + *(int *)(iVar6 + 0xc)" identifier + (pointer_expression "*(int *)(iVar6 + 0xc)" * (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);" (assignment_expression "uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8)" identifier = (binary_expression "(uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8)" (call_expression "(uint)(uVar2 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) ))) + (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))))) ;) (expression_statement "uVar10 = piVar9[2];" (assignment_expression "uVar10 = piVar9[2]" identifier = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "piVar13[1] = 0;" (assignment_expression "piVar13[1] = 0" (subscript_expression "piVar13[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar13[3]" identifier [ number_literal ]) = (binary_expression "(((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10)" ( (binary_expression "(uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10" (binary_expression "(uVar1 >> 0x10) << 0x18" (parenthesized_expression "(uVar1 >> 0x10)" ( (binary_expression "uVar1 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar1 >> 0x18) << 0x10" (parenthesized_expression "(uVar1 >> 0x18)" ( (binary_expression "uVar1 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff)" ( (binary_expression "(uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff" (binary_expression "(uVar1 & 0xff) << 8" (parenthesized_expression "(uVar1 & 0xff)" ( (binary_expression "uVar1 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar1 >> 8 & 0xff" (binary_expression "uVar1 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar13[2]" identifier [ number_literal ]) = (binary_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10)" ( (binary_expression "(uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10" (binary_expression "(uVar2 >> 0x10) << 0x18" (parenthesized_expression "(uVar2 >> 0x10)" ( (binary_expression "uVar2 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar2 >> 0x18) << 0x10" (parenthesized_expression "(uVar2 >> 0x18)" ( (binary_expression "uVar2 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff)" ( (binary_expression "(uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff" (binary_expression "(uVar2 & 0xff) << 8" (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "*piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar13" * identifier) = (binary_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10)" ( (binary_expression "(uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10" (binary_expression "(uVar10 >> 0x10) << 0x18" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar10 >> 0x18) << 0x10" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff)" ( (binary_expression "(uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff" (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *(int *)(puVar26 + 0x28d274) + 0x7850;" (assignment_expression "iVar6 = *(int *)(puVar26 + 0x28d274) + 0x7850" identifier = (binary_expression "*(int *)(puVar26 + 0x28d274) + 0x7850" (pointer_expression "*(int *)(puVar26 + 0x28d274)" * (cast_expression "(int *)(puVar26 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x28d274)" ( (binary_expression "puVar26 + 0x28d274" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar26 + 0x28d284))(*(int *)(puVar26 + 0x28d274) + -0x4fe0,0xc5,iVar6);" (call_expression "(**(code **)(puVar26 + 0x28d284))(*(int *)(puVar26 + 0x28d274) + -0x4fe0,0xc5,iVar6)" (parenthesized_expression "(**(code **)(puVar26 + 0x28d284))" ( (pointer_expression "**(code **)(puVar26 + 0x28d284)" * (pointer_expression "*(code **)(puVar26 + 0x28d284)" * (cast_expression "(code **)(puVar26 + 0x28d284)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x28d284)" ( (binary_expression "puVar26 + 0x28d284" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar26 + 0x28d274) + -0x4fe0,0xc5,iVar6)" ( (binary_expression "*(int *)(puVar26 + 0x28d274) + -0x4fe0" (pointer_expression "*(int *)(puVar26 + 0x28d274)" * (cast_expression "(int *)(puVar26 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x28d274)" ( (binary_expression "puVar26 + 0x28d274" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (expression_statement "puVar14 = (undefined4 *)&DAT_00000069;" (assignment_expression "puVar14 = (undefined4 *)&DAT_00000069" identifier = (cast_expression "(undefined4 *)&DAT_00000069" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000069" & identifier))) ;) (expression_statement "pcVar27 = *(code **)(puVar26 + 0x28d284);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0x28d284)" identifier = (pointer_expression "*(code **)(puVar26 + 0x28d284)" * (cast_expression "(code **)(puVar26 + 0x28d284)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x28d284)" ( (binary_expression "puVar26 + 0x28d284" identifier + number_literal) ))))) ;) (expression_statement "piVar9 = (int *)(*(int *)(puVar26 + 0x28d274) + -0x5cec);" (assignment_expression "piVar9 = (int *)(*(int *)(puVar26 + 0x28d274) + -0x5cec)" identifier = (cast_expression "(int *)(*(int *)(puVar26 + 0x28d274) + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar26 + 0x28d274) + -0x5cec)" ( (binary_expression "*(int *)(puVar26 + 0x28d274) + -0x5cec" (pointer_expression "*(int *)(puVar26 + 0x28d274)" * (cast_expression "(int *)(puVar26 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x28d274)" ( (binary_expression "puVar26 + 0x28d274" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar27)(piVar9,0x69,iVar6 + 0x78f8);" (call_expression "(*pcVar27)(piVar9,0x69,iVar6 + 0x78f8)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(piVar9,0x69,iVar6 + 0x78f8)" ( identifier , number_literal , (binary_expression "iVar6 + 0x78f8" identifier + number_literal) ))) ;) (expression_statement "uVar1 = piVar9[3];" (assignment_expression "uVar1 = piVar9[3]" identifier = (subscript_expression "piVar9[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar1 + 5 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001a5348. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();\n    return;\n  }" if (parenthesized_expression "(uVar1 + 5 < 5)" ( (binary_expression "uVar1 + 5 < 5" (binary_expression "uVar1 + 5" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001a5348. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();\n    return;\n  }" { comment comment (expression_statement "(*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();" (call_expression "(*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))()" (parenthesized_expression "(*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))" ( (pointer_expression "*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8)" * (parenthesized_expression "(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8)" ( (binary_expression "pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8" (binary_expression "pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" * (cast_expression "(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" ( (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4" (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + 0x5df8" (pointer_expression "*(int *)(pcVar27 + 0x28d0bc)" * (cast_expression "(int *)(pcVar27 + 0x28d0bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x28d0bc)" ( (binary_expression "pcVar27 + 0x28d0bc" identifier + number_literal) )))) + number_literal) + (binary_expression "(uVar1 + 5) * 4" (parenthesized_expression "(uVar1 + 5)" ( (binary_expression "uVar1 + 5" identifier + number_literal) )) * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (*(int *)(iVar6 + 0x20) < 0) {\n    iVar11 = *(int *)(iVar6 + 8);\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    iVar6 = piVar9[2];\n    *puVar14 = 0;\n    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;\n    puVar14[1] = iVar6;\n    puVar14[3] = uVar2;\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x20) < 0)" ( (binary_expression "*(int *)(iVar6 + 0x20) < 0" (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    iVar11 = *(int *)(iVar6 + 8);\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    iVar6 = piVar9[2];\n    *puVar14 = 0;\n    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;\n    puVar14[1] = iVar6;\n    puVar14[3] = uVar2;\n    return;\n  }" { (expression_statement "iVar11 = *(int *)(iVar6 + 8);" (assignment_expression "iVar11 = *(int *)(iVar6 + 8)" identifier = (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = uVar1 + *(int *)(iVar6 + 0xc);" (assignment_expression "uVar2 = uVar1 + *(int *)(iVar6 + 0xc)" identifier = (binary_expression "uVar1 + *(int *)(iVar6 + 0xc)" identifier + (pointer_expression "*(int *)(iVar6 + 0xc)" * (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "iVar6 = piVar9[2];" (assignment_expression "iVar6 = piVar9[2]" identifier = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;" (assignment_expression "puVar14[2] = (uint)(uVar2 < uVar1) + iVar11" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar2 < uVar1) + iVar11" (call_expression "(uint)(uVar2 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) ))) + identifier)) ;) (expression_statement "puVar14[1] = iVar6;" (assignment_expression "puVar14[1] = iVar6" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[3] = uVar2;" (assignment_expression "puVar14[3] = uVar2" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *(int *)(pcVar27 + 0x28d0bc) + 0x7850;" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x28d0bc) + 0x7850" identifier = (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + 0x7850" (pointer_expression "*(int *)(pcVar27 + 0x28d0bc)" * (cast_expression "(int *)(pcVar27 + 0x28d0bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x28d0bc)" ( (binary_expression "pcVar27 + 0x28d0bc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar27 + 0x28d0cc))(*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0,0xc5,iVar6);" (call_expression "(**(code **)(pcVar27 + 0x28d0cc))(*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0,0xc5,iVar6)" (parenthesized_expression "(**(code **)(pcVar27 + 0x28d0cc))" ( (pointer_expression "**(code **)(pcVar27 + 0x28d0cc)" * (pointer_expression "*(code **)(pcVar27 + 0x28d0cc)" * (cast_expression "(code **)(pcVar27 + 0x28d0cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x28d0cc)" ( (binary_expression "pcVar27 + 0x28d0cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0,0xc5,iVar6)" ( (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0" (pointer_expression "*(int *)(pcVar27 + 0x28d0bc)" * (cast_expression "(int *)(pcVar27 + 0x28d0bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x28d0bc)" ( (binary_expression "pcVar27 + 0x28d0bc" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (expression_statement "uVar1 = 0x69;" (assignment_expression "uVar1 = 0x69" identifier = number_literal) ;) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x28d0cc);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x28d0cc)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x28d0cc)" * (cast_expression "(code **)(pcVar27 + 0x28d0cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x28d0cc)" ( (binary_expression "pcVar27 + 0x28d0cc" identifier + number_literal) ))))) ;) (expression_statement "piVar9 = (int *)(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec);" (assignment_expression "piVar9 = (int *)(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec)" identifier = (cast_expression "(int *)(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec)" ( (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + -0x5cec" (pointer_expression "*(int *)(pcVar27 + 0x28d0bc)" * (cast_expression "(int *)(pcVar27 + 0x28d0bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x28d0bc)" ( (binary_expression "pcVar27 + 0x28d0bc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)(piVar9,0x69,iVar6 + 0x78f8);" (call_expression "(*pcVar28)(piVar9,0x69,iVar6 + 0x78f8)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(piVar9,0x69,iVar6 + 0x78f8)" ( identifier , number_literal , (binary_expression "iVar6 + 0x78f8" identifier + number_literal) ))) ;) (if_statement "if (uVar1 == 0) {\n    return;\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar7 = (undefined4 *)piVar9[1];" (assignment_expression "puVar7 = (undefined4 *)piVar9[1]" identifier = (cast_expression "(undefined4 *)piVar9[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar17 = (undefined4 *)&DAT_aaaaaaab;" (assignment_expression "puVar17 = (undefined4 *)&DAT_aaaaaaab" identifier = (cast_expression "(undefined4 *)&DAT_aaaaaaab" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_aaaaaaab" & identifier))) ;) (expression_statement "puVar14 = puVar7;" (assignment_expression "puVar14 = puVar7" identifier = identifier) ;) (expression_statement "uVar2 = uVar1;" (assignment_expression "uVar2 = uVar1" identifier = identifier) ;) (if_statement "if (uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)) {\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);\n    piVar9[1] = (int)(puVar7 + uVar1 * 6);\n    return;\n  }" if (parenthesized_expression "(uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555))" ( (binary_expression "uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)" identifier <= (call_expression "(uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)" ( (binary_expression "(piVar9[2] - (int)puVar7 >> 3) * -0x55555555" (parenthesized_expression "(piVar9[2] - (int)puVar7 >> 3)" ( (binary_expression "piVar9[2] - (int)puVar7 >> 3" (binary_expression "piVar9[2] - (int)puVar7" (subscript_expression "piVar9[2]" identifier [ number_literal ]) - (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) )))) )) (compound_statement "{\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);\n    piVar9[1] = (int)(puVar7 + uVar1 * 6);\n    return;\n  }" { (do_statement "do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);" do (compound_statement "{\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    }" { (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = uVar2 - 1;" (assignment_expression "uVar2 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) ;) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[4] = 0;" (assignment_expression "puVar14[4] = 0" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14 = puVar14 + 6;" (assignment_expression "puVar14 = puVar14 + 6" identifier = (binary_expression "puVar14 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) ;) (expression_statement "piVar9[1] = (int)(puVar7 + uVar1 * 6);" (assignment_expression "piVar9[1] = (int)(puVar7 + uVar1 * 6)" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = (cast_expression "(int)(puVar7 + uVar1 * 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar7 + uVar1 * 6)" ( (binary_expression "puVar7 + uVar1 * 6" identifier + (binary_expression "uVar1 * 6" identifier * number_literal)) )))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3);" (assignment_expression "puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3)" identifier = (cast_expression "(undefined4 *)((int)puVar7 - iVar6 >> 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 - iVar6 >> 3)" ( (binary_expression "(int)puVar7 - iVar6 >> 3" (binary_expression "(int)puVar7 - iVar6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal) )))) ;) (expression_statement "uVar2 = (int)puVar14 * -0x55555555;" (assignment_expression "uVar2 = (int)puVar14 * -0x55555555" identifier = (binary_expression "(int)puVar14 * -0x55555555" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU) {\n    uVar10 = uVar2;\n    if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }\n    uVar10 = uVar10 + uVar2;\n    iVar11 = -0x10;\n    if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }\n    puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11);\n    puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6));\n    uVar10 = uVar1;\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);\n    puVar23 = (undefined4 *)piVar9[1];\n    puVar12 = (undefined4 *)*piVar9;\n    puVar7 = puVar17;\n    for (puVar14 = puVar12; puVar14 != puVar23; puVar14 = puVar14 + 6) {\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }\n    if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }\n    *piVar9 = (int)puVar17;\n    piVar9[2] = (int)puVar17 + iVar11;\n    piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6);\n    return;\n  }" if (parenthesized_expression "(uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU)" ( (binary_expression "uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU" identifier <= (binary_expression "(int)puVar14 * 0x55555555 + 0xaaaaaaaU" (binary_expression "(int)puVar14 * 0x55555555" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) )) (compound_statement "{\n    uVar10 = uVar2;\n    if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }\n    uVar10 = uVar10 + uVar2;\n    iVar11 = -0x10;\n    if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }\n    puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11);\n    puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6));\n    uVar10 = uVar1;\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);\n    puVar23 = (undefined4 *)piVar9[1];\n    puVar12 = (undefined4 *)*piVar9;\n    puVar7 = puVar17;\n    for (puVar14 = puVar12; puVar14 != puVar23; puVar14 = puVar14 + 6) {\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }\n    if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }\n    *piVar9 = (int)puVar17;\n    piVar9[2] = (int)puVar17 + iVar11;\n    piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6);\n    return;\n  }" { (expression_statement "uVar10 = uVar2;" (assignment_expression "uVar10 = uVar2" identifier = identifier) ;) (if_statement "if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }" if (parenthesized_expression "(uVar2 <= uVar1)" ( (binary_expression "uVar2 <= uVar1" identifier <= identifier) )) (compound_statement "{\n      uVar10 = uVar1;\n    }" { (expression_statement "uVar10 = uVar1;" (assignment_expression "uVar10 = uVar1" identifier = identifier) ;) })) (expression_statement "uVar10 = uVar10 + uVar2;" (assignment_expression "uVar10 = uVar10 + uVar2" identifier = (binary_expression "uVar10 + uVar2" identifier + identifier)) ;) (expression_statement "iVar11 = -0x10;" (assignment_expression "iVar11 = -0x10" identifier = number_literal) ;) (if_statement "if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }" if (parenthesized_expression "(uVar2 <= uVar10)" ( (binary_expression "uVar2 <= uVar10" identifier <= identifier) )) (compound_statement "{\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }" { (if_statement "if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }" if (parenthesized_expression "(0xaaaaaaa < uVar10)" ( (binary_expression "0xaaaaaaa < uVar10" number_literal < identifier) )) (compound_statement "{\n        uVar10 = 0xaaaaaaa;\n      }" { (expression_statement "uVar10 = 0xaaaaaaa;" (assignment_expression "uVar10 = 0xaaaaaaa" identifier = number_literal) ;) })) (expression_statement "iVar11 = uVar10 * 0x18;" (assignment_expression "iVar11 = uVar10 * 0x18" identifier = (binary_expression "uVar10 * 0x18" identifier * number_literal)) ;) })) (expression_statement "puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11);" (assignment_expression "puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar28 + 0x28cdf0))(iVar11)" (parenthesized_expression "(**(code **)(pcVar28 + 0x28cdf0))" ( (pointer_expression "**(code **)(pcVar28 + 0x28cdf0)" * (pointer_expression "*(code **)(pcVar28 + 0x28cdf0)" * (cast_expression "(code **)(pcVar28 + 0x28cdf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x28cdf0)" ( (binary_expression "pcVar28 + 0x28cdf0" identifier + number_literal) ))))) )) (argument_list "(iVar11)" ( identifier ))))) ;) (expression_statement "puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6));" (assignment_expression "puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6))" identifier = (cast_expression "(undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + ((int)puVar7 - iVar6))" ( (binary_expression "(int)puVar17 + ((int)puVar7 - iVar6)" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)puVar7 - iVar6)" ( (binary_expression "(int)puVar7 - iVar6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) )))) ;) (expression_statement "uVar10 = uVar1;" (assignment_expression "uVar10 = uVar1" identifier = identifier) ;) (do_statement "do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);" do (compound_statement "{\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    }" { (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[4] = 0;" (assignment_expression "puVar14[4] = 0" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14 = puVar14 + 6;" (assignment_expression "puVar14 = puVar14 + 6" identifier = (binary_expression "puVar14 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) ;) (expression_statement "puVar23 = (undefined4 *)piVar9[1];" (assignment_expression "puVar23 = (undefined4 *)piVar9[1]" identifier = (cast_expression "(undefined4 *)piVar9[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar12 = (undefined4 *)*piVar9;" (assignment_expression "puVar12 = (undefined4 *)*piVar9" identifier = (cast_expression "(undefined4 *)*piVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "puVar7 = puVar17;" (assignment_expression "puVar7 = puVar17" identifier = identifier) ;) (for_statement "for (puVar14 = puVar12; puVar14 != puVar23; puVar14 = puVar14 + 6) {\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }" for ( (assignment_expression "puVar14 = puVar12" identifier = identifier) ; (binary_expression "puVar14 != puVar23" identifier != identifier) ; (assignment_expression "puVar14 = puVar14 + 6" identifier = (binary_expression "puVar14 + 6" identifier + number_literal)) ) (compound_statement "{\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }" { (expression_statement "uVar21 = puVar14[1];" (assignment_expression "uVar21 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar14[2];" (assignment_expression "uVar20 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar14[3];" (assignment_expression "uVar19 = puVar14[3]" identifier = (subscript_expression "puVar14[3]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar14[4];" (assignment_expression "uVar18 = puVar14[4]" identifier = (subscript_expression "puVar14[4]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar14[5];" (assignment_expression "uVar5 = puVar14[5]" identifier = (subscript_expression "puVar14[5]" identifier [ number_literal ])) ;) (expression_statement "*puVar7 = *puVar14;" (assignment_expression "*puVar7 = *puVar14" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar7[1] = uVar21;" (assignment_expression "puVar7[1] = uVar21" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar20;" (assignment_expression "puVar7[2] = uVar20" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = uVar19;" (assignment_expression "puVar7[3] = uVar19" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[4] = uVar18;" (assignment_expression "puVar7[4] = uVar18" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[5] = uVar5;" (assignment_expression "puVar7[5] = uVar5" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = puVar7 + 6;" (assignment_expression "puVar7 = puVar7 + 6" identifier = (binary_expression "puVar7 + 6" identifier + number_literal)) ;) })) (if_statement "if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }" if (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }" { (expression_statement "(**(code **)(pcVar28 + 0x28cd40))();" (call_expression "(**(code **)(pcVar28 + 0x28cd40))()" (parenthesized_expression "(**(code **)(pcVar28 + 0x28cd40))" ( (pointer_expression "**(code **)(pcVar28 + 0x28cd40)" * (pointer_expression "*(code **)(pcVar28 + 0x28cd40)" * (cast_expression "(code **)(pcVar28 + 0x28cd40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x28cd40)" ( (binary_expression "pcVar28 + 0x28cd40" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "*piVar9 = (int)puVar17;" (assignment_expression "*piVar9 = (int)puVar17" (pointer_expression "*piVar9" * identifier) = (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar9[2] = (int)puVar17 + iVar11;" (assignment_expression "piVar9[2] = (int)puVar17 + iVar11" (subscript_expression "piVar9[2]" identifier [ number_literal ]) = (binary_expression "(int)puVar17 + iVar11" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6);" (assignment_expression "piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6)" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = (cast_expression "(int)(puVar17 + (uVar1 + uVar2) * 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar17 + (uVar1 + uVar2) * 6)" ( (binary_expression "puVar17 + (uVar1 + uVar2) * 6" identifier + (binary_expression "(uVar1 + uVar2) * 6" (parenthesized_expression "(uVar1 + uVar2)" ( (binary_expression "uVar1 + uVar2" identifier + identifier) )) * number_literal)) )))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar27 = *(code **)(pcVar28 + 0x28cf34);" (assignment_expression "pcVar27 = *(code **)(pcVar28 + 0x28cf34)" identifier = (pointer_expression "*(code **)(pcVar28 + 0x28cf34)" * (cast_expression "(code **)(pcVar28 + 0x28cf34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x28cf34)" ( (binary_expression "pcVar28 + 0x28cf34" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c);" (assignment_expression "puVar7 = (undefined4 *)(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c)" ( (binary_expression "*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c" (pointer_expression "*(int *)(pcVar28 + 0x28ccc0)" * (cast_expression "(int *)(pcVar28 + 0x28ccc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x28ccc0)" ( (binary_expression "pcVar28 + 0x28ccc0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar23 = (undefined4 *)puVar7[1];" (assignment_expression "puVar23 = (undefined4 *)puVar7[1]" identifier = (cast_expression "(undefined4 *)puVar7[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar12 = (undefined4 *)*puVar7;" (assignment_expression "puVar12 = (undefined4 *)*puVar7" identifier = (cast_expression "(undefined4 *)*puVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "iVar6 = (int)puVar23 - (int)puVar12 >> 3;" (assignment_expression "iVar6 = (int)puVar23 - (int)puVar12 >> 3" identifier = (binary_expression "(int)puVar23 - (int)puVar12 >> 3" (binary_expression "(int)puVar23 - (int)puVar12" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "uVar1 = iVar6 * -0x49249249;" (assignment_expression "uVar1 = iVar6 * -0x49249249" identifier = (binary_expression "iVar6 * -0x49249249" identifier * number_literal)) ;) (if_statement "if (uVar1 == 0) {\n    uVar2 = 1;\nLAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;\n  }\n  else {\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar2 = 1;\nLAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;\n  }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (labeled_statement "LAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;" statement_identifier : (expression_statement "iVar6 = uVar2 * 0x38;" (assignment_expression "iVar6 = uVar2 * 0x38" identifier = (binary_expression "uVar2 * 0x38" identifier * number_literal)) ;)) }) (else_clause "else {\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" else (compound_statement "{\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" { (expression_statement "uVar2 = iVar6 * 0x6db6db6e;" (assignment_expression "uVar2 = iVar6 * 0x6db6db6e" identifier = (binary_expression "iVar6 * 0x6db6db6e" identifier * number_literal)) ;) (if_statement "if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" if (parenthesized_expression "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) )) (compound_statement "{\n      iVar6 = -0x20;\n    }" { (expression_statement "iVar6 = -0x20;" (assignment_expression "iVar6 = -0x20" identifier = number_literal) ;) }) (else_clause "else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" else (compound_statement "{\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" { (expression_statement "iVar6 = -0x20;" (assignment_expression "iVar6 = -0x20" identifier = number_literal) ;) (if_statement "if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }" if (parenthesized_expression "(uVar2 < 0x4924925)" ( (binary_expression "uVar2 < 0x4924925" identifier < number_literal) )) (compound_statement "{\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }" { (expression_statement "puVar25 = (undefined4 *)&DAT_00000038;" (assignment_expression "puVar25 = (undefined4 *)&DAT_00000038" identifier = (cast_expression "(undefined4 *)&DAT_00000038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000038" & identifier))) ;) (if_statement "if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = (undefined4 *)0x0;" (assignment_expression "puVar3 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_001a57f4;" goto statement_identifier ;) })) (goto_statement "goto LAB_001a5b4c;" goto statement_identifier ;) })) }))) }))) (expression_statement "puVar3 = (undefined4 *)(**(code **)(pcVar27 + 0x28cbe4))(iVar6);" (assignment_expression "puVar3 = (undefined4 *)(**(code **)(pcVar27 + 0x28cbe4))(iVar6)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar27 + 0x28cbe4))(iVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar27 + 0x28cbe4))(iVar6)" (parenthesized_expression "(**(code **)(pcVar27 + 0x28cbe4))" ( (pointer_expression "**(code **)(pcVar27 + 0x28cbe4)" * (pointer_expression "*(code **)(pcVar27 + 0x28cbe4)" * (cast_expression "(code **)(pcVar27 + 0x28cbe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x28cbe4)" ( (binary_expression "pcVar27 + 0x28cbe4" identifier + number_literal) ))))) )) (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "iVar6 = (int)puVar3 + iVar6;" (assignment_expression "iVar6 = (int)puVar3 + iVar6" identifier = (binary_expression "(int)puVar3 + iVar6" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "puVar25 = puVar3 + 0xe;" (assignment_expression "puVar25 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + number_literal)) ;) (labeled_statement "LAB_001a57f4:\n  puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));" statement_identifier : (expression_statement "puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));" (assignment_expression "puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12))" identifier = (cast_expression "(undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + ((int)puVar14 - (int)puVar12))" ( (binary_expression "(int)puVar3 + ((int)puVar14 - (int)puVar12)" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)puVar14 - (int)puVar12)" ( (binary_expression "(int)puVar14 - (int)puVar12" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;)) (expression_statement "uVar22 = puVar17[1];" (assignment_expression "uVar22 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "puVar8 = puVar17 + 9;" (assignment_expression "puVar8 = puVar17 + 9" identifier = (binary_expression "puVar17 + 9" identifier + number_literal)) ;) (expression_statement "uVar21 = puVar17[2];" (assignment_expression "uVar21 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar17[3];" (assignment_expression "uVar20 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar17[4];" (assignment_expression "uVar19 = puVar17[4]" identifier = (subscript_expression "puVar17[4]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar17[5];" (assignment_expression "uVar18 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar17[6];" (assignment_expression "uVar5 = puVar17[6]" identifier = (subscript_expression "puVar17[6]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = (undefined4 *)puVar17[7];" (assignment_expression "puVar15 = (undefined4 *)puVar17[7]" identifier = (cast_expression "(undefined4 *)puVar17[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar17[7]" identifier [ number_literal ]))) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = uVar22;" (assignment_expression "puVar4[1] = uVar22" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar21;" (assignment_expression "puVar4[2] = uVar21" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar20;" (assignment_expression "puVar4[3] = uVar20" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[4] = uVar19;" (assignment_expression "puVar4[4] = uVar19" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[5] = uVar18;" (assignment_expression "puVar4[5] = uVar18" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[6] = uVar5;" (assignment_expression "puVar4[6] = uVar5" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[7] = puVar4 + 9;" (assignment_expression "puVar4[7] = puVar4 + 9" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = (binary_expression "puVar4 + 9" identifier + number_literal)) ;) (if_statement "if (puVar15 == puVar8) {\n    uVar19 = puVar17[10];\n    uVar18 = puVar17[0xb];\n    uVar5 = puVar17[0xc];\n    puVar4[9] = *puVar8;\n    puVar4[10] = uVar19;\n    puVar4[0xb] = uVar18;\n    puVar4[0xc] = uVar5;\n  }\n  else {\n    uVar5 = puVar17[9];\n    puVar4[7] = puVar15;\n    puVar4[9] = uVar5;\n  }" if (parenthesized_expression "(puVar15 == puVar8)" ( (binary_expression "puVar15 == puVar8" identifier == identifier) )) (compound_statement "{\n    uVar19 = puVar17[10];\n    uVar18 = puVar17[0xb];\n    uVar5 = puVar17[0xc];\n    puVar4[9] = *puVar8;\n    puVar4[10] = uVar19;\n    puVar4[0xb] = uVar18;\n    puVar4[0xc] = uVar5;\n  }" { (expression_statement "uVar19 = puVar17[10];" (assignment_expression "uVar19 = puVar17[10]" identifier = (subscript_expression "puVar17[10]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar17[0xb];" (assignment_expression "uVar18 = puVar17[0xb]" identifier = (subscript_expression "puVar17[0xb]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar17[0xc];" (assignment_expression "uVar5 = puVar17[0xc]" identifier = (subscript_expression "puVar17[0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar4[9] = *puVar8;" (assignment_expression "puVar4[9] = *puVar8" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar4[10] = uVar19;" (assignment_expression "puVar4[10] = uVar19" (subscript_expression "puVar4[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[0xb] = uVar18;" (assignment_expression "puVar4[0xb] = uVar18" (subscript_expression "puVar4[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[0xc] = uVar5;" (assignment_expression "puVar4[0xc] = uVar5" (subscript_expression "puVar4[0xc]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    uVar5 = puVar17[9];\n    puVar4[7] = puVar15;\n    puVar4[9] = uVar5;\n  }" else (compound_statement "{\n    uVar5 = puVar17[9];\n    puVar4[7] = puVar15;\n    puVar4[9] = uVar5;\n  }" { (expression_statement "uVar5 = puVar17[9];" (assignment_expression "uVar5 = puVar17[9]" identifier = (subscript_expression "puVar17[9]" identifier [ number_literal ])) ;) (expression_statement "puVar4[7] = puVar15;" (assignment_expression "puVar4[7] = puVar15" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[9] = uVar5;" (assignment_expression "puVar4[9] = uVar5" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "uVar5 = puVar17[8];" (assignment_expression "uVar5 = puVar17[8]" identifier = (subscript_expression "puVar17[8]" identifier [ number_literal ])) ;) (expression_statement "puVar17[7] = puVar8;" (assignment_expression "puVar17[7] = puVar8" (subscript_expression "puVar17[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[8] = 0;" (assignment_expression "puVar17[8] = 0" (subscript_expression "puVar17[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[8] = uVar5;" (assignment_expression "puVar4[8] = uVar5" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar17 + 9) = 0;" (assignment_expression "*(undefined1 *)(puVar17 + 9) = 0" (pointer_expression "*(undefined1 *)(puVar17 + 9)" * (cast_expression "(undefined1 *)(puVar17 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 9)" ( (binary_expression "puVar17 + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puVar12 != puVar14) {\n    puVar25 = puVar12 + 9;\n    puVar17 = puVar3;\n    while( true ) {\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }\n    puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }" if (parenthesized_expression "(puVar12 != puVar14)" ( (binary_expression "puVar12 != puVar14" identifier != identifier) )) (compound_statement "{\n    puVar25 = puVar12 + 9;\n    puVar17 = puVar3;\n    while( true ) {\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }\n    puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }" { (expression_statement "puVar25 = puVar12 + 9;" (assignment_expression "puVar25 = puVar12 + 9" identifier = (binary_expression "puVar12 + 9" identifier + number_literal)) ;) (expression_statement "puVar17 = puVar3;" (assignment_expression "puVar17 = puVar3" identifier = identifier) ;) (while_statement "while( true ) {\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }" { (expression_statement "uVar5 = puVar25[-4];" (assignment_expression "uVar5 = puVar25[-4]" identifier = (subscript_expression "puVar25[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = puVar25[-8];" (assignment_expression "uVar21 = puVar25[-8]" identifier = (subscript_expression "puVar25[-8]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar25[-7];" (assignment_expression "uVar20 = puVar25[-7]" identifier = (subscript_expression "puVar25[-7]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar25[-6];" (assignment_expression "uVar19 = puVar25[-6]" identifier = (subscript_expression "puVar25[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar25[-5];" (assignment_expression "uVar18 = puVar25[-5]" identifier = (subscript_expression "puVar25[-5]" identifier [ number_literal ])) ;) (expression_statement "*puVar17 = puVar25[-9];" (assignment_expression "*puVar17 = puVar25[-9]" (pointer_expression "*puVar17" * identifier) = (subscript_expression "puVar25[-9]" identifier [ number_literal ])) ;) (expression_statement "puVar17[1] = uVar21;" (assignment_expression "puVar17[1] = uVar21" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[2] = uVar20;" (assignment_expression "puVar17[2] = uVar20" (subscript_expression "puVar17[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[3] = uVar19;" (assignment_expression "puVar17[3] = uVar19" (subscript_expression "puVar17[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[4] = uVar18;" (assignment_expression "puVar17[4] = uVar18" (subscript_expression "puVar17[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[5] = uVar5;" (assignment_expression "puVar17[5] = uVar5" (subscript_expression "puVar17[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = puVar25[-3];" (assignment_expression "uVar5 = puVar25[-3]" identifier = (subscript_expression "puVar25[-3]" identifier [ number_literal ])) ;) (expression_statement "puVar17[7] = puVar17 + 9;" (assignment_expression "puVar17[7] = puVar17 + 9" (subscript_expression "puVar17[7]" identifier [ number_literal ]) = (binary_expression "puVar17 + 9" identifier + number_literal)) ;) (expression_statement "puVar17[6] = uVar5;" (assignment_expression "puVar17[6] = uVar5" (subscript_expression "puVar17[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }" if (parenthesized_expression "((undefined4 *)puVar25[-2] == puVar25)" ( (binary_expression "(undefined4 *)puVar25[-2] == puVar25" (cast_expression "(undefined4 *)puVar25[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar25[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }" { (expression_statement "uVar19 = puVar25[1];" (assignment_expression "uVar19 = puVar25[1]" identifier = (subscript_expression "puVar25[1]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar25[2];" (assignment_expression "uVar18 = puVar25[2]" identifier = (subscript_expression "puVar25[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar25[3];" (assignment_expression "uVar5 = puVar25[3]" identifier = (subscript_expression "puVar25[3]" identifier [ number_literal ])) ;) (expression_statement "puVar17[9] = *puVar25;" (assignment_expression "puVar17[9] = *puVar25" (subscript_expression "puVar17[9]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar17[10] = uVar19;" (assignment_expression "puVar17[10] = uVar19" (subscript_expression "puVar17[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[0xb] = uVar18;" (assignment_expression "puVar17[0xb] = uVar18" (subscript_expression "puVar17[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[0xc] = uVar5;" (assignment_expression "puVar17[0xc] = uVar5" (subscript_expression "puVar17[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[8] = puVar25[-1];" (assignment_expression "puVar17[8] = puVar25[-1]" (subscript_expression "puVar17[8]" identifier [ number_literal ]) = (subscript_expression "puVar25[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar25[-2] = puVar25;" (assignment_expression "puVar25[-2] = puVar25" (subscript_expression "puVar25[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[-1] = 0;" (assignment_expression "puVar25[-1] = 0" (subscript_expression "puVar25[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar25 = 0;" (assignment_expression "*(undefined1 *)puVar25 = 0" (pointer_expression "*(undefined1 *)puVar25" * (cast_expression "(undefined1 *)puVar25" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }" else (compound_statement "{\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }" { (expression_statement "puVar17[7] = (undefined4 *)puVar25[-2];" (assignment_expression "puVar17[7] = (undefined4 *)puVar25[-2]" (subscript_expression "puVar17[7]" identifier [ number_literal ]) = (cast_expression "(undefined4 *)puVar25[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar25[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar17[9] = *puVar25;" (assignment_expression "puVar17[9] = *puVar25" (subscript_expression "puVar17[9]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar17[8] = puVar25[-1];" (assignment_expression "puVar17[8] = puVar25[-1]" (subscript_expression "puVar17[8]" identifier [ number_literal ]) = (subscript_expression "puVar25[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar25[-2] = puVar25;" (assignment_expression "puVar25[-2] = puVar25" (subscript_expression "puVar25[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[-1] = 0;" (assignment_expression "puVar25[-1] = 0" (subscript_expression "puVar25[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar25 = 0;" (assignment_expression "*(undefined1 *)puVar25 = 0" (pointer_expression "*(undefined1 *)puVar25" * (cast_expression "(undefined1 *)puVar25" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }))) (if_statement "if (puVar14 == puVar25 + 5) break;" if (parenthesized_expression "(puVar14 == puVar25 + 5)" ( (binary_expression "puVar14 == puVar25 + 5" identifier == (binary_expression "puVar25 + 5" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar25 = puVar25 + 0xe;" (assignment_expression "puVar25 = puVar25 + 0xe" identifier = (binary_expression "puVar25 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar17 = puVar17 + 0xe;" (assignment_expression "puVar17 = puVar17 + 0xe" identifier = (binary_expression "puVar17 + 0xe" identifier + number_literal)) ;) })) (expression_statement "puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;" (assignment_expression "puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" identifier = (binary_expression "puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" identifier + (binary_expression "((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" (parenthesized_expression "((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2)" ( (binary_expression "(((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2" (parenthesized_expression "(((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff)" ( (binary_expression "((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff" (binary_expression "((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7" (parenthesized_expression "((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3)" ( (binary_expression "(uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3" (call_expression "(uint)((int)puVar25 + (-0x24 - (int)puVar12))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar25 + (-0x24 - (int)puVar12))" ( (binary_expression "(int)puVar25 + (-0x24 - (int)puVar12)" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x24 - (int)puVar12)" ( (binary_expression "-0x24 - (int)puVar12" number_literal - (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) >> number_literal) )) * number_literal) & number_literal) )) + number_literal) )) * number_literal))) ;) })) (expression_statement "puVar4 = puVar14 + 9;" (assignment_expression "puVar4 = puVar14 + 9" identifier = (binary_expression "puVar14 + 9" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar25;" (assignment_expression "puVar8 = puVar25" identifier = identifier) ;) (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (if_statement "if (puVar23 != puVar14) {\n    do {\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar23 != puVar15);\nLAB_001a5a78:\n    puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }" if (parenthesized_expression "(puVar23 != puVar14)" ( (binary_expression "puVar23 != puVar14" identifier != identifier) )) (compound_statement "{\n    do {\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar23 != puVar15);\nLAB_001a5a78:\n    puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }" { (do_statement "do {\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar23 != puVar15);" do (compound_statement "{\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    }" { (while_statement "while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }" { (expression_statement "uVar24 = puVar4[-9];" (assignment_expression "uVar24 = puVar4[-9]" identifier = (subscript_expression "puVar4[-9]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar4[-8];" (assignment_expression "uVar22 = puVar4[-8]" identifier = (subscript_expression "puVar4[-8]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = puVar4[-7];" (assignment_expression "uVar21 = puVar4[-7]" identifier = (subscript_expression "puVar4[-7]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar4[-6];" (assignment_expression "uVar20 = puVar4[-6]" identifier = (subscript_expression "puVar4[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar4[-5];" (assignment_expression "uVar19 = puVar4[-5]" identifier = (subscript_expression "puVar4[-5]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar4[-4];" (assignment_expression "uVar18 = puVar4[-4]" identifier = (subscript_expression "puVar4[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar4[-3];" (assignment_expression "uVar5 = puVar4[-3]" identifier = (subscript_expression "puVar4[-3]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = (undefined4 *)puVar4[-2];" (assignment_expression "puVar15 = (undefined4 *)puVar4[-2]" identifier = (cast_expression "(undefined4 *)puVar4[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar8[7] = puVar8 + 9;" (assignment_expression "puVar8[7] = puVar8 + 9" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = (binary_expression "puVar8 + 9" identifier + number_literal)) ;) (expression_statement "*puVar8 = uVar24;" (assignment_expression "*puVar8 = uVar24" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "puVar8[1] = uVar22;" (assignment_expression "puVar8[1] = uVar22" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = uVar21;" (assignment_expression "puVar8[2] = uVar21" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[3] = uVar20;" (assignment_expression "puVar8[3] = uVar20" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[4] = uVar19;" (assignment_expression "puVar8[4] = uVar19" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[5] = uVar18;" (assignment_expression "puVar8[5] = uVar18" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[6] = uVar5;" (assignment_expression "puVar8[6] = uVar5" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar4 != puVar15) break;" if (parenthesized_expression "(puVar4 != puVar15)" ( (binary_expression "puVar4 != puVar15" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar19 = puVar4[1];" (assignment_expression "uVar19 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar4[2];" (assignment_expression "uVar18 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar4[3];" (assignment_expression "uVar5 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "puVar8[9] = *puVar4;" (assignment_expression "puVar8[9] = *puVar4" (subscript_expression "puVar8[9]" identifier [ number_literal ]) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar8[10] = uVar19;" (assignment_expression "puVar8[10] = uVar19" (subscript_expression "puVar8[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[0xb] = uVar18;" (assignment_expression "puVar8[0xb] = uVar18" (subscript_expression "puVar8[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[0xc] = uVar5;" (assignment_expression "puVar8[0xc] = uVar5" (subscript_expression "puVar8[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15 = puVar4 + 5;" (assignment_expression "puVar15 = puVar4 + 5" identifier = (binary_expression "puVar4 + 5" identifier + number_literal)) ;) (expression_statement "puVar4[-2] = puVar4;" (assignment_expression "puVar4[-2] = puVar4" (subscript_expression "puVar4[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar5 = puVar4[-1];" (assignment_expression "uVar5 = puVar4[-1]" identifier = (subscript_expression "puVar4[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar4[-1] = 0;" (assignment_expression "puVar4[-1] = 0" (subscript_expression "puVar4[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[8] = uVar5;" (assignment_expression "puVar8[8] = uVar5" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar4 + 0xe;" (assignment_expression "puVar4 = puVar4 + 0xe" identifier = (binary_expression "puVar4 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + 0xe;" (assignment_expression "puVar8 = puVar8 + 0xe" identifier = (binary_expression "puVar8 + 0xe" identifier + number_literal)) ;) (if_statement "if (puVar23 == puVar15) goto LAB_001a5a78;" if (parenthesized_expression "(puVar23 == puVar15)" ( (binary_expression "puVar23 == puVar15" identifier == identifier) )) (goto_statement "goto LAB_001a5a78;" goto statement_identifier ;)) })) (expression_statement "uVar5 = *puVar4;" (assignment_expression "uVar5 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "uVar18 = puVar4[-1];" (assignment_expression "uVar18 = puVar4[-1]" identifier = (subscript_expression "puVar4[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar8[7] = puVar15;" (assignment_expression "puVar8[7] = puVar15" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[9] = uVar5;" (assignment_expression "puVar8[9] = uVar5" (subscript_expression "puVar8[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15 = puVar4 + 5;" (assignment_expression "puVar15 = puVar4 + 5" identifier = (binary_expression "puVar4 + 5" identifier + number_literal)) ;) (expression_statement "puVar4[-2] = puVar4;" (assignment_expression "puVar4[-2] = puVar4" (subscript_expression "puVar4[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[-1] = 0;" (assignment_expression "puVar4[-1] = 0" (subscript_expression "puVar4[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar8[8] = uVar18;" (assignment_expression "puVar8[8] = uVar18" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar4 + 0xe;" (assignment_expression "puVar4 = puVar4 + 0xe" identifier = (binary_expression "puVar4 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + 0xe;" (assignment_expression "puVar8 = puVar8 + 0xe" identifier = (binary_expression "puVar8 + 0xe" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar23 != puVar15)" ( (binary_expression "puVar23 != puVar15" identifier != identifier) )) ;) (labeled_statement "LAB_001a5a78:\n    puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;" statement_identifier : (expression_statement "puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;" (assignment_expression "puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" identifier = (binary_expression "puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" identifier + (binary_expression "((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" (parenthesized_expression "((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1)" ( (binary_expression "(((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1" (parenthesized_expression "(((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff)" ( (binary_expression "((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff" (binary_expression "((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7" (parenthesized_expression "((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3)" ( (binary_expression "(uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3" (call_expression "(uint)((int)puVar23 + (-0x38 - (int)puVar14))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar23 + (-0x38 - (int)puVar14))" ( (binary_expression "(int)puVar23 + (-0x38 - (int)puVar14)" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x38 - (int)puVar14)" ( (binary_expression "-0x38 - (int)puVar14" number_literal - (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) >> number_literal) )) * number_literal) & number_literal) )) + number_literal) )) * number_literal))) ;)) })) (while_statement "while (puVar17 != puVar23) {\n    puVar14 = puVar17 + 7;\n    puVar4 = puVar17 + 9;\n    puVar17 = puVar17 + 0xe;\n    if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }\n  }" while (parenthesized_expression "(puVar17 != puVar23)" ( (binary_expression "puVar17 != puVar23" identifier != identifier) )) (compound_statement "{\n    puVar14 = puVar17 + 7;\n    puVar4 = puVar17 + 9;\n    puVar17 = puVar17 + 0xe;\n    if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }\n  }" { (expression_statement "puVar14 = puVar17 + 7;" (assignment_expression "puVar14 = puVar17 + 7" identifier = (binary_expression "puVar17 + 7" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar17 + 9;" (assignment_expression "puVar4 = puVar17 + 9" identifier = (binary_expression "puVar17 + 9" identifier + number_literal)) ;) (expression_statement "puVar17 = puVar17 + 0xe;" (assignment_expression "puVar17 = puVar17 + 0xe" identifier = (binary_expression "puVar17 + 0xe" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }" if (parenthesized_expression "((undefined4 *)*puVar14 != puVar4)" ( (binary_expression "(undefined4 *)*puVar14 != puVar4" (cast_expression "(undefined4 *)*puVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier)) != identifier) )) (compound_statement "{\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }" { (expression_statement "(**(code **)(pcVar27 + 0x28cb34))();" (call_expression "(**(code **)(pcVar27 + 0x28cb34))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x28cb34))" ( (pointer_expression "**(code **)(pcVar27 + 0x28cb34)" * (pointer_expression "*(code **)(pcVar27 + 0x28cb34)" * (cast_expression "(code **)(pcVar27 + 0x28cb34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x28cb34)" ( (binary_expression "pcVar27 + 0x28cb34" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) })) (if_statement "if (puVar12 != (undefined4 *)0x0) {\n    (**(code **)(pcVar27 + 0x28cb34))(puVar12);\n  }" if (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar27 + 0x28cb34))(puVar12);\n  }" { (expression_statement "(**(code **)(pcVar27 + 0x28cb34))(puVar12);" (call_expression "(**(code **)(pcVar27 + 0x28cb34))(puVar12)" (parenthesized_expression "(**(code **)(pcVar27 + 0x28cb34))" ( (pointer_expression "**(code **)(pcVar27 + 0x28cb34)" * (pointer_expression "*(code **)(pcVar27 + 0x28cb34)" * (cast_expression "(code **)(pcVar27 + 0x28cb34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x28cb34)" ( (binary_expression "pcVar27 + 0x28cb34" identifier + number_literal) ))))) )) (argument_list "(puVar12)" ( identifier ))) ;) })) (expression_statement "*puVar7 = puVar3;" (assignment_expression "*puVar7 = puVar3" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar7[1] = puVar25;" (assignment_expression "puVar7[1] = puVar25" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = iVar6;" (assignment_expression "puVar7[2] = iVar6" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* DWARF original name: write<32, true>\n   DWARF original prototype: void write<32,_true>(Dynamic_entry * this, uchar * pov, Stringpool *\n   pool) */\n\nvoid __thiscall\ngold::Output_data_dynamic::Dynamic_entry::write<32,_true>\n          (Dynamic_entry *this,uchar *pov,Stringpool *pool)\n\n{\n  uint uVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  DT DVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  int *piVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  undefined *puVar17;\n  undefined4 *puVar18;\n  undefined4 uVar19;\n  undefined4 uVar20;\n  undefined4 uVar21;\n  undefined4 uVar22;\n  undefined4 uVar23;\n  undefined4 *puVar24;\n  undefined4 uVar25;\n  undefined4 *puVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  code *pcVar29;\n  \n  uVar1 = this->offset_ + 5;\n  if (uVar1 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001a4f94 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&Position_dependent_options::default_options_.sort_common_.user_set_via_option +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)))();\n    return;\n  }\n  if ((int)(((this->u_).sym)->got_offsets_).got_offset_ < 0) {\n    DVar5 = this->tag_;\n    *(uint *)(pov + 4) = this->offset_ + (((this->u_).sym)->u2_).shndx;\n    *(DT *)pov = DVar5;\n    return;\n  }\n  puVar17 = PTR_s_alize_xindex_004323b4 + 0x7850;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar17);\n  piVar13 = (int *)&DAT_00000069;\n  piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec);\n  puVar27 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar17 + 0x78f8);\n  uVar1 = piVar9[3];\n  if (uVar1 + 5 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001a5190. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(puVar27 +\n              *(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();\n    return;\n  }\n  iVar6 = *piVar9;\n  if (*(int *)(iVar6 + 0x20) < 0) {\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);\n    uVar10 = piVar9[2];\n    piVar13[1] = 0;\n    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;\n    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }\n  iVar6 = *(int *)(puVar27 + 0x28d274) + 0x7850;\n  (**(code **)(puVar27 + 0x28d284))(*(int *)(puVar27 + 0x28d274) + -0x4fe0,0xc5,iVar6);\n  puVar14 = (undefined4 *)&DAT_00000069;\n  pcVar28 = *(code **)(puVar27 + 0x28d284);\n  piVar9 = (int *)(*(int *)(puVar27 + 0x28d274) + -0x5cec);\n  (*pcVar28)(piVar9,0x69,iVar6 + 0x78f8);\n  uVar1 = piVar9[3];\n  if (uVar1 + 5 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001a5348. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();\n    return;\n  }\n  iVar6 = *piVar9;\n  if (*(int *)(iVar6 + 0x20) < 0) {\n    iVar11 = *(int *)(iVar6 + 8);\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    iVar6 = piVar9[2];\n    *puVar14 = 0;\n    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;\n    puVar14[1] = iVar6;\n    puVar14[3] = uVar2;\n    return;\n  }\n  iVar6 = *(int *)(pcVar28 + 0x28d0bc) + 0x7850;\n  (**(code **)(pcVar28 + 0x28d0cc))(*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0,0xc5,iVar6);\n  uVar1 = 0x69;\n  pcVar29 = *(code **)(pcVar28 + 0x28d0cc);\n  piVar9 = (int *)(*(int *)(pcVar28 + 0x28d0bc) + -0x5cec);\n  (*pcVar29)(piVar9,0x69,iVar6 + 0x78f8);\n  if (uVar1 == 0) {\n    return;\n  }\n  puVar7 = (undefined4 *)piVar9[1];\n  puVar18 = (undefined4 *)&DAT_aaaaaaab;\n  puVar14 = puVar7;\n  uVar2 = uVar1;\n  if (uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)) {\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);\n    piVar9[1] = (int)(puVar7 + uVar1 * 6);\n    return;\n  }\n  iVar6 = *piVar9;\n  puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3);\n  uVar2 = (int)puVar14 * -0x55555555;\n  if (uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU) {\n    uVar10 = uVar2;\n    if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }\n    uVar10 = uVar10 + uVar2;\n    iVar11 = -0x10;\n    if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }\n    puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar11);\n    puVar14 = (undefined4 *)((int)puVar18 + ((int)puVar7 - iVar6));\n    uVar10 = uVar1;\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);\n    puVar24 = (undefined4 *)piVar9[1];\n    puVar12 = (undefined4 *)*piVar9;\n    puVar7 = puVar18;\n    for (puVar14 = puVar12; puVar14 != puVar24; puVar14 = puVar14 + 6) {\n      uVar22 = puVar14[1];\n      uVar21 = puVar14[2];\n      uVar20 = puVar14[3];\n      uVar19 = puVar14[4];\n      uVar15 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar22;\n      puVar7[2] = uVar21;\n      puVar7[3] = uVar20;\n      puVar7[4] = uVar19;\n      puVar7[5] = uVar15;\n      puVar7 = puVar7 + 6;\n    }\n    if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar29 + 0x28cd40))();\n    }\n    *piVar9 = (int)puVar18;\n    piVar9[2] = (int)puVar18 + iVar11;\n    piVar9[1] = (int)(puVar18 + (uVar1 + uVar2) * 6);\n    return;\n  }\n  pcVar28 = *(code **)(pcVar29 + 0x28cf34);\n  puVar7 = (undefined4 *)(*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c);\n  (*pcVar28)();\n  puVar24 = (undefined4 *)puVar7[1];\n  puVar12 = (undefined4 *)*puVar7;\n  iVar6 = (int)puVar24 - (int)puVar12 >> 3;\n  uVar1 = iVar6 * -0x49249249;\n  if (uVar1 == 0) {\n    uVar2 = 1;\nLAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;\n  }\n  else {\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar26 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }\n  puVar3 = (undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar6);\n  iVar6 = (int)puVar3 + iVar6;\n  puVar26 = puVar3 + 0xe;\nLAB_001a57f4:\n  puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));\n  uVar23 = puVar18[1];\n  puVar8 = puVar18 + 9;\n  uVar22 = puVar18[2];\n  uVar21 = puVar18[3];\n  uVar20 = puVar18[4];\n  uVar19 = puVar18[5];\n  uVar15 = puVar18[6];\n  puVar16 = (undefined4 *)puVar18[7];\n  *puVar4 = *puVar18;\n  puVar4[1] = uVar23;\n  puVar4[2] = uVar22;\n  puVar4[3] = uVar21;\n  puVar4[4] = uVar20;\n  puVar4[5] = uVar19;\n  puVar4[6] = uVar15;\n  puVar4[7] = puVar4 + 9;\n  if (puVar16 == puVar8) {\n    uVar20 = puVar18[10];\n    uVar19 = puVar18[0xb];\n    uVar15 = puVar18[0xc];\n    puVar4[9] = *puVar8;\n    puVar4[10] = uVar20;\n    puVar4[0xb] = uVar19;\n    puVar4[0xc] = uVar15;\n  }\n  else {\n    uVar15 = puVar18[9];\n    puVar4[7] = puVar16;\n    puVar4[9] = uVar15;\n  }\n  uVar15 = puVar18[8];\n  puVar18[7] = puVar8;\n  puVar18[8] = 0;\n  puVar4[8] = uVar15;\n  *(undefined1 *)(puVar18 + 9) = 0;\n  if (puVar12 != puVar14) {\n    puVar26 = puVar12 + 9;\n    puVar18 = puVar3;\n    while( true ) {\n      uVar15 = puVar26[-4];\n      uVar22 = puVar26[-8];\n      uVar21 = puVar26[-7];\n      uVar20 = puVar26[-6];\n      uVar19 = puVar26[-5];\n      *puVar18 = puVar26[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar15;\n      uVar15 = puVar26[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar15;\n      if ((undefined4 *)puVar26[-2] == puVar26) {\n        uVar20 = puVar26[1];\n        uVar19 = puVar26[2];\n        uVar15 = puVar26[3];\n        puVar18[9] = *puVar26;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar15;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar26[-2];\n        puVar18[9] = *puVar26;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }\n      if (puVar14 == puVar26 + 5) break;\n      puVar26 = puVar26 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }\n    puVar26 = puVar3 + ((((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }\n  puVar4 = puVar14 + 9;\n  puVar8 = puVar26;\n  puVar18 = puVar12;\n  if (puVar24 != puVar14) {\n    do {\n      while( true ) {\n        uVar25 = puVar4[-9];\n        uVar23 = puVar4[-8];\n        uVar22 = puVar4[-7];\n        uVar21 = puVar4[-6];\n        uVar20 = puVar4[-5];\n        uVar19 = puVar4[-4];\n        uVar15 = puVar4[-3];\n        puVar16 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar25;\n        puVar8[1] = uVar23;\n        puVar8[2] = uVar22;\n        puVar8[3] = uVar21;\n        puVar8[4] = uVar20;\n        puVar8[5] = uVar19;\n        puVar8[6] = uVar15;\n        if (puVar4 != puVar16) break;\n        uVar20 = puVar4[1];\n        uVar19 = puVar4[2];\n        uVar15 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar20;\n        puVar8[0xb] = uVar19;\n        puVar8[0xc] = uVar15;\n        puVar16 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar15 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar15;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar15 = *puVar4;\n      uVar19 = puVar4[-1];\n      puVar8[7] = puVar16;\n      puVar8[9] = uVar15;\n      puVar16 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar19;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar24 != puVar16);\nLAB_001a5a78:\n    puVar26 = puVar26 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }\n  while (puVar18 != puVar24) {\n    puVar14 = puVar18 + 7;\n    puVar4 = puVar18 + 9;\n    puVar18 = puVar18 + 0xe;\n    if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar28 + 0x28cb34))();\n    }\n  }\n  if (puVar12 != (undefined4 *)0x0) {\n    (**(code **)(pcVar28 + 0x28cb34))(puVar12);\n  }\n  *puVar7 = puVar3;\n  puVar7[1] = puVar26;\n  puVar7[2] = iVar6;\n  return;\n}\n\n" comment comment comment comment comment comment comment (declaration "void __thiscall\ngold::Output_data_dynamic::Dynamic_entry::write<32,_true>\n          (Dynamic_entry *this,uchar *pov,Stringpool *pool)\n\n{\n  uint uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_data_dynamic::Dynamic_entry::" identifier : : identifier : : identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>\n          (Dynamic_entry *this,uchar *pov,Stringpool *pool)\n\n{\n  uint" (function_declarator "_true>\n          (Dynamic_entry *this,uchar *pov,Stringpool *pool)" identifier (ERROR ">" >) (parameter_list "(Dynamic_entry *this,uchar *pov,Stringpool *pool)" ( (parameter_declaration "Dynamic_entry *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "uchar *pov" type_identifier (pointer_declarator "*pov" * identifier)) , (parameter_declaration "Stringpool *pool" type_identifier (pointer_declarator "*pool" * identifier)) ))) { identifier) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "DT DVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "undefined4 uVar23;" type_identifier identifier ;) (declaration "undefined4 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "undefined4 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "undefined *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (expression_statement "uVar1 = this->offset_ + 5;" (assignment_expression "uVar1 = this->offset_ + 5" identifier = (binary_expression "this->offset_ + 5" (field_expression "this->offset_" identifier -> field_identifier) + number_literal)) ;) (if_statement "if (uVar1 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x001a4f94 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&Position_dependent_options::default_options_.sort_common_.user_set_via_option +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)))();\n    return;\n  }" if (parenthesized_expression "(uVar1 < 5)" ( (binary_expression "uVar1 < 5" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x001a4f94 */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(&Position_dependent_options::default_options_.sort_common_.user_set_via_option +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)))();\n    return;\n  }" { comment comment (expression_statement "(*(code *)(&Position_dependent_options::default_options_.sort_common_.user_set_via_option +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)))();" (call_expression "(*(code *)(&Position_dependent_options::default_options_.sort_common_.user_set_via_option +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)))()" (parenthesized_expression "(*(code *)(&Position_dependent_options::default_options_.sort_common_.user_set_via_option +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)))" ( (pointer_expression "*(code *)(&Position_dependent_options::default_options_.sort_common_.user_set_via_option +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0))" * (cast_expression "(code *)(&Position_dependent_options::default_options_.sort_common_.user_set_via_option +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&Position_dependent_options::default_options_.sort_common_.user_set_via_option +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0))" ( (binary_expression "&Position_dependent_options::default_options_.sort_common_.user_set_via_option +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" (field_expression "&Position_dependent_options::default_options_.sort_common_.user_set_via_option" (field_expression "&Position_dependent_options::default_options_.sort_common_" (pointer_expression "&Position_dependent_options" & identifier) (ERROR "::default_options_" : : identifier) . field_identifier) . field_identifier) + (pointer_expression "*(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" * (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0" (binary_expression "PTR_s_alize_xindex_004323b4 + uVar1 * 4" identifier + (binary_expression "uVar1 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((int)(((this->u_).sym)->got_offsets_).got_offset_ < 0) {\n    DVar5 = this->tag_;\n    *(uint *)(pov + 4) = this->offset_ + (((this->u_).sym)->u2_).shndx;\n    *(DT *)pov = DVar5;\n    return;\n  }" if (parenthesized_expression "((int)(((this->u_).sym)->got_offsets_).got_offset_ < 0)" ( (binary_expression "(int)(((this->u_).sym)->got_offsets_).got_offset_ < 0" (cast_expression "(int)(((this->u_).sym)->got_offsets_).got_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "(((this->u_).sym)->got_offsets_).got_offset_" (parenthesized_expression "(((this->u_).sym)->got_offsets_)" ( (field_expression "((this->u_).sym)->got_offsets_" (parenthesized_expression "((this->u_).sym)" ( (field_expression "(this->u_).sym" (parenthesized_expression "(this->u_)" ( (field_expression "this->u_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier)) < number_literal) )) (compound_statement "{\n    DVar5 = this->tag_;\n    *(uint *)(pov + 4) = this->offset_ + (((this->u_).sym)->u2_).shndx;\n    *(DT *)pov = DVar5;\n    return;\n  }" { (expression_statement "DVar5 = this->tag_;" (assignment_expression "DVar5 = this->tag_" identifier = (field_expression "this->tag_" identifier -> field_identifier)) ;) (expression_statement "*(uint *)(pov + 4) = this->offset_ + (((this->u_).sym)->u2_).shndx;" (assignment_expression "*(uint *)(pov + 4) = this->offset_ + (((this->u_).sym)->u2_).shndx" (pointer_expression "*(uint *)(pov + 4)" * (cast_expression "(uint *)(pov + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pov + 4)" ( (binary_expression "pov + 4" identifier + number_literal) )))) = (binary_expression "this->offset_ + (((this->u_).sym)->u2_).shndx" (field_expression "this->offset_" identifier -> field_identifier) + (field_expression "(((this->u_).sym)->u2_).shndx" (parenthesized_expression "(((this->u_).sym)->u2_)" ( (field_expression "((this->u_).sym)->u2_" (parenthesized_expression "((this->u_).sym)" ( (field_expression "(this->u_).sym" (parenthesized_expression "(this->u_)" ( (field_expression "this->u_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "*(DT *)pov = DVar5;" (assignment_expression "*(DT *)pov = DVar5" (pointer_expression "*(DT *)pov" * (cast_expression "(DT *)pov" ( (type_descriptor "DT *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "puVar17 = PTR_s_alize_xindex_004323b4 + 0x7850;" (assignment_expression "puVar17 = PTR_s_alize_xindex_004323b4 + 0x7850" identifier = (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7850" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar17);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar17)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar17)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "piVar13 = (int *)&DAT_00000069;" (assignment_expression "piVar13 = (int *)&DAT_00000069" identifier = (cast_expression "(int *)&DAT_00000069" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000069" & identifier))) ;) (expression_statement "piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec);" (assignment_expression "piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec)" identifier = (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0x5cec)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) )))) ;) (expression_statement "puVar27 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar27 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar17 + 0x78f8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar17 + 0x78f8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9,0x69,puVar17 + 0x78f8)" ( identifier , number_literal , (binary_expression "puVar17 + 0x78f8" identifier + number_literal) ))) ;) (expression_statement "uVar1 = piVar9[3];" (assignment_expression "uVar1 = piVar9[3]" identifier = (subscript_expression "piVar9[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar1 + 5 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001a5190. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(puVar27 +\n              *(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();\n    return;\n  }" if (parenthesized_expression "(uVar1 + 5 < 5)" ( (binary_expression "uVar1 + 5 < 5" (binary_expression "uVar1 + 5" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001a5190. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(code *)(puVar27 +\n              *(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();\n    return;\n  }" { comment comment (expression_statement "(*(code *)(puVar27 +\n              *(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();" (call_expression "(*(code *)(puVar27 +\n              *(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))()" (parenthesized_expression "(*(code *)(puVar27 +\n              *(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))" ( (pointer_expression "*(code *)(puVar27 +\n              *(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090)" * (cast_expression "(code *)(puVar27 +\n              *(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 +\n              *(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090)" ( (binary_expression "puVar27 +\n              *(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090" (binary_expression "puVar27 +\n              *(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" * (cast_expression "(int *)(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" ( (binary_expression "*(int *)(puVar27 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4" (binary_expression "*(int *)(puVar27 + 0x28d274) + 0x5de4" (pointer_expression "*(int *)(puVar27 + 0x28d274)" * (cast_expression "(int *)(puVar27 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 0x28d274)" ( (binary_expression "puVar27 + 0x28d274" identifier + number_literal) )))) + number_literal) + (binary_expression "(uVar1 + 5) * 4" (parenthesized_expression "(uVar1 + 5)" ( (binary_expression "uVar1 + 5" identifier + number_literal) )) * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (*(int *)(iVar6 + 0x20) < 0) {\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);\n    uVar10 = piVar9[2];\n    piVar13[1] = 0;\n    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;\n    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x20) < 0)" ( (binary_expression "*(int *)(iVar6 + 0x20) < 0" (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);\n    uVar10 = piVar9[2];\n    piVar13[1] = 0;\n    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;\n    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }" { (expression_statement "uVar2 = uVar1 + *(int *)(iVar6 + 0xc);" (assignment_expression "uVar2 = uVar1 + *(int *)(iVar6 + 0xc)" identifier = (binary_expression "uVar1 + *(int *)(iVar6 + 0xc)" identifier + (pointer_expression "*(int *)(iVar6 + 0xc)" * (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);" (assignment_expression "uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8)" identifier = (binary_expression "(uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8)" (call_expression "(uint)(uVar2 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) ))) + (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))))) ;) (expression_statement "uVar10 = piVar9[2];" (assignment_expression "uVar10 = piVar9[2]" identifier = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "piVar13[1] = 0;" (assignment_expression "piVar13[1] = 0" (subscript_expression "piVar13[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar13[3]" identifier [ number_literal ]) = (binary_expression "(((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10)" ( (binary_expression "(uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10" (binary_expression "(uVar1 >> 0x10) << 0x18" (parenthesized_expression "(uVar1 >> 0x10)" ( (binary_expression "uVar1 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar1 >> 0x18) << 0x10" (parenthesized_expression "(uVar1 >> 0x18)" ( (binary_expression "uVar1 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff)" ( (binary_expression "(uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff" (binary_expression "(uVar1 & 0xff) << 8" (parenthesized_expression "(uVar1 & 0xff)" ( (binary_expression "uVar1 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar1 >> 8 & 0xff" (binary_expression "uVar1 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar13[2]" identifier [ number_literal ]) = (binary_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10)" ( (binary_expression "(uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10" (binary_expression "(uVar2 >> 0x10) << 0x18" (parenthesized_expression "(uVar2 >> 0x10)" ( (binary_expression "uVar2 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar2 >> 0x18) << 0x10" (parenthesized_expression "(uVar2 >> 0x18)" ( (binary_expression "uVar2 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff)" ( (binary_expression "(uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff" (binary_expression "(uVar2 & 0xff) << 8" (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "*piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar13" * identifier) = (binary_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10)" ( (binary_expression "(uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10" (binary_expression "(uVar10 >> 0x10) << 0x18" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar10 >> 0x18) << 0x10" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff)" ( (binary_expression "(uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff" (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *(int *)(puVar27 + 0x28d274) + 0x7850;" (assignment_expression "iVar6 = *(int *)(puVar27 + 0x28d274) + 0x7850" identifier = (binary_expression "*(int *)(puVar27 + 0x28d274) + 0x7850" (pointer_expression "*(int *)(puVar27 + 0x28d274)" * (cast_expression "(int *)(puVar27 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 0x28d274)" ( (binary_expression "puVar27 + 0x28d274" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar27 + 0x28d284))(*(int *)(puVar27 + 0x28d274) + -0x4fe0,0xc5,iVar6);" (call_expression "(**(code **)(puVar27 + 0x28d284))(*(int *)(puVar27 + 0x28d274) + -0x4fe0,0xc5,iVar6)" (parenthesized_expression "(**(code **)(puVar27 + 0x28d284))" ( (pointer_expression "**(code **)(puVar27 + 0x28d284)" * (pointer_expression "*(code **)(puVar27 + 0x28d284)" * (cast_expression "(code **)(puVar27 + 0x28d284)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0x28d284)" ( (binary_expression "puVar27 + 0x28d284" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar27 + 0x28d274) + -0x4fe0,0xc5,iVar6)" ( (binary_expression "*(int *)(puVar27 + 0x28d274) + -0x4fe0" (pointer_expression "*(int *)(puVar27 + 0x28d274)" * (cast_expression "(int *)(puVar27 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 0x28d274)" ( (binary_expression "puVar27 + 0x28d274" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (expression_statement "puVar14 = (undefined4 *)&DAT_00000069;" (assignment_expression "puVar14 = (undefined4 *)&DAT_00000069" identifier = (cast_expression "(undefined4 *)&DAT_00000069" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000069" & identifier))) ;) (expression_statement "pcVar28 = *(code **)(puVar27 + 0x28d284);" (assignment_expression "pcVar28 = *(code **)(puVar27 + 0x28d284)" identifier = (pointer_expression "*(code **)(puVar27 + 0x28d284)" * (cast_expression "(code **)(puVar27 + 0x28d284)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0x28d284)" ( (binary_expression "puVar27 + 0x28d284" identifier + number_literal) ))))) ;) (expression_statement "piVar9 = (int *)(*(int *)(puVar27 + 0x28d274) + -0x5cec);" (assignment_expression "piVar9 = (int *)(*(int *)(puVar27 + 0x28d274) + -0x5cec)" identifier = (cast_expression "(int *)(*(int *)(puVar27 + 0x28d274) + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar27 + 0x28d274) + -0x5cec)" ( (binary_expression "*(int *)(puVar27 + 0x28d274) + -0x5cec" (pointer_expression "*(int *)(puVar27 + 0x28d274)" * (cast_expression "(int *)(puVar27 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 0x28d274)" ( (binary_expression "puVar27 + 0x28d274" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)(piVar9,0x69,iVar6 + 0x78f8);" (call_expression "(*pcVar28)(piVar9,0x69,iVar6 + 0x78f8)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(piVar9,0x69,iVar6 + 0x78f8)" ( identifier , number_literal , (binary_expression "iVar6 + 0x78f8" identifier + number_literal) ))) ;) (expression_statement "uVar1 = piVar9[3];" (assignment_expression "uVar1 = piVar9[3]" identifier = (subscript_expression "piVar9[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar1 + 5 < 5) {\n                    /* WARNING: Could not recover jumptable at 0x001a5348. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();\n    return;\n  }" if (parenthesized_expression "(uVar1 + 5 < 5)" ( (binary_expression "uVar1 + 5 < 5" (binary_expression "uVar1 + 5" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001a5348. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();\n    return;\n  }" { comment comment (expression_statement "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();" (call_expression "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))()" (parenthesized_expression "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))" ( (pointer_expression "*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8)" * (parenthesized_expression "(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8)" ( (binary_expression "pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8" (binary_expression "pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" * (cast_expression "(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" ( (binary_expression "*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4" (binary_expression "*(int *)(pcVar28 + 0x28d0bc) + 0x5df8" (pointer_expression "*(int *)(pcVar28 + 0x28d0bc)" * (cast_expression "(int *)(pcVar28 + 0x28d0bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x28d0bc)" ( (binary_expression "pcVar28 + 0x28d0bc" identifier + number_literal) )))) + number_literal) + (binary_expression "(uVar1 + 5) * 4" (parenthesized_expression "(uVar1 + 5)" ( (binary_expression "uVar1 + 5" identifier + number_literal) )) * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (*(int *)(iVar6 + 0x20) < 0) {\n    iVar11 = *(int *)(iVar6 + 8);\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    iVar6 = piVar9[2];\n    *puVar14 = 0;\n    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;\n    puVar14[1] = iVar6;\n    puVar14[3] = uVar2;\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x20) < 0)" ( (binary_expression "*(int *)(iVar6 + 0x20) < 0" (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    iVar11 = *(int *)(iVar6 + 8);\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    iVar6 = piVar9[2];\n    *puVar14 = 0;\n    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;\n    puVar14[1] = iVar6;\n    puVar14[3] = uVar2;\n    return;\n  }" { (expression_statement "iVar11 = *(int *)(iVar6 + 8);" (assignment_expression "iVar11 = *(int *)(iVar6 + 8)" identifier = (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = uVar1 + *(int *)(iVar6 + 0xc);" (assignment_expression "uVar2 = uVar1 + *(int *)(iVar6 + 0xc)" identifier = (binary_expression "uVar1 + *(int *)(iVar6 + 0xc)" identifier + (pointer_expression "*(int *)(iVar6 + 0xc)" * (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "iVar6 = piVar9[2];" (assignment_expression "iVar6 = piVar9[2]" identifier = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;" (assignment_expression "puVar14[2] = (uint)(uVar2 < uVar1) + iVar11" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar2 < uVar1) + iVar11" (call_expression "(uint)(uVar2 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) ))) + identifier)) ;) (expression_statement "puVar14[1] = iVar6;" (assignment_expression "puVar14[1] = iVar6" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[3] = uVar2;" (assignment_expression "puVar14[3] = uVar2" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *(int *)(pcVar28 + 0x28d0bc) + 0x7850;" (assignment_expression "iVar6 = *(int *)(pcVar28 + 0x28d0bc) + 0x7850" identifier = (binary_expression "*(int *)(pcVar28 + 0x28d0bc) + 0x7850" (pointer_expression "*(int *)(pcVar28 + 0x28d0bc)" * (cast_expression "(int *)(pcVar28 + 0x28d0bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x28d0bc)" ( (binary_expression "pcVar28 + 0x28d0bc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar28 + 0x28d0cc))(*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0,0xc5,iVar6);" (call_expression "(**(code **)(pcVar28 + 0x28d0cc))(*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0,0xc5,iVar6)" (parenthesized_expression "(**(code **)(pcVar28 + 0x28d0cc))" ( (pointer_expression "**(code **)(pcVar28 + 0x28d0cc)" * (pointer_expression "*(code **)(pcVar28 + 0x28d0cc)" * (cast_expression "(code **)(pcVar28 + 0x28d0cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x28d0cc)" ( (binary_expression "pcVar28 + 0x28d0cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0,0xc5,iVar6)" ( (binary_expression "*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0" (pointer_expression "*(int *)(pcVar28 + 0x28d0bc)" * (cast_expression "(int *)(pcVar28 + 0x28d0bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x28d0bc)" ( (binary_expression "pcVar28 + 0x28d0bc" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (expression_statement "uVar1 = 0x69;" (assignment_expression "uVar1 = 0x69" identifier = number_literal) ;) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0x28d0cc);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0x28d0cc)" identifier = (pointer_expression "*(code **)(pcVar28 + 0x28d0cc)" * (cast_expression "(code **)(pcVar28 + 0x28d0cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x28d0cc)" ( (binary_expression "pcVar28 + 0x28d0cc" identifier + number_literal) ))))) ;) (expression_statement "piVar9 = (int *)(*(int *)(pcVar28 + 0x28d0bc) + -0x5cec);" (assignment_expression "piVar9 = (int *)(*(int *)(pcVar28 + 0x28d0bc) + -0x5cec)" identifier = (cast_expression "(int *)(*(int *)(pcVar28 + 0x28d0bc) + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0x28d0bc) + -0x5cec)" ( (binary_expression "*(int *)(pcVar28 + 0x28d0bc) + -0x5cec" (pointer_expression "*(int *)(pcVar28 + 0x28d0bc)" * (cast_expression "(int *)(pcVar28 + 0x28d0bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x28d0bc)" ( (binary_expression "pcVar28 + 0x28d0bc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar29)(piVar9,0x69,iVar6 + 0x78f8);" (call_expression "(*pcVar29)(piVar9,0x69,iVar6 + 0x78f8)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(piVar9,0x69,iVar6 + 0x78f8)" ( identifier , number_literal , (binary_expression "iVar6 + 0x78f8" identifier + number_literal) ))) ;) (if_statement "if (uVar1 == 0) {\n    return;\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar7 = (undefined4 *)piVar9[1];" (assignment_expression "puVar7 = (undefined4 *)piVar9[1]" identifier = (cast_expression "(undefined4 *)piVar9[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar18 = (undefined4 *)&DAT_aaaaaaab;" (assignment_expression "puVar18 = (undefined4 *)&DAT_aaaaaaab" identifier = (cast_expression "(undefined4 *)&DAT_aaaaaaab" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_aaaaaaab" & identifier))) ;) (expression_statement "puVar14 = puVar7;" (assignment_expression "puVar14 = puVar7" identifier = identifier) ;) (expression_statement "uVar2 = uVar1;" (assignment_expression "uVar2 = uVar1" identifier = identifier) ;) (if_statement "if (uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)) {\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);\n    piVar9[1] = (int)(puVar7 + uVar1 * 6);\n    return;\n  }" if (parenthesized_expression "(uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555))" ( (binary_expression "uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)" identifier <= (call_expression "(uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)" ( (binary_expression "(piVar9[2] - (int)puVar7 >> 3) * -0x55555555" (parenthesized_expression "(piVar9[2] - (int)puVar7 >> 3)" ( (binary_expression "piVar9[2] - (int)puVar7 >> 3" (binary_expression "piVar9[2] - (int)puVar7" (subscript_expression "piVar9[2]" identifier [ number_literal ]) - (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) )))) )) (compound_statement "{\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);\n    piVar9[1] = (int)(puVar7 + uVar1 * 6);\n    return;\n  }" { (do_statement "do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);" do (compound_statement "{\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    }" { (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = uVar2 - 1;" (assignment_expression "uVar2 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) ;) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[4] = 0;" (assignment_expression "puVar14[4] = 0" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14 = puVar14 + 6;" (assignment_expression "puVar14 = puVar14 + 6" identifier = (binary_expression "puVar14 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) ;) (expression_statement "piVar9[1] = (int)(puVar7 + uVar1 * 6);" (assignment_expression "piVar9[1] = (int)(puVar7 + uVar1 * 6)" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = (cast_expression "(int)(puVar7 + uVar1 * 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar7 + uVar1 * 6)" ( (binary_expression "puVar7 + uVar1 * 6" identifier + (binary_expression "uVar1 * 6" identifier * number_literal)) )))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3);" (assignment_expression "puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3)" identifier = (cast_expression "(undefined4 *)((int)puVar7 - iVar6 >> 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 - iVar6 >> 3)" ( (binary_expression "(int)puVar7 - iVar6 >> 3" (binary_expression "(int)puVar7 - iVar6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal) )))) ;) (expression_statement "uVar2 = (int)puVar14 * -0x55555555;" (assignment_expression "uVar2 = (int)puVar14 * -0x55555555" identifier = (binary_expression "(int)puVar14 * -0x55555555" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU) {\n    uVar10 = uVar2;\n    if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }\n    uVar10 = uVar10 + uVar2;\n    iVar11 = -0x10;\n    if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }\n    puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar11);\n    puVar14 = (undefined4 *)((int)puVar18 + ((int)puVar7 - iVar6));\n    uVar10 = uVar1;\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);\n    puVar24 = (undefined4 *)piVar9[1];\n    puVar12 = (undefined4 *)*piVar9;\n    puVar7 = puVar18;\n    for (puVar14 = puVar12; puVar14 != puVar24; puVar14 = puVar14 + 6) {\n      uVar22 = puVar14[1];\n      uVar21 = puVar14[2];\n      uVar20 = puVar14[3];\n      uVar19 = puVar14[4];\n      uVar15 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar22;\n      puVar7[2] = uVar21;\n      puVar7[3] = uVar20;\n      puVar7[4] = uVar19;\n      puVar7[5] = uVar15;\n      puVar7 = puVar7 + 6;\n    }\n    if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar29 + 0x28cd40))();\n    }\n    *piVar9 = (int)puVar18;\n    piVar9[2] = (int)puVar18 + iVar11;\n    piVar9[1] = (int)(puVar18 + (uVar1 + uVar2) * 6);\n    return;\n  }" if (parenthesized_expression "(uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU)" ( (binary_expression "uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU" identifier <= (binary_expression "(int)puVar14 * 0x55555555 + 0xaaaaaaaU" (binary_expression "(int)puVar14 * 0x55555555" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) )) (compound_statement "{\n    uVar10 = uVar2;\n    if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }\n    uVar10 = uVar10 + uVar2;\n    iVar11 = -0x10;\n    if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }\n    puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar11);\n    puVar14 = (undefined4 *)((int)puVar18 + ((int)puVar7 - iVar6));\n    uVar10 = uVar1;\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);\n    puVar24 = (undefined4 *)piVar9[1];\n    puVar12 = (undefined4 *)*piVar9;\n    puVar7 = puVar18;\n    for (puVar14 = puVar12; puVar14 != puVar24; puVar14 = puVar14 + 6) {\n      uVar22 = puVar14[1];\n      uVar21 = puVar14[2];\n      uVar20 = puVar14[3];\n      uVar19 = puVar14[4];\n      uVar15 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar22;\n      puVar7[2] = uVar21;\n      puVar7[3] = uVar20;\n      puVar7[4] = uVar19;\n      puVar7[5] = uVar15;\n      puVar7 = puVar7 + 6;\n    }\n    if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar29 + 0x28cd40))();\n    }\n    *piVar9 = (int)puVar18;\n    piVar9[2] = (int)puVar18 + iVar11;\n    piVar9[1] = (int)(puVar18 + (uVar1 + uVar2) * 6);\n    return;\n  }" { (expression_statement "uVar10 = uVar2;" (assignment_expression "uVar10 = uVar2" identifier = identifier) ;) (if_statement "if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }" if (parenthesized_expression "(uVar2 <= uVar1)" ( (binary_expression "uVar2 <= uVar1" identifier <= identifier) )) (compound_statement "{\n      uVar10 = uVar1;\n    }" { (expression_statement "uVar10 = uVar1;" (assignment_expression "uVar10 = uVar1" identifier = identifier) ;) })) (expression_statement "uVar10 = uVar10 + uVar2;" (assignment_expression "uVar10 = uVar10 + uVar2" identifier = (binary_expression "uVar10 + uVar2" identifier + identifier)) ;) (expression_statement "iVar11 = -0x10;" (assignment_expression "iVar11 = -0x10" identifier = number_literal) ;) (if_statement "if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }" if (parenthesized_expression "(uVar2 <= uVar10)" ( (binary_expression "uVar2 <= uVar10" identifier <= identifier) )) (compound_statement "{\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }" { (if_statement "if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }" if (parenthesized_expression "(0xaaaaaaa < uVar10)" ( (binary_expression "0xaaaaaaa < uVar10" number_literal < identifier) )) (compound_statement "{\n        uVar10 = 0xaaaaaaa;\n      }" { (expression_statement "uVar10 = 0xaaaaaaa;" (assignment_expression "uVar10 = 0xaaaaaaa" identifier = number_literal) ;) })) (expression_statement "iVar11 = uVar10 * 0x18;" (assignment_expression "iVar11 = uVar10 * 0x18" identifier = (binary_expression "uVar10 * 0x18" identifier * number_literal)) ;) })) (expression_statement "puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar11);" (assignment_expression "puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar11)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar29 + 0x28cdf0))(iVar11)" (parenthesized_expression "(**(code **)(pcVar29 + 0x28cdf0))" ( (pointer_expression "**(code **)(pcVar29 + 0x28cdf0)" * (pointer_expression "*(code **)(pcVar29 + 0x28cdf0)" * (cast_expression "(code **)(pcVar29 + 0x28cdf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28cdf0)" ( (binary_expression "pcVar29 + 0x28cdf0" identifier + number_literal) ))))) )) (argument_list "(iVar11)" ( identifier ))))) ;) (expression_statement "puVar14 = (undefined4 *)((int)puVar18 + ((int)puVar7 - iVar6));" (assignment_expression "puVar14 = (undefined4 *)((int)puVar18 + ((int)puVar7 - iVar6))" identifier = (cast_expression "(undefined4 *)((int)puVar18 + ((int)puVar7 - iVar6))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + ((int)puVar7 - iVar6))" ( (binary_expression "(int)puVar18 + ((int)puVar7 - iVar6)" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)puVar7 - iVar6)" ( (binary_expression "(int)puVar7 - iVar6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) )))) ;) (expression_statement "uVar10 = uVar1;" (assignment_expression "uVar10 = uVar1" identifier = identifier) ;) (do_statement "do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);" do (compound_statement "{\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    }" { (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[4] = 0;" (assignment_expression "puVar14[4] = 0" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14 = puVar14 + 6;" (assignment_expression "puVar14 = puVar14 + 6" identifier = (binary_expression "puVar14 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) ;) (expression_statement "puVar24 = (undefined4 *)piVar9[1];" (assignment_expression "puVar24 = (undefined4 *)piVar9[1]" identifier = (cast_expression "(undefined4 *)piVar9[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar12 = (undefined4 *)*piVar9;" (assignment_expression "puVar12 = (undefined4 *)*piVar9" identifier = (cast_expression "(undefined4 *)*piVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "puVar7 = puVar18;" (assignment_expression "puVar7 = puVar18" identifier = identifier) ;) (for_statement "for (puVar14 = puVar12; puVar14 != puVar24; puVar14 = puVar14 + 6) {\n      uVar22 = puVar14[1];\n      uVar21 = puVar14[2];\n      uVar20 = puVar14[3];\n      uVar19 = puVar14[4];\n      uVar15 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar22;\n      puVar7[2] = uVar21;\n      puVar7[3] = uVar20;\n      puVar7[4] = uVar19;\n      puVar7[5] = uVar15;\n      puVar7 = puVar7 + 6;\n    }" for ( (assignment_expression "puVar14 = puVar12" identifier = identifier) ; (binary_expression "puVar14 != puVar24" identifier != identifier) ; (assignment_expression "puVar14 = puVar14 + 6" identifier = (binary_expression "puVar14 + 6" identifier + number_literal)) ) (compound_statement "{\n      uVar22 = puVar14[1];\n      uVar21 = puVar14[2];\n      uVar20 = puVar14[3];\n      uVar19 = puVar14[4];\n      uVar15 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar22;\n      puVar7[2] = uVar21;\n      puVar7[3] = uVar20;\n      puVar7[4] = uVar19;\n      puVar7[5] = uVar15;\n      puVar7 = puVar7 + 6;\n    }" { (expression_statement "uVar22 = puVar14[1];" (assignment_expression "uVar22 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = puVar14[2];" (assignment_expression "uVar21 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar14[3];" (assignment_expression "uVar20 = puVar14[3]" identifier = (subscript_expression "puVar14[3]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar14[4];" (assignment_expression "uVar19 = puVar14[4]" identifier = (subscript_expression "puVar14[4]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar14[5];" (assignment_expression "uVar15 = puVar14[5]" identifier = (subscript_expression "puVar14[5]" identifier [ number_literal ])) ;) (expression_statement "*puVar7 = *puVar14;" (assignment_expression "*puVar7 = *puVar14" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar7[1] = uVar22;" (assignment_expression "puVar7[1] = uVar22" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar21;" (assignment_expression "puVar7[2] = uVar21" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = uVar20;" (assignment_expression "puVar7[3] = uVar20" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[4] = uVar19;" (assignment_expression "puVar7[4] = uVar19" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[5] = uVar15;" (assignment_expression "puVar7[5] = uVar15" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = puVar7 + 6;" (assignment_expression "puVar7 = puVar7 + 6" identifier = (binary_expression "puVar7 + 6" identifier + number_literal)) ;) })) (if_statement "if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar29 + 0x28cd40))();\n    }" if (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar29 + 0x28cd40))();\n    }" { (expression_statement "(**(code **)(pcVar29 + 0x28cd40))();" (call_expression "(**(code **)(pcVar29 + 0x28cd40))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x28cd40))" ( (pointer_expression "**(code **)(pcVar29 + 0x28cd40)" * (pointer_expression "*(code **)(pcVar29 + 0x28cd40)" * (cast_expression "(code **)(pcVar29 + 0x28cd40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28cd40)" ( (binary_expression "pcVar29 + 0x28cd40" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "*piVar9 = (int)puVar18;" (assignment_expression "*piVar9 = (int)puVar18" (pointer_expression "*piVar9" * identifier) = (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar9[2] = (int)puVar18 + iVar11;" (assignment_expression "piVar9[2] = (int)puVar18 + iVar11" (subscript_expression "piVar9[2]" identifier [ number_literal ]) = (binary_expression "(int)puVar18 + iVar11" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "piVar9[1] = (int)(puVar18 + (uVar1 + uVar2) * 6);" (assignment_expression "piVar9[1] = (int)(puVar18 + (uVar1 + uVar2) * 6)" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = (cast_expression "(int)(puVar18 + (uVar1 + uVar2) * 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar18 + (uVar1 + uVar2) * 6)" ( (binary_expression "puVar18 + (uVar1 + uVar2) * 6" identifier + (binary_expression "(uVar1 + uVar2) * 6" (parenthesized_expression "(uVar1 + uVar2)" ( (binary_expression "uVar1 + uVar2" identifier + identifier) )) * number_literal)) )))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar28 = *(code **)(pcVar29 + 0x28cf34);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + 0x28cf34)" identifier = (pointer_expression "*(code **)(pcVar29 + 0x28cf34)" * (cast_expression "(code **)(pcVar29 + 0x28cf34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28cf34)" ( (binary_expression "pcVar29 + 0x28cf34" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)(*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c);" (assignment_expression "puVar7 = (undefined4 *)(*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c)" ( (binary_expression "*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c" (pointer_expression "*(int *)(pcVar29 + 0x28ccc0)" * (cast_expression "(int *)(pcVar29 + 0x28ccc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x28ccc0)" ( (binary_expression "pcVar29 + 0x28ccc0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar24 = (undefined4 *)puVar7[1];" (assignment_expression "puVar24 = (undefined4 *)puVar7[1]" identifier = (cast_expression "(undefined4 *)puVar7[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar12 = (undefined4 *)*puVar7;" (assignment_expression "puVar12 = (undefined4 *)*puVar7" identifier = (cast_expression "(undefined4 *)*puVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "iVar6 = (int)puVar24 - (int)puVar12 >> 3;" (assignment_expression "iVar6 = (int)puVar24 - (int)puVar12 >> 3" identifier = (binary_expression "(int)puVar24 - (int)puVar12 >> 3" (binary_expression "(int)puVar24 - (int)puVar12" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "uVar1 = iVar6 * -0x49249249;" (assignment_expression "uVar1 = iVar6 * -0x49249249" identifier = (binary_expression "iVar6 * -0x49249249" identifier * number_literal)) ;) (if_statement "if (uVar1 == 0) {\n    uVar2 = 1;\nLAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;\n  }\n  else {\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar26 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar2 = 1;\nLAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;\n  }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (labeled_statement "LAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;" statement_identifier : (expression_statement "iVar6 = uVar2 * 0x38;" (assignment_expression "iVar6 = uVar2 * 0x38" identifier = (binary_expression "uVar2 * 0x38" identifier * number_literal)) ;)) }) (else_clause "else {\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar26 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" else (compound_statement "{\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar26 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" { (expression_statement "uVar2 = iVar6 * 0x6db6db6e;" (assignment_expression "uVar2 = iVar6 * 0x6db6db6e" identifier = (binary_expression "iVar6 * 0x6db6db6e" identifier * number_literal)) ;) (if_statement "if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar26 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" if (parenthesized_expression "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) )) (compound_statement "{\n      iVar6 = -0x20;\n    }" { (expression_statement "iVar6 = -0x20;" (assignment_expression "iVar6 = -0x20" identifier = number_literal) ;) }) (else_clause "else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar26 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" else (compound_statement "{\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar26 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" { (expression_statement "iVar6 = -0x20;" (assignment_expression "iVar6 = -0x20" identifier = number_literal) ;) (if_statement "if (uVar2 < 0x4924925) {\n        puVar26 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }" if (parenthesized_expression "(uVar2 < 0x4924925)" ( (binary_expression "uVar2 < 0x4924925" identifier < number_literal) )) (compound_statement "{\n        puVar26 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }" { (expression_statement "puVar26 = (undefined4 *)&DAT_00000038;" (assignment_expression "puVar26 = (undefined4 *)&DAT_00000038" identifier = (cast_expression "(undefined4 *)&DAT_00000038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000038" & identifier))) ;) (if_statement "if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = (undefined4 *)0x0;" (assignment_expression "puVar3 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_001a57f4;" goto statement_identifier ;) })) (goto_statement "goto LAB_001a5b4c;" goto statement_identifier ;) })) }))) }))) (expression_statement "puVar3 = (undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar6);" (assignment_expression "puVar3 = (undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar6)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar28 + 0x28cbe4))(iVar6)" (parenthesized_expression "(**(code **)(pcVar28 + 0x28cbe4))" ( (pointer_expression "**(code **)(pcVar28 + 0x28cbe4)" * (pointer_expression "*(code **)(pcVar28 + 0x28cbe4)" * (cast_expression "(code **)(pcVar28 + 0x28cbe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x28cbe4)" ( (binary_expression "pcVar28 + 0x28cbe4" identifier + number_literal) ))))) )) (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "iVar6 = (int)puVar3 + iVar6;" (assignment_expression "iVar6 = (int)puVar3 + iVar6" identifier = (binary_expression "(int)puVar3 + iVar6" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "puVar26 = puVar3 + 0xe;" (assignment_expression "puVar26 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + number_literal)) ;) (labeled_statement "LAB_001a57f4:\n  puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));" statement_identifier : (expression_statement "puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));" (assignment_expression "puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12))" identifier = (cast_expression "(undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + ((int)puVar14 - (int)puVar12))" ( (binary_expression "(int)puVar3 + ((int)puVar14 - (int)puVar12)" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)puVar14 - (int)puVar12)" ( (binary_expression "(int)puVar14 - (int)puVar12" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;)) (expression_statement "uVar23 = puVar18[1];" (assignment_expression "uVar23 = puVar18[1]" identifier = (subscript_expression "puVar18[1]" identifier [ number_literal ])) ;) (expression_statement "puVar8 = puVar18 + 9;" (assignment_expression "puVar8 = puVar18 + 9" identifier = (binary_expression "puVar18 + 9" identifier + number_literal)) ;) (expression_statement "uVar22 = puVar18[2];" (assignment_expression "uVar22 = puVar18[2]" identifier = (subscript_expression "puVar18[2]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = puVar18[3];" (assignment_expression "uVar21 = puVar18[3]" identifier = (subscript_expression "puVar18[3]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar18[4];" (assignment_expression "uVar20 = puVar18[4]" identifier = (subscript_expression "puVar18[4]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar18[5];" (assignment_expression "uVar19 = puVar18[5]" identifier = (subscript_expression "puVar18[5]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar18[6];" (assignment_expression "uVar15 = puVar18[6]" identifier = (subscript_expression "puVar18[6]" identifier [ number_literal ])) ;) (expression_statement "puVar16 = (undefined4 *)puVar18[7];" (assignment_expression "puVar16 = (undefined4 *)puVar18[7]" identifier = (cast_expression "(undefined4 *)puVar18[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar18[7]" identifier [ number_literal ]))) ;) (expression_statement "*puVar4 = *puVar18;" (assignment_expression "*puVar4 = *puVar18" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "puVar4[1] = uVar23;" (assignment_expression "puVar4[1] = uVar23" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar22;" (assignment_expression "puVar4[2] = uVar22" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar21;" (assignment_expression "puVar4[3] = uVar21" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[4] = uVar20;" (assignment_expression "puVar4[4] = uVar20" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[5] = uVar19;" (assignment_expression "puVar4[5] = uVar19" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[6] = uVar15;" (assignment_expression "puVar4[6] = uVar15" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[7] = puVar4 + 9;" (assignment_expression "puVar4[7] = puVar4 + 9" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = (binary_expression "puVar4 + 9" identifier + number_literal)) ;) (if_statement "if (puVar16 == puVar8) {\n    uVar20 = puVar18[10];\n    uVar19 = puVar18[0xb];\n    uVar15 = puVar18[0xc];\n    puVar4[9] = *puVar8;\n    puVar4[10] = uVar20;\n    puVar4[0xb] = uVar19;\n    puVar4[0xc] = uVar15;\n  }\n  else {\n    uVar15 = puVar18[9];\n    puVar4[7] = puVar16;\n    puVar4[9] = uVar15;\n  }" if (parenthesized_expression "(puVar16 == puVar8)" ( (binary_expression "puVar16 == puVar8" identifier == identifier) )) (compound_statement "{\n    uVar20 = puVar18[10];\n    uVar19 = puVar18[0xb];\n    uVar15 = puVar18[0xc];\n    puVar4[9] = *puVar8;\n    puVar4[10] = uVar20;\n    puVar4[0xb] = uVar19;\n    puVar4[0xc] = uVar15;\n  }" { (expression_statement "uVar20 = puVar18[10];" (assignment_expression "uVar20 = puVar18[10]" identifier = (subscript_expression "puVar18[10]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar18[0xb];" (assignment_expression "uVar19 = puVar18[0xb]" identifier = (subscript_expression "puVar18[0xb]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar18[0xc];" (assignment_expression "uVar15 = puVar18[0xc]" identifier = (subscript_expression "puVar18[0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar4[9] = *puVar8;" (assignment_expression "puVar4[9] = *puVar8" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar4[10] = uVar20;" (assignment_expression "puVar4[10] = uVar20" (subscript_expression "puVar4[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[0xb] = uVar19;" (assignment_expression "puVar4[0xb] = uVar19" (subscript_expression "puVar4[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[0xc] = uVar15;" (assignment_expression "puVar4[0xc] = uVar15" (subscript_expression "puVar4[0xc]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    uVar15 = puVar18[9];\n    puVar4[7] = puVar16;\n    puVar4[9] = uVar15;\n  }" else (compound_statement "{\n    uVar15 = puVar18[9];\n    puVar4[7] = puVar16;\n    puVar4[9] = uVar15;\n  }" { (expression_statement "uVar15 = puVar18[9];" (assignment_expression "uVar15 = puVar18[9]" identifier = (subscript_expression "puVar18[9]" identifier [ number_literal ])) ;) (expression_statement "puVar4[7] = puVar16;" (assignment_expression "puVar4[7] = puVar16" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[9] = uVar15;" (assignment_expression "puVar4[9] = uVar15" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "uVar15 = puVar18[8];" (assignment_expression "uVar15 = puVar18[8]" identifier = (subscript_expression "puVar18[8]" identifier [ number_literal ])) ;) (expression_statement "puVar18[7] = puVar8;" (assignment_expression "puVar18[7] = puVar8" (subscript_expression "puVar18[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[8] = 0;" (assignment_expression "puVar18[8] = 0" (subscript_expression "puVar18[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[8] = uVar15;" (assignment_expression "puVar4[8] = uVar15" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar18 + 9) = 0;" (assignment_expression "*(undefined1 *)(puVar18 + 9) = 0" (pointer_expression "*(undefined1 *)(puVar18 + 9)" * (cast_expression "(undefined1 *)(puVar18 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 9)" ( (binary_expression "puVar18 + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puVar12 != puVar14) {\n    puVar26 = puVar12 + 9;\n    puVar18 = puVar3;\n    while( true ) {\n      uVar15 = puVar26[-4];\n      uVar22 = puVar26[-8];\n      uVar21 = puVar26[-7];\n      uVar20 = puVar26[-6];\n      uVar19 = puVar26[-5];\n      *puVar18 = puVar26[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar15;\n      uVar15 = puVar26[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar15;\n      if ((undefined4 *)puVar26[-2] == puVar26) {\n        uVar20 = puVar26[1];\n        uVar19 = puVar26[2];\n        uVar15 = puVar26[3];\n        puVar18[9] = *puVar26;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar15;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar26[-2];\n        puVar18[9] = *puVar26;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }\n      if (puVar14 == puVar26 + 5) break;\n      puVar26 = puVar26 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }\n    puVar26 = puVar3 + ((((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }" if (parenthesized_expression "(puVar12 != puVar14)" ( (binary_expression "puVar12 != puVar14" identifier != identifier) )) (compound_statement "{\n    puVar26 = puVar12 + 9;\n    puVar18 = puVar3;\n    while( true ) {\n      uVar15 = puVar26[-4];\n      uVar22 = puVar26[-8];\n      uVar21 = puVar26[-7];\n      uVar20 = puVar26[-6];\n      uVar19 = puVar26[-5];\n      *puVar18 = puVar26[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar15;\n      uVar15 = puVar26[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar15;\n      if ((undefined4 *)puVar26[-2] == puVar26) {\n        uVar20 = puVar26[1];\n        uVar19 = puVar26[2];\n        uVar15 = puVar26[3];\n        puVar18[9] = *puVar26;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar15;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar26[-2];\n        puVar18[9] = *puVar26;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }\n      if (puVar14 == puVar26 + 5) break;\n      puVar26 = puVar26 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }\n    puVar26 = puVar3 + ((((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }" { (expression_statement "puVar26 = puVar12 + 9;" (assignment_expression "puVar26 = puVar12 + 9" identifier = (binary_expression "puVar12 + 9" identifier + number_literal)) ;) (expression_statement "puVar18 = puVar3;" (assignment_expression "puVar18 = puVar3" identifier = identifier) ;) (while_statement "while( true ) {\n      uVar15 = puVar26[-4];\n      uVar22 = puVar26[-8];\n      uVar21 = puVar26[-7];\n      uVar20 = puVar26[-6];\n      uVar19 = puVar26[-5];\n      *puVar18 = puVar26[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar15;\n      uVar15 = puVar26[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar15;\n      if ((undefined4 *)puVar26[-2] == puVar26) {\n        uVar20 = puVar26[1];\n        uVar19 = puVar26[2];\n        uVar15 = puVar26[3];\n        puVar18[9] = *puVar26;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar15;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar26[-2];\n        puVar18[9] = *puVar26;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }\n      if (puVar14 == puVar26 + 5) break;\n      puVar26 = puVar26 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar15 = puVar26[-4];\n      uVar22 = puVar26[-8];\n      uVar21 = puVar26[-7];\n      uVar20 = puVar26[-6];\n      uVar19 = puVar26[-5];\n      *puVar18 = puVar26[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar15;\n      uVar15 = puVar26[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar15;\n      if ((undefined4 *)puVar26[-2] == puVar26) {\n        uVar20 = puVar26[1];\n        uVar19 = puVar26[2];\n        uVar15 = puVar26[3];\n        puVar18[9] = *puVar26;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar15;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar26[-2];\n        puVar18[9] = *puVar26;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }\n      if (puVar14 == puVar26 + 5) break;\n      puVar26 = puVar26 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }" { (expression_statement "uVar15 = puVar26[-4];" (assignment_expression "uVar15 = puVar26[-4]" identifier = (subscript_expression "puVar26[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar26[-8];" (assignment_expression "uVar22 = puVar26[-8]" identifier = (subscript_expression "puVar26[-8]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = puVar26[-7];" (assignment_expression "uVar21 = puVar26[-7]" identifier = (subscript_expression "puVar26[-7]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar26[-6];" (assignment_expression "uVar20 = puVar26[-6]" identifier = (subscript_expression "puVar26[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar26[-5];" (assignment_expression "uVar19 = puVar26[-5]" identifier = (subscript_expression "puVar26[-5]" identifier [ number_literal ])) ;) (expression_statement "*puVar18 = puVar26[-9];" (assignment_expression "*puVar18 = puVar26[-9]" (pointer_expression "*puVar18" * identifier) = (subscript_expression "puVar26[-9]" identifier [ number_literal ])) ;) (expression_statement "puVar18[1] = uVar22;" (assignment_expression "puVar18[1] = uVar22" (subscript_expression "puVar18[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[2] = uVar21;" (assignment_expression "puVar18[2] = uVar21" (subscript_expression "puVar18[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[3] = uVar20;" (assignment_expression "puVar18[3] = uVar20" (subscript_expression "puVar18[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[4] = uVar19;" (assignment_expression "puVar18[4] = uVar19" (subscript_expression "puVar18[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[5] = uVar15;" (assignment_expression "puVar18[5] = uVar15" (subscript_expression "puVar18[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar15 = puVar26[-3];" (assignment_expression "uVar15 = puVar26[-3]" identifier = (subscript_expression "puVar26[-3]" identifier [ number_literal ])) ;) (expression_statement "puVar18[7] = puVar18 + 9;" (assignment_expression "puVar18[7] = puVar18 + 9" (subscript_expression "puVar18[7]" identifier [ number_literal ]) = (binary_expression "puVar18 + 9" identifier + number_literal)) ;) (expression_statement "puVar18[6] = uVar15;" (assignment_expression "puVar18[6] = uVar15" (subscript_expression "puVar18[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((undefined4 *)puVar26[-2] == puVar26) {\n        uVar20 = puVar26[1];\n        uVar19 = puVar26[2];\n        uVar15 = puVar26[3];\n        puVar18[9] = *puVar26;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar15;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar26[-2];\n        puVar18[9] = *puVar26;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }" if (parenthesized_expression "((undefined4 *)puVar26[-2] == puVar26)" ( (binary_expression "(undefined4 *)puVar26[-2] == puVar26" (cast_expression "(undefined4 *)puVar26[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar26[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n        uVar20 = puVar26[1];\n        uVar19 = puVar26[2];\n        uVar15 = puVar26[3];\n        puVar18[9] = *puVar26;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar15;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }" { (expression_statement "uVar20 = puVar26[1];" (assignment_expression "uVar20 = puVar26[1]" identifier = (subscript_expression "puVar26[1]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar26[2];" (assignment_expression "uVar19 = puVar26[2]" identifier = (subscript_expression "puVar26[2]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar26[3];" (assignment_expression "uVar15 = puVar26[3]" identifier = (subscript_expression "puVar26[3]" identifier [ number_literal ])) ;) (expression_statement "puVar18[9] = *puVar26;" (assignment_expression "puVar18[9] = *puVar26" (subscript_expression "puVar18[9]" identifier [ number_literal ]) = (pointer_expression "*puVar26" * identifier)) ;) (expression_statement "puVar18[10] = uVar20;" (assignment_expression "puVar18[10] = uVar20" (subscript_expression "puVar18[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[0xb] = uVar19;" (assignment_expression "puVar18[0xb] = uVar19" (subscript_expression "puVar18[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[0xc] = uVar15;" (assignment_expression "puVar18[0xc] = uVar15" (subscript_expression "puVar18[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[8] = puVar26[-1];" (assignment_expression "puVar18[8] = puVar26[-1]" (subscript_expression "puVar18[8]" identifier [ number_literal ]) = (subscript_expression "puVar26[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar26[-2] = puVar26;" (assignment_expression "puVar26[-2] = puVar26" (subscript_expression "puVar26[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar26[-1] = 0;" (assignment_expression "puVar26[-1] = 0" (subscript_expression "puVar26[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar26 = 0;" (assignment_expression "*(undefined1 *)puVar26 = 0" (pointer_expression "*(undefined1 *)puVar26" * (cast_expression "(undefined1 *)puVar26" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n        puVar18[7] = (undefined4 *)puVar26[-2];\n        puVar18[9] = *puVar26;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }" else (compound_statement "{\n        puVar18[7] = (undefined4 *)puVar26[-2];\n        puVar18[9] = *puVar26;\n        puVar18[8] = puVar26[-1];\n        puVar26[-2] = puVar26;\n        puVar26[-1] = 0;\n        *(undefined1 *)puVar26 = 0;\n      }" { (expression_statement "puVar18[7] = (undefined4 *)puVar26[-2];" (assignment_expression "puVar18[7] = (undefined4 *)puVar26[-2]" (subscript_expression "puVar18[7]" identifier [ number_literal ]) = (cast_expression "(undefined4 *)puVar26[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar26[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar18[9] = *puVar26;" (assignment_expression "puVar18[9] = *puVar26" (subscript_expression "puVar18[9]" identifier [ number_literal ]) = (pointer_expression "*puVar26" * identifier)) ;) (expression_statement "puVar18[8] = puVar26[-1];" (assignment_expression "puVar18[8] = puVar26[-1]" (subscript_expression "puVar18[8]" identifier [ number_literal ]) = (subscript_expression "puVar26[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar26[-2] = puVar26;" (assignment_expression "puVar26[-2] = puVar26" (subscript_expression "puVar26[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar26[-1] = 0;" (assignment_expression "puVar26[-1] = 0" (subscript_expression "puVar26[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar26 = 0;" (assignment_expression "*(undefined1 *)puVar26 = 0" (pointer_expression "*(undefined1 *)puVar26" * (cast_expression "(undefined1 *)puVar26" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }))) (if_statement "if (puVar14 == puVar26 + 5) break;" if (parenthesized_expression "(puVar14 == puVar26 + 5)" ( (binary_expression "puVar14 == puVar26 + 5" identifier == (binary_expression "puVar26 + 5" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar26 = puVar26 + 0xe;" (assignment_expression "puVar26 = puVar26 + 0xe" identifier = (binary_expression "puVar26 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar18 = puVar18 + 0xe;" (assignment_expression "puVar18 = puVar18 + 0xe" identifier = (binary_expression "puVar18 + 0xe" identifier + number_literal)) ;) })) (expression_statement "puVar26 = puVar3 + ((((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;" (assignment_expression "puVar26 = puVar3 + ((((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" identifier = (binary_expression "puVar3 + ((((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" identifier + (binary_expression "((((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" (parenthesized_expression "((((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2)" ( (binary_expression "(((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2" (parenthesized_expression "(((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff)" ( (binary_expression "((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff" (binary_expression "((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7" (parenthesized_expression "((uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3)" ( (binary_expression "(uint)((int)puVar26 + (-0x24 - (int)puVar12)) >> 3" (call_expression "(uint)((int)puVar26 + (-0x24 - (int)puVar12))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar26 + (-0x24 - (int)puVar12))" ( (binary_expression "(int)puVar26 + (-0x24 - (int)puVar12)" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x24 - (int)puVar12)" ( (binary_expression "-0x24 - (int)puVar12" number_literal - (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) >> number_literal) )) * number_literal) & number_literal) )) + number_literal) )) * number_literal))) ;) })) (expression_statement "puVar4 = puVar14 + 9;" (assignment_expression "puVar4 = puVar14 + 9" identifier = (binary_expression "puVar14 + 9" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar26;" (assignment_expression "puVar8 = puVar26" identifier = identifier) ;) (expression_statement "puVar18 = puVar12;" (assignment_expression "puVar18 = puVar12" identifier = identifier) ;) (if_statement "if (puVar24 != puVar14) {\n    do {\n      while( true ) {\n        uVar25 = puVar4[-9];\n        uVar23 = puVar4[-8];\n        uVar22 = puVar4[-7];\n        uVar21 = puVar4[-6];\n        uVar20 = puVar4[-5];\n        uVar19 = puVar4[-4];\n        uVar15 = puVar4[-3];\n        puVar16 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar25;\n        puVar8[1] = uVar23;\n        puVar8[2] = uVar22;\n        puVar8[3] = uVar21;\n        puVar8[4] = uVar20;\n        puVar8[5] = uVar19;\n        puVar8[6] = uVar15;\n        if (puVar4 != puVar16) break;\n        uVar20 = puVar4[1];\n        uVar19 = puVar4[2];\n        uVar15 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar20;\n        puVar8[0xb] = uVar19;\n        puVar8[0xc] = uVar15;\n        puVar16 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar15 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar15;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar15 = *puVar4;\n      uVar19 = puVar4[-1];\n      puVar8[7] = puVar16;\n      puVar8[9] = uVar15;\n      puVar16 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar19;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar24 != puVar16);\nLAB_001a5a78:\n    puVar26 = puVar26 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }" if (parenthesized_expression "(puVar24 != puVar14)" ( (binary_expression "puVar24 != puVar14" identifier != identifier) )) (compound_statement "{\n    do {\n      while( true ) {\n        uVar25 = puVar4[-9];\n        uVar23 = puVar4[-8];\n        uVar22 = puVar4[-7];\n        uVar21 = puVar4[-6];\n        uVar20 = puVar4[-5];\n        uVar19 = puVar4[-4];\n        uVar15 = puVar4[-3];\n        puVar16 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar25;\n        puVar8[1] = uVar23;\n        puVar8[2] = uVar22;\n        puVar8[3] = uVar21;\n        puVar8[4] = uVar20;\n        puVar8[5] = uVar19;\n        puVar8[6] = uVar15;\n        if (puVar4 != puVar16) break;\n        uVar20 = puVar4[1];\n        uVar19 = puVar4[2];\n        uVar15 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar20;\n        puVar8[0xb] = uVar19;\n        puVar8[0xc] = uVar15;\n        puVar16 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar15 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar15;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar15 = *puVar4;\n      uVar19 = puVar4[-1];\n      puVar8[7] = puVar16;\n      puVar8[9] = uVar15;\n      puVar16 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar19;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar24 != puVar16);\nLAB_001a5a78:\n    puVar26 = puVar26 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }" { (do_statement "do {\n      while( true ) {\n        uVar25 = puVar4[-9];\n        uVar23 = puVar4[-8];\n        uVar22 = puVar4[-7];\n        uVar21 = puVar4[-6];\n        uVar20 = puVar4[-5];\n        uVar19 = puVar4[-4];\n        uVar15 = puVar4[-3];\n        puVar16 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar25;\n        puVar8[1] = uVar23;\n        puVar8[2] = uVar22;\n        puVar8[3] = uVar21;\n        puVar8[4] = uVar20;\n        puVar8[5] = uVar19;\n        puVar8[6] = uVar15;\n        if (puVar4 != puVar16) break;\n        uVar20 = puVar4[1];\n        uVar19 = puVar4[2];\n        uVar15 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar20;\n        puVar8[0xb] = uVar19;\n        puVar8[0xc] = uVar15;\n        puVar16 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar15 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar15;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar15 = *puVar4;\n      uVar19 = puVar4[-1];\n      puVar8[7] = puVar16;\n      puVar8[9] = uVar15;\n      puVar16 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar19;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar24 != puVar16);" do (compound_statement "{\n      while( true ) {\n        uVar25 = puVar4[-9];\n        uVar23 = puVar4[-8];\n        uVar22 = puVar4[-7];\n        uVar21 = puVar4[-6];\n        uVar20 = puVar4[-5];\n        uVar19 = puVar4[-4];\n        uVar15 = puVar4[-3];\n        puVar16 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar25;\n        puVar8[1] = uVar23;\n        puVar8[2] = uVar22;\n        puVar8[3] = uVar21;\n        puVar8[4] = uVar20;\n        puVar8[5] = uVar19;\n        puVar8[6] = uVar15;\n        if (puVar4 != puVar16) break;\n        uVar20 = puVar4[1];\n        uVar19 = puVar4[2];\n        uVar15 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar20;\n        puVar8[0xb] = uVar19;\n        puVar8[0xc] = uVar15;\n        puVar16 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar15 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar15;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar15 = *puVar4;\n      uVar19 = puVar4[-1];\n      puVar8[7] = puVar16;\n      puVar8[9] = uVar15;\n      puVar16 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar19;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    }" { (while_statement "while( true ) {\n        uVar25 = puVar4[-9];\n        uVar23 = puVar4[-8];\n        uVar22 = puVar4[-7];\n        uVar21 = puVar4[-6];\n        uVar20 = puVar4[-5];\n        uVar19 = puVar4[-4];\n        uVar15 = puVar4[-3];\n        puVar16 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar25;\n        puVar8[1] = uVar23;\n        puVar8[2] = uVar22;\n        puVar8[3] = uVar21;\n        puVar8[4] = uVar20;\n        puVar8[5] = uVar19;\n        puVar8[6] = uVar15;\n        if (puVar4 != puVar16) break;\n        uVar20 = puVar4[1];\n        uVar19 = puVar4[2];\n        uVar15 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar20;\n        puVar8[0xb] = uVar19;\n        puVar8[0xc] = uVar15;\n        puVar16 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar15 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar15;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar25 = puVar4[-9];\n        uVar23 = puVar4[-8];\n        uVar22 = puVar4[-7];\n        uVar21 = puVar4[-6];\n        uVar20 = puVar4[-5];\n        uVar19 = puVar4[-4];\n        uVar15 = puVar4[-3];\n        puVar16 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar25;\n        puVar8[1] = uVar23;\n        puVar8[2] = uVar22;\n        puVar8[3] = uVar21;\n        puVar8[4] = uVar20;\n        puVar8[5] = uVar19;\n        puVar8[6] = uVar15;\n        if (puVar4 != puVar16) break;\n        uVar20 = puVar4[1];\n        uVar19 = puVar4[2];\n        uVar15 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar20;\n        puVar8[0xb] = uVar19;\n        puVar8[0xc] = uVar15;\n        puVar16 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar15 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar15;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }" { (expression_statement "uVar25 = puVar4[-9];" (assignment_expression "uVar25 = puVar4[-9]" identifier = (subscript_expression "puVar4[-9]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = puVar4[-8];" (assignment_expression "uVar23 = puVar4[-8]" identifier = (subscript_expression "puVar4[-8]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar4[-7];" (assignment_expression "uVar22 = puVar4[-7]" identifier = (subscript_expression "puVar4[-7]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = puVar4[-6];" (assignment_expression "uVar21 = puVar4[-6]" identifier = (subscript_expression "puVar4[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar4[-5];" (assignment_expression "uVar20 = puVar4[-5]" identifier = (subscript_expression "puVar4[-5]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar4[-4];" (assignment_expression "uVar19 = puVar4[-4]" identifier = (subscript_expression "puVar4[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar4[-3];" (assignment_expression "uVar15 = puVar4[-3]" identifier = (subscript_expression "puVar4[-3]" identifier [ number_literal ])) ;) (expression_statement "puVar16 = (undefined4 *)puVar4[-2];" (assignment_expression "puVar16 = (undefined4 *)puVar4[-2]" identifier = (cast_expression "(undefined4 *)puVar4[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar8[7] = puVar8 + 9;" (assignment_expression "puVar8[7] = puVar8 + 9" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = (binary_expression "puVar8 + 9" identifier + number_literal)) ;) (expression_statement "*puVar8 = uVar25;" (assignment_expression "*puVar8 = uVar25" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "puVar8[1] = uVar23;" (assignment_expression "puVar8[1] = uVar23" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = uVar22;" (assignment_expression "puVar8[2] = uVar22" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[3] = uVar21;" (assignment_expression "puVar8[3] = uVar21" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[4] = uVar20;" (assignment_expression "puVar8[4] = uVar20" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[5] = uVar19;" (assignment_expression "puVar8[5] = uVar19" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[6] = uVar15;" (assignment_expression "puVar8[6] = uVar15" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar4 != puVar16) break;" if (parenthesized_expression "(puVar4 != puVar16)" ( (binary_expression "puVar4 != puVar16" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar20 = puVar4[1];" (assignment_expression "uVar20 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar4[2];" (assignment_expression "uVar19 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar4[3];" (assignment_expression "uVar15 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "puVar8[9] = *puVar4;" (assignment_expression "puVar8[9] = *puVar4" (subscript_expression "puVar8[9]" identifier [ number_literal ]) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar8[10] = uVar20;" (assignment_expression "puVar8[10] = uVar20" (subscript_expression "puVar8[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[0xb] = uVar19;" (assignment_expression "puVar8[0xb] = uVar19" (subscript_expression "puVar8[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[0xc] = uVar15;" (assignment_expression "puVar8[0xc] = uVar15" (subscript_expression "puVar8[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16 = puVar4 + 5;" (assignment_expression "puVar16 = puVar4 + 5" identifier = (binary_expression "puVar4 + 5" identifier + number_literal)) ;) (expression_statement "puVar4[-2] = puVar4;" (assignment_expression "puVar4[-2] = puVar4" (subscript_expression "puVar4[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar15 = puVar4[-1];" (assignment_expression "uVar15 = puVar4[-1]" identifier = (subscript_expression "puVar4[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar4[-1] = 0;" (assignment_expression "puVar4[-1] = 0" (subscript_expression "puVar4[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[8] = uVar15;" (assignment_expression "puVar8[8] = uVar15" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar4 + 0xe;" (assignment_expression "puVar4 = puVar4 + 0xe" identifier = (binary_expression "puVar4 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + 0xe;" (assignment_expression "puVar8 = puVar8 + 0xe" identifier = (binary_expression "puVar8 + 0xe" identifier + number_literal)) ;) (if_statement "if (puVar24 == puVar16) goto LAB_001a5a78;" if (parenthesized_expression "(puVar24 == puVar16)" ( (binary_expression "puVar24 == puVar16" identifier == identifier) )) (goto_statement "goto LAB_001a5a78;" goto statement_identifier ;)) })) (expression_statement "uVar15 = *puVar4;" (assignment_expression "uVar15 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "uVar19 = puVar4[-1];" (assignment_expression "uVar19 = puVar4[-1]" identifier = (subscript_expression "puVar4[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar8[7] = puVar16;" (assignment_expression "puVar8[7] = puVar16" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[9] = uVar15;" (assignment_expression "puVar8[9] = uVar15" (subscript_expression "puVar8[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16 = puVar4 + 5;" (assignment_expression "puVar16 = puVar4 + 5" identifier = (binary_expression "puVar4 + 5" identifier + number_literal)) ;) (expression_statement "puVar4[-2] = puVar4;" (assignment_expression "puVar4[-2] = puVar4" (subscript_expression "puVar4[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[-1] = 0;" (assignment_expression "puVar4[-1] = 0" (subscript_expression "puVar4[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar8[8] = uVar19;" (assignment_expression "puVar8[8] = uVar19" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar4 + 0xe;" (assignment_expression "puVar4 = puVar4 + 0xe" identifier = (binary_expression "puVar4 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + 0xe;" (assignment_expression "puVar8 = puVar8 + 0xe" identifier = (binary_expression "puVar8 + 0xe" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar24 != puVar16)" ( (binary_expression "puVar24 != puVar16" identifier != identifier) )) ;) (labeled_statement "LAB_001a5a78:\n    puVar26 = puVar26 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;" statement_identifier : (expression_statement "puVar26 = puVar26 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;" (assignment_expression "puVar26 = puVar26 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" identifier = (binary_expression "puVar26 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" identifier + (binary_expression "((((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" (parenthesized_expression "((((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1)" ( (binary_expression "(((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1" (parenthesized_expression "(((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff)" ( (binary_expression "((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff" (binary_expression "((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7" (parenthesized_expression "((uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3)" ( (binary_expression "(uint)((int)puVar24 + (-0x38 - (int)puVar14)) >> 3" (call_expression "(uint)((int)puVar24 + (-0x38 - (int)puVar14))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar24 + (-0x38 - (int)puVar14))" ( (binary_expression "(int)puVar24 + (-0x38 - (int)puVar14)" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x38 - (int)puVar14)" ( (binary_expression "-0x38 - (int)puVar14" number_literal - (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) >> number_literal) )) * number_literal) & number_literal) )) + number_literal) )) * number_literal))) ;)) })) (while_statement "while (puVar18 != puVar24) {\n    puVar14 = puVar18 + 7;\n    puVar4 = puVar18 + 9;\n    puVar18 = puVar18 + 0xe;\n    if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar28 + 0x28cb34))();\n    }\n  }" while (parenthesized_expression "(puVar18 != puVar24)" ( (binary_expression "puVar18 != puVar24" identifier != identifier) )) (compound_statement "{\n    puVar14 = puVar18 + 7;\n    puVar4 = puVar18 + 9;\n    puVar18 = puVar18 + 0xe;\n    if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar28 + 0x28cb34))();\n    }\n  }" { (expression_statement "puVar14 = puVar18 + 7;" (assignment_expression "puVar14 = puVar18 + 7" identifier = (binary_expression "puVar18 + 7" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar18 + 9;" (assignment_expression "puVar4 = puVar18 + 9" identifier = (binary_expression "puVar18 + 9" identifier + number_literal)) ;) (expression_statement "puVar18 = puVar18 + 0xe;" (assignment_expression "puVar18 = puVar18 + 0xe" identifier = (binary_expression "puVar18 + 0xe" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar28 + 0x28cb34))();\n    }" if (parenthesized_expression "((undefined4 *)*puVar14 != puVar4)" ( (binary_expression "(undefined4 *)*puVar14 != puVar4" (cast_expression "(undefined4 *)*puVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier)) != identifier) )) (compound_statement "{\n      (**(code **)(pcVar28 + 0x28cb34))();\n    }" { (expression_statement "(**(code **)(pcVar28 + 0x28cb34))();" (call_expression "(**(code **)(pcVar28 + 0x28cb34))()" (parenthesized_expression "(**(code **)(pcVar28 + 0x28cb34))" ( (pointer_expression "**(code **)(pcVar28 + 0x28cb34)" * (pointer_expression "*(code **)(pcVar28 + 0x28cb34)" * (cast_expression "(code **)(pcVar28 + 0x28cb34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x28cb34)" ( (binary_expression "pcVar28 + 0x28cb34" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) })) (if_statement "if (puVar12 != (undefined4 *)0x0) {\n    (**(code **)(pcVar28 + 0x28cb34))(puVar12);\n  }" if (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar28 + 0x28cb34))(puVar12);\n  }" { (expression_statement "(**(code **)(pcVar28 + 0x28cb34))(puVar12);" (call_expression "(**(code **)(pcVar28 + 0x28cb34))(puVar12)" (parenthesized_expression "(**(code **)(pcVar28 + 0x28cb34))" ( (pointer_expression "**(code **)(pcVar28 + 0x28cb34)" * (pointer_expression "*(code **)(pcVar28 + 0x28cb34)" * (cast_expression "(code **)(pcVar28 + 0x28cb34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x28cb34)" ( (binary_expression "pcVar28 + 0x28cb34" identifier + number_literal) ))))) )) (argument_list "(puVar12)" ( identifier ))) ;) })) (expression_statement "*puVar7 = puVar3;" (assignment_expression "*puVar7 = puVar3" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar7[1] = puVar26;" (assignment_expression "puVar7[1] = puVar26" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = iVar6;" (assignment_expression "puVar7[2] = iVar6" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void __thiscall\ngold::Output_data_dynamic::Dynamic_entry::write<32,true>\n          (Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  int *piVar9;\n  uint uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  undefined4 *puVar17;\n  undefined4 uVar18;\n  undefined4 uVar19;\n  undefined4 uVar20;\n  undefined4 uVar21;\n  undefined4 uVar22;\n  undefined4 *puVar23;\n  undefined4 uVar24;\n  undefined4 *puVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  \n  uVar1 = *(int *)(this + 0xc) + 5;\n  if (uVar1 < 5) {\n                    \n                    \n    (*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))();\n    return;\n  }\n  if (*(int *)(*(int *)this + 0x20) < 0) {\n    uVar5 = *(undefined4 *)(this + 8);\n    *(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc);\n    *(undefined4 *)param_1 = uVar5;\n    return;\n  }\n  puVar16 = PTR_s_alize_xindex_004323b4 + 0x7850;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar16);\n  piVar13 = (int *)&DAT_00000069;\n  piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec);\n  puVar26 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar16 + 0x78f8);\n  uVar1 = piVar9[3];\n  if (uVar1 + 5 < 5) {\n                    \n                    \n    (*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();\n    return;\n  }\n  iVar6 = *piVar9;\n  if (*(int *)(iVar6 + 0x20) < 0) {\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);\n    uVar10 = piVar9[2];\n    piVar13[1] = 0;\n    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;\n    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }\n  iVar6 = *(int *)(puVar26 + 0x28d274) + 0x7850;\n  (**(code **)(puVar26 + 0x28d284))(*(int *)(puVar26 + 0x28d274) + -0x4fe0,0xc5,iVar6);\n  puVar14 = (undefined4 *)&DAT_00000069;\n  pcVar27 = *(code **)(puVar26 + 0x28d284);\n  piVar9 = (int *)(*(int *)(puVar26 + 0x28d274) + -0x5cec);\n  (*pcVar27)(piVar9,0x69,iVar6 + 0x78f8);\n  uVar1 = piVar9[3];\n  if (uVar1 + 5 < 5) {\n                    \n                    \n    (*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();\n    return;\n  }\n  iVar6 = *piVar9;\n  if (*(int *)(iVar6 + 0x20) < 0) {\n    iVar11 = *(int *)(iVar6 + 8);\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    iVar6 = piVar9[2];\n    *puVar14 = 0;\n    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;\n    puVar14[1] = iVar6;\n    puVar14[3] = uVar2;\n    return;\n  }\n  iVar6 = *(int *)(pcVar27 + 0x28d0bc) + 0x7850;\n  (**(code **)(pcVar27 + 0x28d0cc))(*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0,0xc5,iVar6);\n  uVar1 = 0x69;\n  pcVar28 = *(code **)(pcVar27 + 0x28d0cc);\n  piVar9 = (int *)(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec);\n  (*pcVar28)(piVar9,0x69,iVar6 + 0x78f8);\n  if (uVar1 == 0) {\n    return;\n  }\n  puVar7 = (undefined4 *)piVar9[1];\n  puVar17 = (undefined4 *)&DAT_aaaaaaab;\n  puVar14 = puVar7;\n  uVar2 = uVar1;\n  if (uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)) {\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);\n    piVar9[1] = (int)(puVar7 + uVar1 * 6);\n    return;\n  }\n  iVar6 = *piVar9;\n  puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3);\n  uVar2 = (int)puVar14 * -0x55555555;\n  if (uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU) {\n    uVar10 = uVar2;\n    if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }\n    uVar10 = uVar10 + uVar2;\n    iVar11 = -0x10;\n    if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }\n    puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11);\n    puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6));\n    uVar10 = uVar1;\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);\n    puVar23 = (undefined4 *)piVar9[1];\n    puVar12 = (undefined4 *)*piVar9;\n    puVar7 = puVar17;\n    for (puVar14 = puVar12; puVar14 != puVar23; puVar14 = puVar14 + 6) {\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }\n    if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }\n    *piVar9 = (int)puVar17;\n    piVar9[2] = (int)puVar17 + iVar11;\n    piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6);\n    return;\n  }\n  pcVar27 = *(code **)(pcVar28 + 0x28cf34);\n  puVar7 = (undefined4 *)(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c);\n  (*pcVar27)();\n  puVar23 = (undefined4 *)puVar7[1];\n  puVar12 = (undefined4 *)*puVar7;\n  iVar6 = (int)puVar23 - (int)puVar12 >> 3;\n  uVar1 = iVar6 * -0x49249249;\n  if (uVar1 == 0) {\n    uVar2 = 1;\nLAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;\n  }\n  else {\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }\n  puVar3 = (undefined4 *)(**(code **)(pcVar27 + 0x28cbe4))(iVar6);\n  iVar6 = (int)puVar3 + iVar6;\n  puVar25 = puVar3 + 0xe;\nLAB_001a57f4:\n  puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));\n  uVar22 = puVar17[1];\n  puVar8 = puVar17 + 9;\n  uVar21 = puVar17[2];\n  uVar20 = puVar17[3];\n  uVar19 = puVar17[4];\n  uVar18 = puVar17[5];\n  uVar5 = puVar17[6];\n  puVar15 = (undefined4 *)puVar17[7];\n  *puVar4 = *puVar17;\n  puVar4[1] = uVar22;\n  puVar4[2] = uVar21;\n  puVar4[3] = uVar20;\n  puVar4[4] = uVar19;\n  puVar4[5] = uVar18;\n  puVar4[6] = uVar5;\n  puVar4[7] = puVar4 + 9;\n  if (puVar15 == puVar8) {\n    uVar19 = puVar17[10];\n    uVar18 = puVar17[0xb];\n    uVar5 = puVar17[0xc];\n    puVar4[9] = *puVar8;\n    puVar4[10] = uVar19;\n    puVar4[0xb] = uVar18;\n    puVar4[0xc] = uVar5;\n  }\n  else {\n    uVar5 = puVar17[9];\n    puVar4[7] = puVar15;\n    puVar4[9] = uVar5;\n  }\n  uVar5 = puVar17[8];\n  puVar17[7] = puVar8;\n  puVar17[8] = 0;\n  puVar4[8] = uVar5;\n  *(undefined1 *)(puVar17 + 9) = 0;\n  if (puVar12 != puVar14) {\n    puVar25 = puVar12 + 9;\n    puVar17 = puVar3;\n    while( true ) {\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }\n    puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }\n  puVar4 = puVar14 + 9;\n  puVar8 = puVar25;\n  puVar17 = puVar12;\n  if (puVar23 != puVar14) {\n    do {\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar23 != puVar15);\nLAB_001a5a78:\n    puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }\n  while (puVar17 != puVar23) {\n    puVar14 = puVar17 + 7;\n    puVar4 = puVar17 + 9;\n    puVar17 = puVar17 + 0xe;\n    if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }\n  }\n  if (puVar12 != (undefined4 *)0x0) {\n    (**(code **)(pcVar27 + 0x28cb34))(puVar12);\n  }\n  *puVar7 = puVar3;\n  puVar7[1] = puVar25;\n  puVar7[2] = iVar6;\n  return;\n}\n\n" (declaration "void __thiscall\ngold::Output_data_dynamic::Dynamic_entry::write<32,true>\n          (Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)\n\n{\n  uint uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_data_dynamic::Dynamic_entry::" identifier : : identifier : : identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "true>\n          (Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)\n\n{\n  uint" (function_declarator "true>\n          (Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)" identifier (ERROR ">" >) (parameter_list "(Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)" ( (parameter_declaration "Dynamic_entry *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "uchar *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Stringpool_template *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) { identifier) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 uVar24;" type_identifier identifier ;) (declaration "undefined4 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (expression_statement "uVar1 = *(int *)(this + 0xc) + 5;" (assignment_expression "uVar1 = *(int *)(this + 0xc) + 5" identifier = (binary_expression "*(int *)(this + 0xc) + 5" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (uVar1 < 5) {\n                    \n                    \n    (*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))();\n    return;\n  }" if (parenthesized_expression "(uVar1 < 5)" ( (binary_expression "uVar1 < 5" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n    (*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))();\n    return;\n  }" { (expression_statement "(*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))();" (call_expression "(*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))()" (parenthesized_expression "(*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))" ( (pointer_expression "*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0)" * (cast_expression "(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0)" ( (binary_expression "Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0" (binary_expression "Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" identifier (ERROR "::default_options_" : : identifier) + (pointer_expression "*(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" * (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0" (binary_expression "PTR_s_alize_xindex_004323b4 + uVar1 * 4" identifier + (binary_expression "uVar1 * 4" identifier * number_literal)) + number_literal) ))))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(*(int *)this + 0x20) < 0) {\n    uVar5 = *(undefined4 *)(this + 8);\n    *(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc);\n    *(undefined4 *)param_1 = uVar5;\n    return;\n  }" if (parenthesized_expression "(*(int *)(*(int *)this + 0x20) < 0)" ( (binary_expression "*(int *)(*(int *)this + 0x20) < 0" (pointer_expression "*(int *)(*(int *)this + 0x20)" * (cast_expression "(int *)(*(int *)this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)this + 0x20)" ( (binary_expression "*(int *)this + 0x20" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) < number_literal) )) (compound_statement "{\n    uVar5 = *(undefined4 *)(this + 8);\n    *(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc);\n    *(undefined4 *)param_1 = uVar5;\n    return;\n  }" { (expression_statement "uVar5 = *(undefined4 *)(this + 8);" (assignment_expression "uVar5 = *(undefined4 *)(this + 8)" identifier = (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc);" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc)" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc)" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)this + 0xc)" * (cast_expression "(int *)(*(int *)this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)this + 0xc)" ( (binary_expression "*(int *)this + 0xc" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))))) ;) (expression_statement "*(undefined4 *)param_1 = uVar5;" (assignment_expression "*(undefined4 *)param_1 = uVar5" (pointer_expression "*(undefined4 *)param_1" * (cast_expression "(undefined4 *)param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "puVar16 = PTR_s_alize_xindex_004323b4 + 0x7850;" (assignment_expression "puVar16 = PTR_s_alize_xindex_004323b4 + 0x7850" identifier = (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7850" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar16);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar16)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar16)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "piVar13 = (int *)&DAT_00000069;" (assignment_expression "piVar13 = (int *)&DAT_00000069" identifier = (cast_expression "(int *)&DAT_00000069" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000069" & identifier))) ;) (expression_statement "piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec);" (assignment_expression "piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec)" identifier = (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0x5cec)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) )))) ;) (expression_statement "puVar26 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar26 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar16 + 0x78f8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar16 + 0x78f8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar9,0x69,puVar16 + 0x78f8)" ( identifier , number_literal , (binary_expression "puVar16 + 0x78f8" identifier + number_literal) ))) ;) (expression_statement "uVar1 = piVar9[3];" (assignment_expression "uVar1 = piVar9[3]" identifier = (subscript_expression "piVar9[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar1 + 5 < 5) {\n                    \n                    \n    (*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();\n    return;\n  }" if (parenthesized_expression "(uVar1 + 5 < 5)" ( (binary_expression "uVar1 + 5 < 5" (binary_expression "uVar1 + 5" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n    (*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();\n    return;\n  }" { (expression_statement "(*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();" (call_expression "(*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))()" (parenthesized_expression "(*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))" ( (pointer_expression "*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090)" * (cast_expression "(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090)" ( (binary_expression "puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090" (binary_expression "puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" * (cast_expression "(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" ( (binary_expression "*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4" (binary_expression "*(int *)(puVar26 + 0x28d274) + 0x5de4" (pointer_expression "*(int *)(puVar26 + 0x28d274)" * (cast_expression "(int *)(puVar26 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x28d274)" ( (binary_expression "puVar26 + 0x28d274" identifier + number_literal) )))) + number_literal) + (binary_expression "(uVar1 + 5) * 4" (parenthesized_expression "(uVar1 + 5)" ( (binary_expression "uVar1 + 5" identifier + number_literal) )) * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (*(int *)(iVar6 + 0x20) < 0) {\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);\n    uVar10 = piVar9[2];\n    piVar13[1] = 0;\n    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;\n    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x20) < 0)" ( (binary_expression "*(int *)(iVar6 + 0x20) < 0" (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);\n    uVar10 = piVar9[2];\n    piVar13[1] = 0;\n    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;\n    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }" { (expression_statement "uVar2 = uVar1 + *(int *)(iVar6 + 0xc);" (assignment_expression "uVar2 = uVar1 + *(int *)(iVar6 + 0xc)" identifier = (binary_expression "uVar1 + *(int *)(iVar6 + 0xc)" identifier + (pointer_expression "*(int *)(iVar6 + 0xc)" * (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);" (assignment_expression "uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8)" identifier = (binary_expression "(uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8)" (call_expression "(uint)(uVar2 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) ))) + (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))))) ;) (expression_statement "uVar10 = piVar9[2];" (assignment_expression "uVar10 = piVar9[2]" identifier = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "piVar13[1] = 0;" (assignment_expression "piVar13[1] = 0" (subscript_expression "piVar13[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar13[3]" identifier [ number_literal ]) = (binary_expression "(((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10)" ( (binary_expression "(uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10" (binary_expression "(uVar1 >> 0x10) << 0x18" (parenthesized_expression "(uVar1 >> 0x10)" ( (binary_expression "uVar1 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar1 >> 0x18) << 0x10" (parenthesized_expression "(uVar1 >> 0x18)" ( (binary_expression "uVar1 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff)" ( (binary_expression "(uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff" (binary_expression "(uVar1 & 0xff) << 8" (parenthesized_expression "(uVar1 & 0xff)" ( (binary_expression "uVar1 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar1 >> 8 & 0xff" (binary_expression "uVar1 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar13[2]" identifier [ number_literal ]) = (binary_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10)" ( (binary_expression "(uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10" (binary_expression "(uVar2 >> 0x10) << 0x18" (parenthesized_expression "(uVar2 >> 0x10)" ( (binary_expression "uVar2 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar2 >> 0x18) << 0x10" (parenthesized_expression "(uVar2 >> 0x18)" ( (binary_expression "uVar2 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff)" ( (binary_expression "(uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff" (binary_expression "(uVar2 & 0xff) << 8" (parenthesized_expression "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "*piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar13" * identifier) = (binary_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10)" ( (binary_expression "(uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10" (binary_expression "(uVar10 >> 0x10) << 0x18" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar10 >> 0x18) << 0x10" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff)" ( (binary_expression "(uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff" (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" ( (binary_expression "uVar10 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *(int *)(puVar26 + 0x28d274) + 0x7850;" (assignment_expression "iVar6 = *(int *)(puVar26 + 0x28d274) + 0x7850" identifier = (binary_expression "*(int *)(puVar26 + 0x28d274) + 0x7850" (pointer_expression "*(int *)(puVar26 + 0x28d274)" * (cast_expression "(int *)(puVar26 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x28d274)" ( (binary_expression "puVar26 + 0x28d274" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar26 + 0x28d284))(*(int *)(puVar26 + 0x28d274) + -0x4fe0,0xc5,iVar6);" (call_expression "(**(code **)(puVar26 + 0x28d284))(*(int *)(puVar26 + 0x28d274) + -0x4fe0,0xc5,iVar6)" (parenthesized_expression "(**(code **)(puVar26 + 0x28d284))" ( (pointer_expression "**(code **)(puVar26 + 0x28d284)" * (pointer_expression "*(code **)(puVar26 + 0x28d284)" * (cast_expression "(code **)(puVar26 + 0x28d284)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x28d284)" ( (binary_expression "puVar26 + 0x28d284" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar26 + 0x28d274) + -0x4fe0,0xc5,iVar6)" ( (binary_expression "*(int *)(puVar26 + 0x28d274) + -0x4fe0" (pointer_expression "*(int *)(puVar26 + 0x28d274)" * (cast_expression "(int *)(puVar26 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x28d274)" ( (binary_expression "puVar26 + 0x28d274" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (expression_statement "puVar14 = (undefined4 *)&DAT_00000069;" (assignment_expression "puVar14 = (undefined4 *)&DAT_00000069" identifier = (cast_expression "(undefined4 *)&DAT_00000069" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000069" & identifier))) ;) (expression_statement "pcVar27 = *(code **)(puVar26 + 0x28d284);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0x28d284)" identifier = (pointer_expression "*(code **)(puVar26 + 0x28d284)" * (cast_expression "(code **)(puVar26 + 0x28d284)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x28d284)" ( (binary_expression "puVar26 + 0x28d284" identifier + number_literal) ))))) ;) (expression_statement "piVar9 = (int *)(*(int *)(puVar26 + 0x28d274) + -0x5cec);" (assignment_expression "piVar9 = (int *)(*(int *)(puVar26 + 0x28d274) + -0x5cec)" identifier = (cast_expression "(int *)(*(int *)(puVar26 + 0x28d274) + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar26 + 0x28d274) + -0x5cec)" ( (binary_expression "*(int *)(puVar26 + 0x28d274) + -0x5cec" (pointer_expression "*(int *)(puVar26 + 0x28d274)" * (cast_expression "(int *)(puVar26 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x28d274)" ( (binary_expression "puVar26 + 0x28d274" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar27)(piVar9,0x69,iVar6 + 0x78f8);" (call_expression "(*pcVar27)(piVar9,0x69,iVar6 + 0x78f8)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(piVar9,0x69,iVar6 + 0x78f8)" ( identifier , number_literal , (binary_expression "iVar6 + 0x78f8" identifier + number_literal) ))) ;) (expression_statement "uVar1 = piVar9[3];" (assignment_expression "uVar1 = piVar9[3]" identifier = (subscript_expression "piVar9[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar1 + 5 < 5) {\n                    \n                    \n    (*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();\n    return;\n  }" if (parenthesized_expression "(uVar1 + 5 < 5)" ( (binary_expression "uVar1 + 5 < 5" (binary_expression "uVar1 + 5" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n    (*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();\n    return;\n  }" { (expression_statement "(*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();" (call_expression "(*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))()" (parenthesized_expression "(*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))" ( (pointer_expression "*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8)" * (parenthesized_expression "(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8)" ( (binary_expression "pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8" (binary_expression "pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" * (cast_expression "(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" ( (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4" (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + 0x5df8" (pointer_expression "*(int *)(pcVar27 + 0x28d0bc)" * (cast_expression "(int *)(pcVar27 + 0x28d0bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x28d0bc)" ( (binary_expression "pcVar27 + 0x28d0bc" identifier + number_literal) )))) + number_literal) + (binary_expression "(uVar1 + 5) * 4" (parenthesized_expression "(uVar1 + 5)" ( (binary_expression "uVar1 + 5" identifier + number_literal) )) * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (*(int *)(iVar6 + 0x20) < 0) {\n    iVar11 = *(int *)(iVar6 + 8);\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    iVar6 = piVar9[2];\n    *puVar14 = 0;\n    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;\n    puVar14[1] = iVar6;\n    puVar14[3] = uVar2;\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar6 + 0x20) < 0)" ( (binary_expression "*(int *)(iVar6 + 0x20) < 0" (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    iVar11 = *(int *)(iVar6 + 8);\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    iVar6 = piVar9[2];\n    *puVar14 = 0;\n    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;\n    puVar14[1] = iVar6;\n    puVar14[3] = uVar2;\n    return;\n  }" { (expression_statement "iVar11 = *(int *)(iVar6 + 8);" (assignment_expression "iVar11 = *(int *)(iVar6 + 8)" identifier = (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = uVar1 + *(int *)(iVar6 + 0xc);" (assignment_expression "uVar2 = uVar1 + *(int *)(iVar6 + 0xc)" identifier = (binary_expression "uVar1 + *(int *)(iVar6 + 0xc)" identifier + (pointer_expression "*(int *)(iVar6 + 0xc)" * (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "iVar6 = piVar9[2];" (assignment_expression "iVar6 = piVar9[2]" identifier = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;" (assignment_expression "puVar14[2] = (uint)(uVar2 < uVar1) + iVar11" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar2 < uVar1) + iVar11" (call_expression "(uint)(uVar2 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) ))) + identifier)) ;) (expression_statement "puVar14[1] = iVar6;" (assignment_expression "puVar14[1] = iVar6" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[3] = uVar2;" (assignment_expression "puVar14[3] = uVar2" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *(int *)(pcVar27 + 0x28d0bc) + 0x7850;" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x28d0bc) + 0x7850" identifier = (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + 0x7850" (pointer_expression "*(int *)(pcVar27 + 0x28d0bc)" * (cast_expression "(int *)(pcVar27 + 0x28d0bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x28d0bc)" ( (binary_expression "pcVar27 + 0x28d0bc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar27 + 0x28d0cc))(*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0,0xc5,iVar6);" (call_expression "(**(code **)(pcVar27 + 0x28d0cc))(*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0,0xc5,iVar6)" (parenthesized_expression "(**(code **)(pcVar27 + 0x28d0cc))" ( (pointer_expression "**(code **)(pcVar27 + 0x28d0cc)" * (pointer_expression "*(code **)(pcVar27 + 0x28d0cc)" * (cast_expression "(code **)(pcVar27 + 0x28d0cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x28d0cc)" ( (binary_expression "pcVar27 + 0x28d0cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0,0xc5,iVar6)" ( (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0" (pointer_expression "*(int *)(pcVar27 + 0x28d0bc)" * (cast_expression "(int *)(pcVar27 + 0x28d0bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x28d0bc)" ( (binary_expression "pcVar27 + 0x28d0bc" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (expression_statement "uVar1 = 0x69;" (assignment_expression "uVar1 = 0x69" identifier = number_literal) ;) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x28d0cc);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x28d0cc)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x28d0cc)" * (cast_expression "(code **)(pcVar27 + 0x28d0cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x28d0cc)" ( (binary_expression "pcVar27 + 0x28d0cc" identifier + number_literal) ))))) ;) (expression_statement "piVar9 = (int *)(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec);" (assignment_expression "piVar9 = (int *)(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec)" identifier = (cast_expression "(int *)(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec)" ( (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + -0x5cec" (pointer_expression "*(int *)(pcVar27 + 0x28d0bc)" * (cast_expression "(int *)(pcVar27 + 0x28d0bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x28d0bc)" ( (binary_expression "pcVar27 + 0x28d0bc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)(piVar9,0x69,iVar6 + 0x78f8);" (call_expression "(*pcVar28)(piVar9,0x69,iVar6 + 0x78f8)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(piVar9,0x69,iVar6 + 0x78f8)" ( identifier , number_literal , (binary_expression "iVar6 + 0x78f8" identifier + number_literal) ))) ;) (if_statement "if (uVar1 == 0) {\n    return;\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar7 = (undefined4 *)piVar9[1];" (assignment_expression "puVar7 = (undefined4 *)piVar9[1]" identifier = (cast_expression "(undefined4 *)piVar9[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar17 = (undefined4 *)&DAT_aaaaaaab;" (assignment_expression "puVar17 = (undefined4 *)&DAT_aaaaaaab" identifier = (cast_expression "(undefined4 *)&DAT_aaaaaaab" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_aaaaaaab" & identifier))) ;) (expression_statement "puVar14 = puVar7;" (assignment_expression "puVar14 = puVar7" identifier = identifier) ;) (expression_statement "uVar2 = uVar1;" (assignment_expression "uVar2 = uVar1" identifier = identifier) ;) (if_statement "if (uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)) {\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);\n    piVar9[1] = (int)(puVar7 + uVar1 * 6);\n    return;\n  }" if (parenthesized_expression "(uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555))" ( (binary_expression "uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)" identifier <= (call_expression "(uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)" ( (binary_expression "(piVar9[2] - (int)puVar7 >> 3) * -0x55555555" (parenthesized_expression "(piVar9[2] - (int)puVar7 >> 3)" ( (binary_expression "piVar9[2] - (int)puVar7 >> 3" (binary_expression "piVar9[2] - (int)puVar7" (subscript_expression "piVar9[2]" identifier [ number_literal ]) - (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) )))) )) (compound_statement "{\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);\n    piVar9[1] = (int)(puVar7 + uVar1 * 6);\n    return;\n  }" { (do_statement "do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);" do (compound_statement "{\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    }" { (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = uVar2 - 1;" (assignment_expression "uVar2 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) ;) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[4] = 0;" (assignment_expression "puVar14[4] = 0" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14 = puVar14 + 6;" (assignment_expression "puVar14 = puVar14 + 6" identifier = (binary_expression "puVar14 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) ;) (expression_statement "piVar9[1] = (int)(puVar7 + uVar1 * 6);" (assignment_expression "piVar9[1] = (int)(puVar7 + uVar1 * 6)" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = (cast_expression "(int)(puVar7 + uVar1 * 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar7 + uVar1 * 6)" ( (binary_expression "puVar7 + uVar1 * 6" identifier + (binary_expression "uVar1 * 6" identifier * number_literal)) )))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3);" (assignment_expression "puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3)" identifier = (cast_expression "(undefined4 *)((int)puVar7 - iVar6 >> 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 - iVar6 >> 3)" ( (binary_expression "(int)puVar7 - iVar6 >> 3" (binary_expression "(int)puVar7 - iVar6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal) )))) ;) (expression_statement "uVar2 = (int)puVar14 * -0x55555555;" (assignment_expression "uVar2 = (int)puVar14 * -0x55555555" identifier = (binary_expression "(int)puVar14 * -0x55555555" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU) {\n    uVar10 = uVar2;\n    if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }\n    uVar10 = uVar10 + uVar2;\n    iVar11 = -0x10;\n    if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }\n    puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11);\n    puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6));\n    uVar10 = uVar1;\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);\n    puVar23 = (undefined4 *)piVar9[1];\n    puVar12 = (undefined4 *)*piVar9;\n    puVar7 = puVar17;\n    for (puVar14 = puVar12; puVar14 != puVar23; puVar14 = puVar14 + 6) {\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }\n    if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }\n    *piVar9 = (int)puVar17;\n    piVar9[2] = (int)puVar17 + iVar11;\n    piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6);\n    return;\n  }" if (parenthesized_expression "(uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU)" ( (binary_expression "uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU" identifier <= (binary_expression "(int)puVar14 * 0x55555555 + 0xaaaaaaaU" (binary_expression "(int)puVar14 * 0x55555555" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) )) (compound_statement "{\n    uVar10 = uVar2;\n    if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }\n    uVar10 = uVar10 + uVar2;\n    iVar11 = -0x10;\n    if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }\n    puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11);\n    puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6));\n    uVar10 = uVar1;\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);\n    puVar23 = (undefined4 *)piVar9[1];\n    puVar12 = (undefined4 *)*piVar9;\n    puVar7 = puVar17;\n    for (puVar14 = puVar12; puVar14 != puVar23; puVar14 = puVar14 + 6) {\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }\n    if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }\n    *piVar9 = (int)puVar17;\n    piVar9[2] = (int)puVar17 + iVar11;\n    piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6);\n    return;\n  }" { (expression_statement "uVar10 = uVar2;" (assignment_expression "uVar10 = uVar2" identifier = identifier) ;) (if_statement "if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }" if (parenthesized_expression "(uVar2 <= uVar1)" ( (binary_expression "uVar2 <= uVar1" identifier <= identifier) )) (compound_statement "{\n      uVar10 = uVar1;\n    }" { (expression_statement "uVar10 = uVar1;" (assignment_expression "uVar10 = uVar1" identifier = identifier) ;) })) (expression_statement "uVar10 = uVar10 + uVar2;" (assignment_expression "uVar10 = uVar10 + uVar2" identifier = (binary_expression "uVar10 + uVar2" identifier + identifier)) ;) (expression_statement "iVar11 = -0x10;" (assignment_expression "iVar11 = -0x10" identifier = number_literal) ;) (if_statement "if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }" if (parenthesized_expression "(uVar2 <= uVar10)" ( (binary_expression "uVar2 <= uVar10" identifier <= identifier) )) (compound_statement "{\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }" { (if_statement "if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }" if (parenthesized_expression "(0xaaaaaaa < uVar10)" ( (binary_expression "0xaaaaaaa < uVar10" number_literal < identifier) )) (compound_statement "{\n        uVar10 = 0xaaaaaaa;\n      }" { (expression_statement "uVar10 = 0xaaaaaaa;" (assignment_expression "uVar10 = 0xaaaaaaa" identifier = number_literal) ;) })) (expression_statement "iVar11 = uVar10 * 0x18;" (assignment_expression "iVar11 = uVar10 * 0x18" identifier = (binary_expression "uVar10 * 0x18" identifier * number_literal)) ;) })) (expression_statement "puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11);" (assignment_expression "puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar28 + 0x28cdf0))(iVar11)" (parenthesized_expression "(**(code **)(pcVar28 + 0x28cdf0))" ( (pointer_expression "**(code **)(pcVar28 + 0x28cdf0)" * (pointer_expression "*(code **)(pcVar28 + 0x28cdf0)" * (cast_expression "(code **)(pcVar28 + 0x28cdf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x28cdf0)" ( (binary_expression "pcVar28 + 0x28cdf0" identifier + number_literal) ))))) )) (argument_list "(iVar11)" ( identifier ))))) ;) (expression_statement "puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6));" (assignment_expression "puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6))" identifier = (cast_expression "(undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + ((int)puVar7 - iVar6))" ( (binary_expression "(int)puVar17 + ((int)puVar7 - iVar6)" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)puVar7 - iVar6)" ( (binary_expression "(int)puVar7 - iVar6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) )))) ;) (expression_statement "uVar10 = uVar1;" (assignment_expression "uVar10 = uVar1" identifier = identifier) ;) (do_statement "do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);" do (compound_statement "{\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    }" { (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14[4] = 0;" (assignment_expression "puVar14[4] = 0" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14 = puVar14 + 6;" (assignment_expression "puVar14 = puVar14 + 6" identifier = (binary_expression "puVar14 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) ;) (expression_statement "puVar23 = (undefined4 *)piVar9[1];" (assignment_expression "puVar23 = (undefined4 *)piVar9[1]" identifier = (cast_expression "(undefined4 *)piVar9[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar12 = (undefined4 *)*piVar9;" (assignment_expression "puVar12 = (undefined4 *)*piVar9" identifier = (cast_expression "(undefined4 *)*piVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "puVar7 = puVar17;" (assignment_expression "puVar7 = puVar17" identifier = identifier) ;) (for_statement "for (puVar14 = puVar12; puVar14 != puVar23; puVar14 = puVar14 + 6) {\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }" for ( (assignment_expression "puVar14 = puVar12" identifier = identifier) ; (binary_expression "puVar14 != puVar23" identifier != identifier) ; (assignment_expression "puVar14 = puVar14 + 6" identifier = (binary_expression "puVar14 + 6" identifier + number_literal)) ) (compound_statement "{\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }" { (expression_statement "uVar21 = puVar14[1];" (assignment_expression "uVar21 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar14[2];" (assignment_expression "uVar20 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar14[3];" (assignment_expression "uVar19 = puVar14[3]" identifier = (subscript_expression "puVar14[3]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar14[4];" (assignment_expression "uVar18 = puVar14[4]" identifier = (subscript_expression "puVar14[4]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar14[5];" (assignment_expression "uVar5 = puVar14[5]" identifier = (subscript_expression "puVar14[5]" identifier [ number_literal ])) ;) (expression_statement "*puVar7 = *puVar14;" (assignment_expression "*puVar7 = *puVar14" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar7[1] = uVar21;" (assignment_expression "puVar7[1] = uVar21" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar20;" (assignment_expression "puVar7[2] = uVar20" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = uVar19;" (assignment_expression "puVar7[3] = uVar19" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[4] = uVar18;" (assignment_expression "puVar7[4] = uVar18" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[5] = uVar5;" (assignment_expression "puVar7[5] = uVar5" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = puVar7 + 6;" (assignment_expression "puVar7 = puVar7 + 6" identifier = (binary_expression "puVar7 + 6" identifier + number_literal)) ;) })) (if_statement "if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }" if (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }" { (expression_statement "(**(code **)(pcVar28 + 0x28cd40))();" (call_expression "(**(code **)(pcVar28 + 0x28cd40))()" (parenthesized_expression "(**(code **)(pcVar28 + 0x28cd40))" ( (pointer_expression "**(code **)(pcVar28 + 0x28cd40)" * (pointer_expression "*(code **)(pcVar28 + 0x28cd40)" * (cast_expression "(code **)(pcVar28 + 0x28cd40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x28cd40)" ( (binary_expression "pcVar28 + 0x28cd40" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "*piVar9 = (int)puVar17;" (assignment_expression "*piVar9 = (int)puVar17" (pointer_expression "*piVar9" * identifier) = (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar9[2] = (int)puVar17 + iVar11;" (assignment_expression "piVar9[2] = (int)puVar17 + iVar11" (subscript_expression "piVar9[2]" identifier [ number_literal ]) = (binary_expression "(int)puVar17 + iVar11" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6);" (assignment_expression "piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6)" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = (cast_expression "(int)(puVar17 + (uVar1 + uVar2) * 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar17 + (uVar1 + uVar2) * 6)" ( (binary_expression "puVar17 + (uVar1 + uVar2) * 6" identifier + (binary_expression "(uVar1 + uVar2) * 6" (parenthesized_expression "(uVar1 + uVar2)" ( (binary_expression "uVar1 + uVar2" identifier + identifier) )) * number_literal)) )))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar27 = *(code **)(pcVar28 + 0x28cf34);" (assignment_expression "pcVar27 = *(code **)(pcVar28 + 0x28cf34)" identifier = (pointer_expression "*(code **)(pcVar28 + 0x28cf34)" * (cast_expression "(code **)(pcVar28 + 0x28cf34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x28cf34)" ( (binary_expression "pcVar28 + 0x28cf34" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c);" (assignment_expression "puVar7 = (undefined4 *)(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c)" ( (binary_expression "*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c" (pointer_expression "*(int *)(pcVar28 + 0x28ccc0)" * (cast_expression "(int *)(pcVar28 + 0x28ccc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x28ccc0)" ( (binary_expression "pcVar28 + 0x28ccc0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar23 = (undefined4 *)puVar7[1];" (assignment_expression "puVar23 = (undefined4 *)puVar7[1]" identifier = (cast_expression "(undefined4 *)puVar7[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar12 = (undefined4 *)*puVar7;" (assignment_expression "puVar12 = (undefined4 *)*puVar7" identifier = (cast_expression "(undefined4 *)*puVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "iVar6 = (int)puVar23 - (int)puVar12 >> 3;" (assignment_expression "iVar6 = (int)puVar23 - (int)puVar12 >> 3" identifier = (binary_expression "(int)puVar23 - (int)puVar12 >> 3" (binary_expression "(int)puVar23 - (int)puVar12" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "uVar1 = iVar6 * -0x49249249;" (assignment_expression "uVar1 = iVar6 * -0x49249249" identifier = (binary_expression "iVar6 * -0x49249249" identifier * number_literal)) ;) (if_statement "if (uVar1 == 0) {\n    uVar2 = 1;\nLAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;\n  }\n  else {\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar2 = 1;\nLAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;\n  }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (labeled_statement "LAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;" statement_identifier : (expression_statement "iVar6 = uVar2 * 0x38;" (assignment_expression "iVar6 = uVar2 * 0x38" identifier = (binary_expression "uVar2 * 0x38" identifier * number_literal)) ;)) }) (else_clause "else {\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" else (compound_statement "{\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" { (expression_statement "uVar2 = iVar6 * 0x6db6db6e;" (assignment_expression "uVar2 = iVar6 * 0x6db6db6e" identifier = (binary_expression "iVar6 * 0x6db6db6e" identifier * number_literal)) ;) (if_statement "if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" if (parenthesized_expression "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) )) (compound_statement "{\n      iVar6 = -0x20;\n    }" { (expression_statement "iVar6 = -0x20;" (assignment_expression "iVar6 = -0x20" identifier = number_literal) ;) }) (else_clause "else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" else (compound_statement "{\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" { (expression_statement "iVar6 = -0x20;" (assignment_expression "iVar6 = -0x20" identifier = number_literal) ;) (if_statement "if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }" if (parenthesized_expression "(uVar2 < 0x4924925)" ( (binary_expression "uVar2 < 0x4924925" identifier < number_literal) )) (compound_statement "{\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }" { (expression_statement "puVar25 = (undefined4 *)&DAT_00000038;" (assignment_expression "puVar25 = (undefined4 *)&DAT_00000038" identifier = (cast_expression "(undefined4 *)&DAT_00000038" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000038" & identifier))) ;) (if_statement "if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = (undefined4 *)0x0;" (assignment_expression "puVar3 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_001a57f4;" goto statement_identifier ;) })) (goto_statement "goto LAB_001a5b4c;" goto statement_identifier ;) })) }))) }))) (expression_statement "puVar3 = (undefined4 *)(**(code **)(pcVar27 + 0x28cbe4))(iVar6);" (assignment_expression "puVar3 = (undefined4 *)(**(code **)(pcVar27 + 0x28cbe4))(iVar6)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar27 + 0x28cbe4))(iVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar27 + 0x28cbe4))(iVar6)" (parenthesized_expression "(**(code **)(pcVar27 + 0x28cbe4))" ( (pointer_expression "**(code **)(pcVar27 + 0x28cbe4)" * (pointer_expression "*(code **)(pcVar27 + 0x28cbe4)" * (cast_expression "(code **)(pcVar27 + 0x28cbe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x28cbe4)" ( (binary_expression "pcVar27 + 0x28cbe4" identifier + number_literal) ))))) )) (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "iVar6 = (int)puVar3 + iVar6;" (assignment_expression "iVar6 = (int)puVar3 + iVar6" identifier = (binary_expression "(int)puVar3 + iVar6" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "puVar25 = puVar3 + 0xe;" (assignment_expression "puVar25 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + number_literal)) ;) (labeled_statement "LAB_001a57f4:\n  puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));" statement_identifier : (expression_statement "puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));" (assignment_expression "puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12))" identifier = (cast_expression "(undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + ((int)puVar14 - (int)puVar12))" ( (binary_expression "(int)puVar3 + ((int)puVar14 - (int)puVar12)" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)puVar14 - (int)puVar12)" ( (binary_expression "(int)puVar14 - (int)puVar12" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;)) (expression_statement "uVar22 = puVar17[1];" (assignment_expression "uVar22 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "puVar8 = puVar17 + 9;" (assignment_expression "puVar8 = puVar17 + 9" identifier = (binary_expression "puVar17 + 9" identifier + number_literal)) ;) (expression_statement "uVar21 = puVar17[2];" (assignment_expression "uVar21 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar17[3];" (assignment_expression "uVar20 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar17[4];" (assignment_expression "uVar19 = puVar17[4]" identifier = (subscript_expression "puVar17[4]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar17[5];" (assignment_expression "uVar18 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar17[6];" (assignment_expression "uVar5 = puVar17[6]" identifier = (subscript_expression "puVar17[6]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = (undefined4 *)puVar17[7];" (assignment_expression "puVar15 = (undefined4 *)puVar17[7]" identifier = (cast_expression "(undefined4 *)puVar17[7]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar17[7]" identifier [ number_literal ]))) ;) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "puVar4[1] = uVar22;" (assignment_expression "puVar4[1] = uVar22" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar21;" (assignment_expression "puVar4[2] = uVar21" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar20;" (assignment_expression "puVar4[3] = uVar20" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[4] = uVar19;" (assignment_expression "puVar4[4] = uVar19" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[5] = uVar18;" (assignment_expression "puVar4[5] = uVar18" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[6] = uVar5;" (assignment_expression "puVar4[6] = uVar5" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[7] = puVar4 + 9;" (assignment_expression "puVar4[7] = puVar4 + 9" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = (binary_expression "puVar4 + 9" identifier + number_literal)) ;) (if_statement "if (puVar15 == puVar8) {\n    uVar19 = puVar17[10];\n    uVar18 = puVar17[0xb];\n    uVar5 = puVar17[0xc];\n    puVar4[9] = *puVar8;\n    puVar4[10] = uVar19;\n    puVar4[0xb] = uVar18;\n    puVar4[0xc] = uVar5;\n  }\n  else {\n    uVar5 = puVar17[9];\n    puVar4[7] = puVar15;\n    puVar4[9] = uVar5;\n  }" if (parenthesized_expression "(puVar15 == puVar8)" ( (binary_expression "puVar15 == puVar8" identifier == identifier) )) (compound_statement "{\n    uVar19 = puVar17[10];\n    uVar18 = puVar17[0xb];\n    uVar5 = puVar17[0xc];\n    puVar4[9] = *puVar8;\n    puVar4[10] = uVar19;\n    puVar4[0xb] = uVar18;\n    puVar4[0xc] = uVar5;\n  }" { (expression_statement "uVar19 = puVar17[10];" (assignment_expression "uVar19 = puVar17[10]" identifier = (subscript_expression "puVar17[10]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar17[0xb];" (assignment_expression "uVar18 = puVar17[0xb]" identifier = (subscript_expression "puVar17[0xb]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar17[0xc];" (assignment_expression "uVar5 = puVar17[0xc]" identifier = (subscript_expression "puVar17[0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar4[9] = *puVar8;" (assignment_expression "puVar4[9] = *puVar8" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar4[10] = uVar19;" (assignment_expression "puVar4[10] = uVar19" (subscript_expression "puVar4[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[0xb] = uVar18;" (assignment_expression "puVar4[0xb] = uVar18" (subscript_expression "puVar4[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[0xc] = uVar5;" (assignment_expression "puVar4[0xc] = uVar5" (subscript_expression "puVar4[0xc]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    uVar5 = puVar17[9];\n    puVar4[7] = puVar15;\n    puVar4[9] = uVar5;\n  }" else (compound_statement "{\n    uVar5 = puVar17[9];\n    puVar4[7] = puVar15;\n    puVar4[9] = uVar5;\n  }" { (expression_statement "uVar5 = puVar17[9];" (assignment_expression "uVar5 = puVar17[9]" identifier = (subscript_expression "puVar17[9]" identifier [ number_literal ])) ;) (expression_statement "puVar4[7] = puVar15;" (assignment_expression "puVar4[7] = puVar15" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[9] = uVar5;" (assignment_expression "puVar4[9] = uVar5" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "uVar5 = puVar17[8];" (assignment_expression "uVar5 = puVar17[8]" identifier = (subscript_expression "puVar17[8]" identifier [ number_literal ])) ;) (expression_statement "puVar17[7] = puVar8;" (assignment_expression "puVar17[7] = puVar8" (subscript_expression "puVar17[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[8] = 0;" (assignment_expression "puVar17[8] = 0" (subscript_expression "puVar17[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[8] = uVar5;" (assignment_expression "puVar4[8] = uVar5" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar17 + 9) = 0;" (assignment_expression "*(undefined1 *)(puVar17 + 9) = 0" (pointer_expression "*(undefined1 *)(puVar17 + 9)" * (cast_expression "(undefined1 *)(puVar17 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 9)" ( (binary_expression "puVar17 + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puVar12 != puVar14) {\n    puVar25 = puVar12 + 9;\n    puVar17 = puVar3;\n    while( true ) {\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }\n    puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }" if (parenthesized_expression "(puVar12 != puVar14)" ( (binary_expression "puVar12 != puVar14" identifier != identifier) )) (compound_statement "{\n    puVar25 = puVar12 + 9;\n    puVar17 = puVar3;\n    while( true ) {\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }\n    puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }" { (expression_statement "puVar25 = puVar12 + 9;" (assignment_expression "puVar25 = puVar12 + 9" identifier = (binary_expression "puVar12 + 9" identifier + number_literal)) ;) (expression_statement "puVar17 = puVar3;" (assignment_expression "puVar17 = puVar3" identifier = identifier) ;) (while_statement "while( true ) {\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }" { (expression_statement "uVar5 = puVar25[-4];" (assignment_expression "uVar5 = puVar25[-4]" identifier = (subscript_expression "puVar25[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = puVar25[-8];" (assignment_expression "uVar21 = puVar25[-8]" identifier = (subscript_expression "puVar25[-8]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar25[-7];" (assignment_expression "uVar20 = puVar25[-7]" identifier = (subscript_expression "puVar25[-7]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar25[-6];" (assignment_expression "uVar19 = puVar25[-6]" identifier = (subscript_expression "puVar25[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar25[-5];" (assignment_expression "uVar18 = puVar25[-5]" identifier = (subscript_expression "puVar25[-5]" identifier [ number_literal ])) ;) (expression_statement "*puVar17 = puVar25[-9];" (assignment_expression "*puVar17 = puVar25[-9]" (pointer_expression "*puVar17" * identifier) = (subscript_expression "puVar25[-9]" identifier [ number_literal ])) ;) (expression_statement "puVar17[1] = uVar21;" (assignment_expression "puVar17[1] = uVar21" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[2] = uVar20;" (assignment_expression "puVar17[2] = uVar20" (subscript_expression "puVar17[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[3] = uVar19;" (assignment_expression "puVar17[3] = uVar19" (subscript_expression "puVar17[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[4] = uVar18;" (assignment_expression "puVar17[4] = uVar18" (subscript_expression "puVar17[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[5] = uVar5;" (assignment_expression "puVar17[5] = uVar5" (subscript_expression "puVar17[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = puVar25[-3];" (assignment_expression "uVar5 = puVar25[-3]" identifier = (subscript_expression "puVar25[-3]" identifier [ number_literal ])) ;) (expression_statement "puVar17[7] = puVar17 + 9;" (assignment_expression "puVar17[7] = puVar17 + 9" (subscript_expression "puVar17[7]" identifier [ number_literal ]) = (binary_expression "puVar17 + 9" identifier + number_literal)) ;) (expression_statement "puVar17[6] = uVar5;" (assignment_expression "puVar17[6] = uVar5" (subscript_expression "puVar17[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }" if (parenthesized_expression "((undefined4 *)puVar25[-2] == puVar25)" ( (binary_expression "(undefined4 *)puVar25[-2] == puVar25" (cast_expression "(undefined4 *)puVar25[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar25[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }" { (expression_statement "uVar19 = puVar25[1];" (assignment_expression "uVar19 = puVar25[1]" identifier = (subscript_expression "puVar25[1]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar25[2];" (assignment_expression "uVar18 = puVar25[2]" identifier = (subscript_expression "puVar25[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar25[3];" (assignment_expression "uVar5 = puVar25[3]" identifier = (subscript_expression "puVar25[3]" identifier [ number_literal ])) ;) (expression_statement "puVar17[9] = *puVar25;" (assignment_expression "puVar17[9] = *puVar25" (subscript_expression "puVar17[9]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar17[10] = uVar19;" (assignment_expression "puVar17[10] = uVar19" (subscript_expression "puVar17[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[0xb] = uVar18;" (assignment_expression "puVar17[0xb] = uVar18" (subscript_expression "puVar17[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[0xc] = uVar5;" (assignment_expression "puVar17[0xc] = uVar5" (subscript_expression "puVar17[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[8] = puVar25[-1];" (assignment_expression "puVar17[8] = puVar25[-1]" (subscript_expression "puVar17[8]" identifier [ number_literal ]) = (subscript_expression "puVar25[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar25[-2] = puVar25;" (assignment_expression "puVar25[-2] = puVar25" (subscript_expression "puVar25[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[-1] = 0;" (assignment_expression "puVar25[-1] = 0" (subscript_expression "puVar25[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar25 = 0;" (assignment_expression "*(undefined1 *)puVar25 = 0" (pointer_expression "*(undefined1 *)puVar25" * (cast_expression "(undefined1 *)puVar25" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }" else (compound_statement "{\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }" { (expression_statement "puVar17[7] = (undefined4 *)puVar25[-2];" (assignment_expression "puVar17[7] = (undefined4 *)puVar25[-2]" (subscript_expression "puVar17[7]" identifier [ number_literal ]) = (cast_expression "(undefined4 *)puVar25[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar25[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar17[9] = *puVar25;" (assignment_expression "puVar17[9] = *puVar25" (subscript_expression "puVar17[9]" identifier [ number_literal ]) = (pointer_expression "*puVar25" * identifier)) ;) (expression_statement "puVar17[8] = puVar25[-1];" (assignment_expression "puVar17[8] = puVar25[-1]" (subscript_expression "puVar17[8]" identifier [ number_literal ]) = (subscript_expression "puVar25[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar25[-2] = puVar25;" (assignment_expression "puVar25[-2] = puVar25" (subscript_expression "puVar25[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[-1] = 0;" (assignment_expression "puVar25[-1] = 0" (subscript_expression "puVar25[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar25 = 0;" (assignment_expression "*(undefined1 *)puVar25 = 0" (pointer_expression "*(undefined1 *)puVar25" * (cast_expression "(undefined1 *)puVar25" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }))) (if_statement "if (puVar14 == puVar25 + 5) break;" if (parenthesized_expression "(puVar14 == puVar25 + 5)" ( (binary_expression "puVar14 == puVar25 + 5" identifier == (binary_expression "puVar25 + 5" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar25 = puVar25 + 0xe;" (assignment_expression "puVar25 = puVar25 + 0xe" identifier = (binary_expression "puVar25 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar17 = puVar17 + 0xe;" (assignment_expression "puVar17 = puVar17 + 0xe" identifier = (binary_expression "puVar17 + 0xe" identifier + number_literal)) ;) })) (expression_statement "puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;" (assignment_expression "puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" identifier = (binary_expression "puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" identifier + (binary_expression "((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" (parenthesized_expression "((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2)" ( (binary_expression "(((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2" (parenthesized_expression "(((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff)" ( (binary_expression "((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff" (binary_expression "((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7" (parenthesized_expression "((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3)" ( (binary_expression "(uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3" (call_expression "(uint)((int)puVar25 + (-0x24 - (int)puVar12))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar25 + (-0x24 - (int)puVar12))" ( (binary_expression "(int)puVar25 + (-0x24 - (int)puVar12)" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x24 - (int)puVar12)" ( (binary_expression "-0x24 - (int)puVar12" number_literal - (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) >> number_literal) )) * number_literal) & number_literal) )) + number_literal) )) * number_literal))) ;) })) (expression_statement "puVar4 = puVar14 + 9;" (assignment_expression "puVar4 = puVar14 + 9" identifier = (binary_expression "puVar14 + 9" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar25;" (assignment_expression "puVar8 = puVar25" identifier = identifier) ;) (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" identifier = identifier) ;) (if_statement "if (puVar23 != puVar14) {\n    do {\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar23 != puVar15);\nLAB_001a5a78:\n    puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }" if (parenthesized_expression "(puVar23 != puVar14)" ( (binary_expression "puVar23 != puVar14" identifier != identifier) )) (compound_statement "{\n    do {\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar23 != puVar15);\nLAB_001a5a78:\n    puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }" { (do_statement "do {\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar23 != puVar15);" do (compound_statement "{\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    }" { (while_statement "while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }" { (expression_statement "uVar24 = puVar4[-9];" (assignment_expression "uVar24 = puVar4[-9]" identifier = (subscript_expression "puVar4[-9]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar4[-8];" (assignment_expression "uVar22 = puVar4[-8]" identifier = (subscript_expression "puVar4[-8]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = puVar4[-7];" (assignment_expression "uVar21 = puVar4[-7]" identifier = (subscript_expression "puVar4[-7]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar4[-6];" (assignment_expression "uVar20 = puVar4[-6]" identifier = (subscript_expression "puVar4[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar4[-5];" (assignment_expression "uVar19 = puVar4[-5]" identifier = (subscript_expression "puVar4[-5]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar4[-4];" (assignment_expression "uVar18 = puVar4[-4]" identifier = (subscript_expression "puVar4[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar4[-3];" (assignment_expression "uVar5 = puVar4[-3]" identifier = (subscript_expression "puVar4[-3]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = (undefined4 *)puVar4[-2];" (assignment_expression "puVar15 = (undefined4 *)puVar4[-2]" identifier = (cast_expression "(undefined4 *)puVar4[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar8[7] = puVar8 + 9;" (assignment_expression "puVar8[7] = puVar8 + 9" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = (binary_expression "puVar8 + 9" identifier + number_literal)) ;) (expression_statement "*puVar8 = uVar24;" (assignment_expression "*puVar8 = uVar24" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "puVar8[1] = uVar22;" (assignment_expression "puVar8[1] = uVar22" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = uVar21;" (assignment_expression "puVar8[2] = uVar21" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[3] = uVar20;" (assignment_expression "puVar8[3] = uVar20" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[4] = uVar19;" (assignment_expression "puVar8[4] = uVar19" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[5] = uVar18;" (assignment_expression "puVar8[5] = uVar18" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[6] = uVar5;" (assignment_expression "puVar8[6] = uVar5" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar4 != puVar15) break;" if (parenthesized_expression "(puVar4 != puVar15)" ( (binary_expression "puVar4 != puVar15" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar19 = puVar4[1];" (assignment_expression "uVar19 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar4[2];" (assignment_expression "uVar18 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar4[3];" (assignment_expression "uVar5 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "puVar8[9] = *puVar4;" (assignment_expression "puVar8[9] = *puVar4" (subscript_expression "puVar8[9]" identifier [ number_literal ]) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar8[10] = uVar19;" (assignment_expression "puVar8[10] = uVar19" (subscript_expression "puVar8[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[0xb] = uVar18;" (assignment_expression "puVar8[0xb] = uVar18" (subscript_expression "puVar8[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[0xc] = uVar5;" (assignment_expression "puVar8[0xc] = uVar5" (subscript_expression "puVar8[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15 = puVar4 + 5;" (assignment_expression "puVar15 = puVar4 + 5" identifier = (binary_expression "puVar4 + 5" identifier + number_literal)) ;) (expression_statement "puVar4[-2] = puVar4;" (assignment_expression "puVar4[-2] = puVar4" (subscript_expression "puVar4[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar5 = puVar4[-1];" (assignment_expression "uVar5 = puVar4[-1]" identifier = (subscript_expression "puVar4[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar4[-1] = 0;" (assignment_expression "puVar4[-1] = 0" (subscript_expression "puVar4[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[8] = uVar5;" (assignment_expression "puVar8[8] = uVar5" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar4 + 0xe;" (assignment_expression "puVar4 = puVar4 + 0xe" identifier = (binary_expression "puVar4 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + 0xe;" (assignment_expression "puVar8 = puVar8 + 0xe" identifier = (binary_expression "puVar8 + 0xe" identifier + number_literal)) ;) (if_statement "if (puVar23 == puVar15) goto LAB_001a5a78;" if (parenthesized_expression "(puVar23 == puVar15)" ( (binary_expression "puVar23 == puVar15" identifier == identifier) )) (goto_statement "goto LAB_001a5a78;" goto statement_identifier ;)) })) (expression_statement "uVar5 = *puVar4;" (assignment_expression "uVar5 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "uVar18 = puVar4[-1];" (assignment_expression "uVar18 = puVar4[-1]" identifier = (subscript_expression "puVar4[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar8[7] = puVar15;" (assignment_expression "puVar8[7] = puVar15" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[9] = uVar5;" (assignment_expression "puVar8[9] = uVar5" (subscript_expression "puVar8[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15 = puVar4 + 5;" (assignment_expression "puVar15 = puVar4 + 5" identifier = (binary_expression "puVar4 + 5" identifier + number_literal)) ;) (expression_statement "puVar4[-2] = puVar4;" (assignment_expression "puVar4[-2] = puVar4" (subscript_expression "puVar4[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[-1] = 0;" (assignment_expression "puVar4[-1] = 0" (subscript_expression "puVar4[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar8[8] = uVar18;" (assignment_expression "puVar8[8] = uVar18" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar4 + 0xe;" (assignment_expression "puVar4 = puVar4 + 0xe" identifier = (binary_expression "puVar4 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + 0xe;" (assignment_expression "puVar8 = puVar8 + 0xe" identifier = (binary_expression "puVar8 + 0xe" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar23 != puVar15)" ( (binary_expression "puVar23 != puVar15" identifier != identifier) )) ;) (labeled_statement "LAB_001a5a78:\n    puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;" statement_identifier : (expression_statement "puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;" (assignment_expression "puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" identifier = (binary_expression "puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" identifier + (binary_expression "((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" (parenthesized_expression "((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1)" ( (binary_expression "(((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1" (parenthesized_expression "(((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff)" ( (binary_expression "((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff" (binary_expression "((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7" (parenthesized_expression "((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3)" ( (binary_expression "(uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3" (call_expression "(uint)((int)puVar23 + (-0x38 - (int)puVar14))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar23 + (-0x38 - (int)puVar14))" ( (binary_expression "(int)puVar23 + (-0x38 - (int)puVar14)" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x38 - (int)puVar14)" ( (binary_expression "-0x38 - (int)puVar14" number_literal - (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) >> number_literal) )) * number_literal) & number_literal) )) + number_literal) )) * number_literal))) ;)) })) (while_statement "while (puVar17 != puVar23) {\n    puVar14 = puVar17 + 7;\n    puVar4 = puVar17 + 9;\n    puVar17 = puVar17 + 0xe;\n    if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }\n  }" while (parenthesized_expression "(puVar17 != puVar23)" ( (binary_expression "puVar17 != puVar23" identifier != identifier) )) (compound_statement "{\n    puVar14 = puVar17 + 7;\n    puVar4 = puVar17 + 9;\n    puVar17 = puVar17 + 0xe;\n    if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }\n  }" { (expression_statement "puVar14 = puVar17 + 7;" (assignment_expression "puVar14 = puVar17 + 7" identifier = (binary_expression "puVar17 + 7" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar17 + 9;" (assignment_expression "puVar4 = puVar17 + 9" identifier = (binary_expression "puVar17 + 9" identifier + number_literal)) ;) (expression_statement "puVar17 = puVar17 + 0xe;" (assignment_expression "puVar17 = puVar17 + 0xe" identifier = (binary_expression "puVar17 + 0xe" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }" if (parenthesized_expression "((undefined4 *)*puVar14 != puVar4)" ( (binary_expression "(undefined4 *)*puVar14 != puVar4" (cast_expression "(undefined4 *)*puVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier)) != identifier) )) (compound_statement "{\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }" { (expression_statement "(**(code **)(pcVar27 + 0x28cb34))();" (call_expression "(**(code **)(pcVar27 + 0x28cb34))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x28cb34))" ( (pointer_expression "**(code **)(pcVar27 + 0x28cb34)" * (pointer_expression "*(code **)(pcVar27 + 0x28cb34)" * (cast_expression "(code **)(pcVar27 + 0x28cb34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x28cb34)" ( (binary_expression "pcVar27 + 0x28cb34" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) })) (if_statement "if (puVar12 != (undefined4 *)0x0) {\n    (**(code **)(pcVar27 + 0x28cb34))(puVar12);\n  }" if (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar27 + 0x28cb34))(puVar12);\n  }" { (expression_statement "(**(code **)(pcVar27 + 0x28cb34))(puVar12);" (call_expression "(**(code **)(pcVar27 + 0x28cb34))(puVar12)" (parenthesized_expression "(**(code **)(pcVar27 + 0x28cb34))" ( (pointer_expression "**(code **)(pcVar27 + 0x28cb34)" * (pointer_expression "*(code **)(pcVar27 + 0x28cb34)" * (cast_expression "(code **)(pcVar27 + 0x28cb34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x28cb34)" ( (binary_expression "pcVar27 + 0x28cb34" identifier + number_literal) ))))) )) (argument_list "(puVar12)" ( identifier ))) ;) })) (expression_statement "*puVar7 = puVar3;" (assignment_expression "*puVar7 = puVar3" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar7[1] = puVar25;" (assignment_expression "puVar7[1] = puVar25" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = iVar6;" (assignment_expression "puVar7[2] = iVar6" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : : IDENT : :) IDENT (ERROR < LIT) , (ERROR (function_declarator IDENT (ERROR >) (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) { IDENT) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (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 IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT (ERROR : : IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) + LIT) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (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) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) ))))) + LIT) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) << LIT)) )) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT)) )) * LIT))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) ))))) + LIT) ))) )) (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )) * LIT) )))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) ))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (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 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * LIT)) )))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) }))) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (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 (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_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 IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (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 IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = (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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) >> LIT) )) * LIT) & LIT) )) + LIT) )) * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (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 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 IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (break_statement break ;)) (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 (subscript_expression IDENT [ LIT ]) = (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)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) >> LIT) )) * LIT) & LIT) )) + LIT) )) * LIT))) ;)) })) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) (ERROR }))
(declaration "void __thiscall\ngold::Output_data_dynamic::Dynamic_entry::write<32,true>\n          (Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)\n\n{\n  uint uVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Output_data_dynamic::Dynamic_entry::" (identifier "gold") (: ":") (: ":") (identifier "Output_data_dynamic") (: ":") (: ":") (identifier "Dynamic_entry") (: ":") (: ":")) (identifier "write") (ERROR "<32" (< "<") (number_literal "32")) (, ",") (ERROR "true>\n          (Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)\n\n{\n  uint" (function_declarator "true>\n          (Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)" (identifier "true") (ERROR ">" (> ">")) (parameter_list "(Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)" (( "(") (parameter_declaration "Dynamic_entry *this" (type_identifier "Dynamic_entry") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "uchar *param_1" (type_identifier "uchar") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "Stringpool_template *param_2" (type_identifier "Stringpool_template") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) ({ "{") (identifier "uint")) (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined *puVar16;" (type_identifier "undefined") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined4 uVar18;" (type_identifier "undefined4") (identifier "uVar18") (; ";")) (declaration "undefined4 uVar19;" (type_identifier "undefined4") (identifier "uVar19") (; ";")) (declaration "undefined4 uVar20;" (type_identifier "undefined4") (identifier "uVar20") (; ";")) (declaration "undefined4 uVar21;" (type_identifier "undefined4") (identifier "uVar21") (; ";")) (declaration "undefined4 uVar22;" (type_identifier "undefined4") (identifier "uVar22") (; ";")) (declaration "undefined4 *puVar23;" (type_identifier "undefined4") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "undefined4 uVar24;" (type_identifier "undefined4") (identifier "uVar24") (; ";")) (declaration "undefined4 *puVar25;" (type_identifier "undefined4") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "undefined *puVar26;" (type_identifier "undefined") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "code *pcVar27;" (type_identifier "code") (pointer_declarator "*pcVar27" (* "*") (identifier "pcVar27")) (; ";")) (declaration "code *pcVar28;" (type_identifier "code") (pointer_declarator "*pcVar28" (* "*") (identifier "pcVar28")) (; ";")) (expression_statement "uVar1 = *(int *)(this + 0xc) + 5;" (assignment_expression "uVar1 = *(int *)(this + 0xc) + 5" (identifier "uVar1") (= "=") (binary_expression "*(int *)(this + 0xc) + 5" (pointer_expression "*(int *)(this + 0xc)" (* "*") (cast_expression "(int *)(this + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xc)" (( "(") (binary_expression "this + 0xc" (identifier "this") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "5"))) (; ";")) (if_statement "if (uVar1 < 5) {\n                    \n                    \n    (*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))();\n    return;\n  }" (if "if") (parenthesized_expression "(uVar1 < 5)" (( "(") (binary_expression "uVar1 < 5" (identifier "uVar1") (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                    \n                    \n    (*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))();\n    return;\n  }" ({ "{") (expression_statement "(*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))();" (call_expression "(*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))()" (parenthesized_expression "(*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))" (( "(") (pointer_expression "*(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0)" (* "*") (cast_expression "(code *)(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0)" (( "(") (binary_expression "Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0" (binary_expression "Position_dependent_options::default_options_ +\n              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" (identifier "Position_dependent_options") (ERROR "::default_options_" (: ":") (: ":") (identifier "default_options_")) (+ "+") (pointer_expression "*(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" (* "*") (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0" (binary_expression "PTR_s_alize_xindex_004323b4 + uVar1 * 4" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (binary_expression "uVar1 * 4" (identifier "uVar1") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x5dd0")) () ")"))))) (+ "+") (number_literal "0x37e0")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(int *)(*(int *)this + 0x20) < 0) {\n    uVar5 = *(undefined4 *)(this + 8);\n    *(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc);\n    *(undefined4 *)param_1 = uVar5;\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)this + 0x20) < 0)" (( "(") (binary_expression "*(int *)(*(int *)this + 0x20) < 0" (pointer_expression "*(int *)(*(int *)this + 0x20)" (* "*") (cast_expression "(int *)(*(int *)this + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)this + 0x20)" (( "(") (binary_expression "*(int *)this + 0x20" (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (+ "+") (number_literal "0x20")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    uVar5 = *(undefined4 *)(this + 8);\n    *(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc);\n    *(undefined4 *)param_1 = uVar5;\n    return;\n  }" ({ "{") (expression_statement "uVar5 = *(undefined4 *)(this + 8);" (assignment_expression "uVar5 = *(undefined4 *)(this + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(this + 8)" (* "*") (cast_expression "(undefined4 *)(this + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc);" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc)" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc)" (pointer_expression "*(int *)(this + 0xc)" (* "*") (cast_expression "(int *)(this + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xc)" (( "(") (binary_expression "this + 0xc" (identifier "this") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (pointer_expression "*(int *)(*(int *)this + 0xc)" (* "*") (cast_expression "(int *)(*(int *)this + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)this + 0xc)" (( "(") (binary_expression "*(int *)this + 0xc" (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)param_1 = uVar5;" (assignment_expression "*(undefined4 *)param_1 = uVar5" (pointer_expression "*(undefined4 *)param_1" (* "*") (cast_expression "(undefined4 *)param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (= "=") (identifier "uVar5")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar16 = PTR_s_alize_xindex_004323b4 + 0x7850;" (assignment_expression "puVar16 = PTR_s_alize_xindex_004323b4 + 0x7850" (identifier "puVar16") (= "=") (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7850" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "0x7850"))) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar16);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar16)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar16)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0xc5") (, ",") (identifier "puVar16") () ")"))) (; ";")) (expression_statement "piVar13 = (int *)&DAT_00000069;" (assignment_expression "piVar13 = (int *)&DAT_00000069" (identifier "piVar13") (= "=") (cast_expression "(int *)&DAT_00000069" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000069" (& "&") (identifier "DAT_00000069")))) (; ";")) (expression_statement "piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec);" (assignment_expression "piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec)" (identifier "piVar9") (= "=") (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + -0x5cec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0x5cec)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x5cec")) () ")")))) (; ";")) (expression_statement "puVar26 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar26 = PTR_do_gold_unreachable_004323c4" (identifier "puVar26") (= "=") (identifier "PTR_do_gold_unreachable_004323c4")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar16 + 0x78f8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar16 + 0x78f8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(piVar9,0x69,puVar16 + 0x78f8)" (( "(") (identifier "piVar9") (, ",") (number_literal "0x69") (, ",") (binary_expression "puVar16 + 0x78f8" (identifier "puVar16") (+ "+") (number_literal "0x78f8")) () ")"))) (; ";")) (expression_statement "uVar1 = piVar9[3];" (assignment_expression "uVar1 = piVar9[3]" (identifier "uVar1") (= "=") (subscript_expression "piVar9[3]" (identifier "piVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (uVar1 + 5 < 5) {\n                    \n                    \n    (*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();\n    return;\n  }" (if "if") (parenthesized_expression "(uVar1 + 5 < 5)" (( "(") (binary_expression "uVar1 + 5 < 5" (binary_expression "uVar1 + 5" (identifier "uVar1") (+ "+") (number_literal "5")) (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                    \n                    \n    (*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();\n    return;\n  }" ({ "{") (expression_statement "(*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();" (call_expression "(*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))()" (parenthesized_expression "(*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))" (( "(") (pointer_expression "*(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090)" (* "*") (cast_expression "(code *)(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090)" (( "(") (binary_expression "puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090" (binary_expression "puVar26 +\n              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" (identifier "puVar26") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4)" (( "(") (binary_expression "*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4" (binary_expression "*(int *)(puVar26 + 0x28d274) + 0x5de4" (pointer_expression "*(int *)(puVar26 + 0x28d274)" (* "*") (cast_expression "(int *)(puVar26 + 0x28d274)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x28d274)" (( "(") (binary_expression "puVar26 + 0x28d274" (identifier "puVar26") (+ "+") (number_literal "0x28d274")) () ")")))) (+ "+") (number_literal "0x5de4")) (+ "+") (binary_expression "(uVar1 + 5) * 4" (parenthesized_expression "(uVar1 + 5)" (( "(") (binary_expression "uVar1 + 5" (identifier "uVar1") (+ "+") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x295090")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" (identifier "iVar6") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (if_statement "if (*(int *)(iVar6 + 0x20) < 0) {\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);\n    uVar10 = piVar9[2];\n    piVar13[1] = 0;\n    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;\n    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 0x20) < 0)" (( "(") (binary_expression "*(int *)(iVar6 + 0x20) < 0" (pointer_expression "*(int *)(iVar6 + 0x20)" (* "*") (cast_expression "(int *)(iVar6 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);\n    uVar10 = piVar9[2];\n    piVar13[1] = 0;\n    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;\n    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;\n    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }" ({ "{") (expression_statement "uVar2 = uVar1 + *(int *)(iVar6 + 0xc);" (assignment_expression "uVar2 = uVar1 + *(int *)(iVar6 + 0xc)" (identifier "uVar2") (= "=") (binary_expression "uVar1 + *(int *)(iVar6 + 0xc)" (identifier "uVar1") (+ "+") (pointer_expression "*(int *)(iVar6 + 0xc)" (* "*") (cast_expression "(int *)(iVar6 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xc)" (( "(") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (expression_statement "uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);" (assignment_expression "uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8)" (identifier "uVar1") (= "=") (binary_expression "(uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8)" (call_expression "(uint)(uVar2 < uVar1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 < uVar1)" (( "(") (binary_expression "uVar2 < uVar1" (identifier "uVar2") (< "<") (identifier "uVar1")) () ")"))) (+ "+") (pointer_expression "*(int *)(iVar6 + 8)" (* "*") (cast_expression "(int *)(iVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "uVar10 = piVar9[2];" (assignment_expression "uVar10 = piVar9[2]" (identifier "uVar10") (= "=") (subscript_expression "piVar9[2]" (identifier "piVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "piVar13[1] = 0;" (assignment_expression "piVar13[1] = 0" (subscript_expression "piVar13[1]" (identifier "piVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar13[3]" (identifier "piVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10" (binary_expression "(uVar1 >> 0x10) << 0x18" (parenthesized_expression "(uVar1 >> 0x10)" (( "(") (binary_expression "uVar1 >> 0x10" (identifier "uVar1") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar1 >> 0x18) << 0x10" (parenthesized_expression "(uVar1 >> 0x18)" (( "(") (binary_expression "uVar1 >> 0x18" (identifier "uVar1") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff)" (( "(") (binary_expression "(uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff" (binary_expression "(uVar1 & 0xff) << 8" (parenthesized_expression "(uVar1 & 0xff)" (( "(") (binary_expression "uVar1 & 0xff" (identifier "uVar1") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar1 >> 8 & 0xff" (binary_expression "uVar1 >> 8" (identifier "uVar1") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar13[2]" (identifier "piVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10" (binary_expression "(uVar2 >> 0x10) << 0x18" (parenthesized_expression "(uVar2 >> 0x10)" (( "(") (binary_expression "uVar2 >> 0x10" (identifier "uVar2") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar2 >> 0x18) << 0x10" (parenthesized_expression "(uVar2 >> 0x18)" (( "(") (binary_expression "uVar2 >> 0x18" (identifier "uVar2") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff)" (( "(") (binary_expression "(uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff" (binary_expression "(uVar2 & 0xff) << 8" (parenthesized_expression "(uVar2 & 0xff)" (( "(") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" (identifier "uVar2") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "*piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (= "=") (binary_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10" (binary_expression "(uVar10 >> 0x10) << 0x18" (parenthesized_expression "(uVar10 >> 0x10)" (( "(") (binary_expression "uVar10 >> 0x10" (identifier "uVar10") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar10 >> 0x18) << 0x10" (parenthesized_expression "(uVar10 >> 0x18)" (( "(") (binary_expression "uVar10 >> 0x18" (identifier "uVar10") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff)" (( "(") (binary_expression "(uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff" (binary_expression "(uVar10 & 0xff) << 8" (parenthesized_expression "(uVar10 & 0xff)" (( "(") (binary_expression "uVar10 & 0xff" (identifier "uVar10") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" (identifier "uVar10") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar6 = *(int *)(puVar26 + 0x28d274) + 0x7850;" (assignment_expression "iVar6 = *(int *)(puVar26 + 0x28d274) + 0x7850" (identifier "iVar6") (= "=") (binary_expression "*(int *)(puVar26 + 0x28d274) + 0x7850" (pointer_expression "*(int *)(puVar26 + 0x28d274)" (* "*") (cast_expression "(int *)(puVar26 + 0x28d274)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x28d274)" (( "(") (binary_expression "puVar26 + 0x28d274" (identifier "puVar26") (+ "+") (number_literal "0x28d274")) () ")")))) (+ "+") (number_literal "0x7850"))) (; ";")) (expression_statement "(**(code **)(puVar26 + 0x28d284))(*(int *)(puVar26 + 0x28d274) + -0x4fe0,0xc5,iVar6);" (call_expression "(**(code **)(puVar26 + 0x28d284))(*(int *)(puVar26 + 0x28d274) + -0x4fe0,0xc5,iVar6)" (parenthesized_expression "(**(code **)(puVar26 + 0x28d284))" (( "(") (pointer_expression "**(code **)(puVar26 + 0x28d284)" (* "*") (pointer_expression "*(code **)(puVar26 + 0x28d284)" (* "*") (cast_expression "(code **)(puVar26 + 0x28d284)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x28d284)" (( "(") (binary_expression "puVar26 + 0x28d284" (identifier "puVar26") (+ "+") (number_literal "0x28d284")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar26 + 0x28d274) + -0x4fe0,0xc5,iVar6)" (( "(") (binary_expression "*(int *)(puVar26 + 0x28d274) + -0x4fe0" (pointer_expression "*(int *)(puVar26 + 0x28d274)" (* "*") (cast_expression "(int *)(puVar26 + 0x28d274)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x28d274)" (( "(") (binary_expression "puVar26 + 0x28d274" (identifier "puVar26") (+ "+") (number_literal "0x28d274")) () ")")))) (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0xc5") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "puVar14 = (undefined4 *)&DAT_00000069;" (assignment_expression "puVar14 = (undefined4 *)&DAT_00000069" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)&DAT_00000069" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000069" (& "&") (identifier "DAT_00000069")))) (; ";")) (expression_statement "pcVar27 = *(code **)(puVar26 + 0x28d284);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0x28d284)" (identifier "pcVar27") (= "=") (pointer_expression "*(code **)(puVar26 + 0x28d284)" (* "*") (cast_expression "(code **)(puVar26 + 0x28d284)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x28d284)" (( "(") (binary_expression "puVar26 + 0x28d284" (identifier "puVar26") (+ "+") (number_literal "0x28d284")) () ")"))))) (; ";")) (expression_statement "piVar9 = (int *)(*(int *)(puVar26 + 0x28d274) + -0x5cec);" (assignment_expression "piVar9 = (int *)(*(int *)(puVar26 + 0x28d274) + -0x5cec)" (identifier "piVar9") (= "=") (cast_expression "(int *)(*(int *)(puVar26 + 0x28d274) + -0x5cec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar26 + 0x28d274) + -0x5cec)" (( "(") (binary_expression "*(int *)(puVar26 + 0x28d274) + -0x5cec" (pointer_expression "*(int *)(puVar26 + 0x28d274)" (* "*") (cast_expression "(int *)(puVar26 + 0x28d274)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x28d274)" (( "(") (binary_expression "puVar26 + 0x28d274" (identifier "puVar26") (+ "+") (number_literal "0x28d274")) () ")")))) (+ "+") (number_literal "-0x5cec")) () ")")))) (; ";")) (expression_statement "(*pcVar27)(piVar9,0x69,iVar6 + 0x78f8);" (call_expression "(*pcVar27)(piVar9,0x69,iVar6 + 0x78f8)" (parenthesized_expression "(*pcVar27)" (( "(") (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) () ")")) (argument_list "(piVar9,0x69,iVar6 + 0x78f8)" (( "(") (identifier "piVar9") (, ",") (number_literal "0x69") (, ",") (binary_expression "iVar6 + 0x78f8" (identifier "iVar6") (+ "+") (number_literal "0x78f8")) () ")"))) (; ";")) (expression_statement "uVar1 = piVar9[3];" (assignment_expression "uVar1 = piVar9[3]" (identifier "uVar1") (= "=") (subscript_expression "piVar9[3]" (identifier "piVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (uVar1 + 5 < 5) {\n                    \n                    \n    (*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();\n    return;\n  }" (if "if") (parenthesized_expression "(uVar1 + 5 < 5)" (( "(") (binary_expression "uVar1 + 5 < 5" (binary_expression "uVar1 + 5" (identifier "uVar1") (+ "+") (number_literal "5")) (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                    \n                    \n    (*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();\n    return;\n  }" ({ "{") (expression_statement "(*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();" (call_expression "(*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))()" (parenthesized_expression "(*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))" (( "(") (pointer_expression "*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8)" (* "*") (parenthesized_expression "(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8)" (( "(") (binary_expression "pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8" (binary_expression "pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" (identifier "pcVar27") (+ "+") (pointer_expression "*(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" (* "*") (cast_expression "(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4" (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + 0x5df8" (pointer_expression "*(int *)(pcVar27 + 0x28d0bc)" (* "*") (cast_expression "(int *)(pcVar27 + 0x28d0bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x28d0bc)" (( "(") (binary_expression "pcVar27 + 0x28d0bc" (identifier "pcVar27") (+ "+") (number_literal "0x28d0bc")) () ")")))) (+ "+") (number_literal "0x5df8")) (+ "+") (binary_expression "(uVar1 + 5) * 4" (parenthesized_expression "(uVar1 + 5)" (( "(") (binary_expression "uVar1 + 5" (identifier "uVar1") (+ "+") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x294ed8")) () ")"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" (identifier "iVar6") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (if_statement "if (*(int *)(iVar6 + 0x20) < 0) {\n    iVar11 = *(int *)(iVar6 + 8);\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    iVar6 = piVar9[2];\n    *puVar14 = 0;\n    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;\n    puVar14[1] = iVar6;\n    puVar14[3] = uVar2;\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 0x20) < 0)" (( "(") (binary_expression "*(int *)(iVar6 + 0x20) < 0" (pointer_expression "*(int *)(iVar6 + 0x20)" (* "*") (cast_expression "(int *)(iVar6 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar11 = *(int *)(iVar6 + 8);\n    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);\n    iVar6 = piVar9[2];\n    *puVar14 = 0;\n    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;\n    puVar14[1] = iVar6;\n    puVar14[3] = uVar2;\n    return;\n  }" ({ "{") (expression_statement "iVar11 = *(int *)(iVar6 + 8);" (assignment_expression "iVar11 = *(int *)(iVar6 + 8)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar6 + 8)" (* "*") (cast_expression "(int *)(iVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar2 = uVar1 + *(int *)(iVar6 + 0xc);" (assignment_expression "uVar2 = uVar1 + *(int *)(iVar6 + 0xc)" (identifier "uVar2") (= "=") (binary_expression "uVar1 + *(int *)(iVar6 + 0xc)" (identifier "uVar1") (+ "+") (pointer_expression "*(int *)(iVar6 + 0xc)" (* "*") (cast_expression "(int *)(iVar6 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xc)" (( "(") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (expression_statement "iVar6 = piVar9[2];" (assignment_expression "iVar6 = piVar9[2]" (identifier "iVar6") (= "=") (subscript_expression "piVar9[2]" (identifier "piVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;" (assignment_expression "puVar14[2] = (uint)(uVar2 < uVar1) + iVar11" (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(uint)(uVar2 < uVar1) + iVar11" (call_expression "(uint)(uVar2 < uVar1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 < uVar1)" (( "(") (binary_expression "uVar2 < uVar1" (identifier "uVar2") (< "<") (identifier "uVar1")) () ")"))) (+ "+") (identifier "iVar11"))) (; ";")) (expression_statement "puVar14[1] = iVar6;" (assignment_expression "puVar14[1] = iVar6" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "puVar14[3] = uVar2;" (assignment_expression "puVar14[3] = uVar2" (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar6 = *(int *)(pcVar27 + 0x28d0bc) + 0x7850;" (assignment_expression "iVar6 = *(int *)(pcVar27 + 0x28d0bc) + 0x7850" (identifier "iVar6") (= "=") (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + 0x7850" (pointer_expression "*(int *)(pcVar27 + 0x28d0bc)" (* "*") (cast_expression "(int *)(pcVar27 + 0x28d0bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x28d0bc)" (( "(") (binary_expression "pcVar27 + 0x28d0bc" (identifier "pcVar27") (+ "+") (number_literal "0x28d0bc")) () ")")))) (+ "+") (number_literal "0x7850"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x28d0cc))(*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0,0xc5,iVar6);" (call_expression "(**(code **)(pcVar27 + 0x28d0cc))(*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0,0xc5,iVar6)" (parenthesized_expression "(**(code **)(pcVar27 + 0x28d0cc))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x28d0cc)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x28d0cc)" (* "*") (cast_expression "(code **)(pcVar27 + 0x28d0cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x28d0cc)" (( "(") (binary_expression "pcVar27 + 0x28d0cc" (identifier "pcVar27") (+ "+") (number_literal "0x28d0cc")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0,0xc5,iVar6)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0" (pointer_expression "*(int *)(pcVar27 + 0x28d0bc)" (* "*") (cast_expression "(int *)(pcVar27 + 0x28d0bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x28d0bc)" (( "(") (binary_expression "pcVar27 + 0x28d0bc" (identifier "pcVar27") (+ "+") (number_literal "0x28d0bc")) () ")")))) (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0xc5") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "uVar1 = 0x69;" (assignment_expression "uVar1 = 0x69" (identifier "uVar1") (= "=") (number_literal "0x69")) (; ";")) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x28d0cc);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x28d0cc)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x28d0cc)" (* "*") (cast_expression "(code **)(pcVar27 + 0x28d0cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x28d0cc)" (( "(") (binary_expression "pcVar27 + 0x28d0cc" (identifier "pcVar27") (+ "+") (number_literal "0x28d0cc")) () ")"))))) (; ";")) (expression_statement "piVar9 = (int *)(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec);" (assignment_expression "piVar9 = (int *)(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec)" (identifier "piVar9") (= "=") (cast_expression "(int *)(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x28d0bc) + -0x5cec" (pointer_expression "*(int *)(pcVar27 + 0x28d0bc)" (* "*") (cast_expression "(int *)(pcVar27 + 0x28d0bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x28d0bc)" (( "(") (binary_expression "pcVar27 + 0x28d0bc" (identifier "pcVar27") (+ "+") (number_literal "0x28d0bc")) () ")")))) (+ "+") (number_literal "-0x5cec")) () ")")))) (; ";")) (expression_statement "(*pcVar28)(piVar9,0x69,iVar6 + 0x78f8);" (call_expression "(*pcVar28)(piVar9,0x69,iVar6 + 0x78f8)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(piVar9,0x69,iVar6 + 0x78f8)" (( "(") (identifier "piVar9") (, ",") (number_literal "0x69") (, ",") (binary_expression "iVar6 + 0x78f8" (identifier "iVar6") (+ "+") (number_literal "0x78f8")) () ")"))) (; ";")) (if_statement "if (uVar1 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(uVar1 == 0)" (( "(") (binary_expression "uVar1 == 0" (identifier "uVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar7 = (undefined4 *)piVar9[1];" (assignment_expression "puVar7 = (undefined4 *)piVar9[1]" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)piVar9[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar17 = (undefined4 *)&DAT_aaaaaaab;" (assignment_expression "puVar17 = (undefined4 *)&DAT_aaaaaaab" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)&DAT_aaaaaaab" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_aaaaaaab" (& "&") (identifier "DAT_aaaaaaab")))) (; ";")) (expression_statement "puVar14 = puVar7;" (assignment_expression "puVar14 = puVar7" (identifier "puVar14") (= "=") (identifier "puVar7")) (; ";")) (expression_statement "uVar2 = uVar1;" (assignment_expression "uVar2 = uVar1" (identifier "uVar2") (= "=") (identifier "uVar1")) (; ";")) (if_statement "if (uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)) {\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);\n    piVar9[1] = (int)(puVar7 + uVar1 * 6);\n    return;\n  }" (if "if") (parenthesized_expression "(uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555))" (( "(") (binary_expression "uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)" (identifier "uVar1") (<= "<=") (call_expression "(uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)" (( "(") (binary_expression "(piVar9[2] - (int)puVar7 >> 3) * -0x55555555" (parenthesized_expression "(piVar9[2] - (int)puVar7 >> 3)" (( "(") (binary_expression "piVar9[2] - (int)puVar7 >> 3" (binary_expression "piVar9[2] - (int)puVar7" (subscript_expression "piVar9[2]" (identifier "piVar9") ([ "[") (number_literal "2") (] "]")) (- "-") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7"))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x55555555")) () ")")))) () ")")) (compound_statement "{\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);\n    piVar9[1] = (int)(puVar7 + uVar1 * 6);\n    return;\n  }" ({ "{") (do_statement "do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar2 != 0);" (do "do") (compound_statement "{\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar2 = uVar2 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    }" ({ "{") (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = uVar2 - 1;" (assignment_expression "uVar2 = uVar2 - 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 - 1" (identifier "uVar2") (- "-") (number_literal "1"))) (; ";")) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[4] = 0;" (assignment_expression "puVar14[4] = 0" (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14 = puVar14 + 6;" (assignment_expression "puVar14 = puVar14 + 6" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 6" (identifier "puVar14") (+ "+") (number_literal "6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "piVar9[1] = (int)(puVar7 + uVar1 * 6);" (assignment_expression "piVar9[1] = (int)(puVar7 + uVar1 * 6)" (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)(puVar7 + uVar1 * 6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar7 + uVar1 * 6)" (( "(") (binary_expression "puVar7 + uVar1 * 6" (identifier "puVar7") (+ "+") (binary_expression "uVar1 * 6" (identifier "uVar1") (* "*") (number_literal "6"))) () ")")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" (identifier "iVar6") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (expression_statement "puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3);" (assignment_expression "puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3)" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)((int)puVar7 - iVar6 >> 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 - iVar6 >> 3)" (( "(") (binary_expression "(int)puVar7 - iVar6 >> 3" (binary_expression "(int)puVar7 - iVar6" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (- "-") (identifier "iVar6")) (>> ">>") (number_literal "3")) () ")")))) (; ";")) (expression_statement "uVar2 = (int)puVar14 * -0x55555555;" (assignment_expression "uVar2 = (int)puVar14 * -0x55555555" (identifier "uVar2") (= "=") (binary_expression "(int)puVar14 * -0x55555555" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (* "*") (number_literal "-0x55555555"))) (; ";")) (if_statement "if (uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU) {\n    uVar10 = uVar2;\n    if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }\n    uVar10 = uVar10 + uVar2;\n    iVar11 = -0x10;\n    if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }\n    puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11);\n    puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6));\n    uVar10 = uVar1;\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);\n    puVar23 = (undefined4 *)piVar9[1];\n    puVar12 = (undefined4 *)*piVar9;\n    puVar7 = puVar17;\n    for (puVar14 = puVar12; puVar14 != puVar23; puVar14 = puVar14 + 6) {\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }\n    if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }\n    *piVar9 = (int)puVar17;\n    piVar9[2] = (int)puVar17 + iVar11;\n    piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6);\n    return;\n  }" (if "if") (parenthesized_expression "(uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU)" (( "(") (binary_expression "uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU" (identifier "uVar1") (<= "<=") (binary_expression "(int)puVar14 * 0x55555555 + 0xaaaaaaaU" (binary_expression "(int)puVar14 * 0x55555555" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (* "*") (number_literal "0x55555555")) (+ "+") (number_literal "0xaaaaaaaU"))) () ")")) (compound_statement "{\n    uVar10 = uVar2;\n    if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }\n    uVar10 = uVar10 + uVar2;\n    iVar11 = -0x10;\n    if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }\n    puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11);\n    puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6));\n    uVar10 = uVar1;\n    do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);\n    puVar23 = (undefined4 *)piVar9[1];\n    puVar12 = (undefined4 *)*piVar9;\n    puVar7 = puVar17;\n    for (puVar14 = puVar12; puVar14 != puVar23; puVar14 = puVar14 + 6) {\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }\n    if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }\n    *piVar9 = (int)puVar17;\n    piVar9[2] = (int)puVar17 + iVar11;\n    piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6);\n    return;\n  }" ({ "{") (expression_statement "uVar10 = uVar2;" (assignment_expression "uVar10 = uVar2" (identifier "uVar10") (= "=") (identifier "uVar2")) (; ";")) (if_statement "if (uVar2 <= uVar1) {\n      uVar10 = uVar1;\n    }" (if "if") (parenthesized_expression "(uVar2 <= uVar1)" (( "(") (binary_expression "uVar2 <= uVar1" (identifier "uVar2") (<= "<=") (identifier "uVar1")) () ")")) (compound_statement "{\n      uVar10 = uVar1;\n    }" ({ "{") (expression_statement "uVar10 = uVar1;" (assignment_expression "uVar10 = uVar1" (identifier "uVar10") (= "=") (identifier "uVar1")) (; ";")) (} "}"))) (expression_statement "uVar10 = uVar10 + uVar2;" (assignment_expression "uVar10 = uVar10 + uVar2" (identifier "uVar10") (= "=") (binary_expression "uVar10 + uVar2" (identifier "uVar10") (+ "+") (identifier "uVar2"))) (; ";")) (expression_statement "iVar11 = -0x10;" (assignment_expression "iVar11 = -0x10" (identifier "iVar11") (= "=") (number_literal "-0x10")) (; ";")) (if_statement "if (uVar2 <= uVar10) {\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }" (if "if") (parenthesized_expression "(uVar2 <= uVar10)" (( "(") (binary_expression "uVar2 <= uVar10" (identifier "uVar2") (<= "<=") (identifier "uVar10")) () ")")) (compound_statement "{\n      if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }\n      iVar11 = uVar10 * 0x18;\n    }" ({ "{") (if_statement "if (0xaaaaaaa < uVar10) {\n        uVar10 = 0xaaaaaaa;\n      }" (if "if") (parenthesized_expression "(0xaaaaaaa < uVar10)" (( "(") (binary_expression "0xaaaaaaa < uVar10" (number_literal "0xaaaaaaa") (< "<") (identifier "uVar10")) () ")")) (compound_statement "{\n        uVar10 = 0xaaaaaaa;\n      }" ({ "{") (expression_statement "uVar10 = 0xaaaaaaa;" (assignment_expression "uVar10 = 0xaaaaaaa" (identifier "uVar10") (= "=") (number_literal "0xaaaaaaa")) (; ";")) (} "}"))) (expression_statement "iVar11 = uVar10 * 0x18;" (assignment_expression "iVar11 = uVar10 * 0x18" (identifier "iVar11") (= "=") (binary_expression "uVar10 * 0x18" (identifier "uVar10") (* "*") (number_literal "0x18"))) (; ";")) (} "}"))) (expression_statement "puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11);" (assignment_expression "puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11)" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar28 + 0x28cdf0))(iVar11)" (parenthesized_expression "(**(code **)(pcVar28 + 0x28cdf0))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0x28cdf0)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0x28cdf0)" (* "*") (cast_expression "(code **)(pcVar28 + 0x28cdf0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x28cdf0)" (( "(") (binary_expression "pcVar28 + 0x28cdf0" (identifier "pcVar28") (+ "+") (number_literal "0x28cdf0")) () ")"))))) () ")")) (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")"))))) (; ";")) (expression_statement "puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6));" (assignment_expression "puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6))" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 + ((int)puVar7 - iVar6))" (( "(") (binary_expression "(int)puVar17 + ((int)puVar7 - iVar6)" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (parenthesized_expression "((int)puVar7 - iVar6)" (( "(") (binary_expression "(int)puVar7 - iVar6" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (- "-") (identifier "iVar6")) () ")"))) () ")")))) (; ";")) (expression_statement "uVar10 = uVar1;" (assignment_expression "uVar10 = uVar1" (identifier "uVar10") (= "=") (identifier "uVar1")) (; ";")) (do_statement "do {\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    } while (uVar10 != 0);" (do "do") (compound_statement "{\n      *puVar14 = 0;\n      puVar14[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar14[3] = 0;\n      puVar14[2] = 0;\n      puVar14[4] = 0;\n      puVar14 = puVar14 + 6;\n    }" ({ "{") (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[1] = 0;" (assignment_expression "puVar14[1] = 0" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 - 1" (identifier "uVar10") (- "-") (number_literal "1"))) (; ";")) (expression_statement "puVar14[3] = 0;" (assignment_expression "puVar14[3] = 0" (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[2] = 0;" (assignment_expression "puVar14[2] = 0" (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14[4] = 0;" (assignment_expression "puVar14[4] = 0" (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14 = puVar14 + 6;" (assignment_expression "puVar14 = puVar14 + 6" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 6" (identifier "puVar14") (+ "+") (number_literal "6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar10 != 0)" (( "(") (binary_expression "uVar10 != 0" (identifier "uVar10") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "puVar23 = (undefined4 *)piVar9[1];" (assignment_expression "puVar23 = (undefined4 *)piVar9[1]" (identifier "puVar23") (= "=") (cast_expression "(undefined4 *)piVar9[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar12 = (undefined4 *)*piVar9;" (assignment_expression "puVar12 = (undefined4 *)*piVar9" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)*piVar9" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")))) (; ";")) (expression_statement "puVar7 = puVar17;" (assignment_expression "puVar7 = puVar17" (identifier "puVar7") (= "=") (identifier "puVar17")) (; ";")) (for_statement "for (puVar14 = puVar12; puVar14 != puVar23; puVar14 = puVar14 + 6) {\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }" (for "for") (( "(") (assignment_expression "puVar14 = puVar12" (identifier "puVar14") (= "=") (identifier "puVar12")) (; ";") (binary_expression "puVar14 != puVar23" (identifier "puVar14") (!= "!=") (identifier "puVar23")) (; ";") (assignment_expression "puVar14 = puVar14 + 6" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 6" (identifier "puVar14") (+ "+") (number_literal "6"))) () ")") (compound_statement "{\n      uVar21 = puVar14[1];\n      uVar20 = puVar14[2];\n      uVar19 = puVar14[3];\n      uVar18 = puVar14[4];\n      uVar5 = puVar14[5];\n      *puVar7 = *puVar14;\n      puVar7[1] = uVar21;\n      puVar7[2] = uVar20;\n      puVar7[3] = uVar19;\n      puVar7[4] = uVar18;\n      puVar7[5] = uVar5;\n      puVar7 = puVar7 + 6;\n    }" ({ "{") (expression_statement "uVar21 = puVar14[1];" (assignment_expression "uVar21 = puVar14[1]" (identifier "uVar21") (= "=") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar20 = puVar14[2];" (assignment_expression "uVar20 = puVar14[2]" (identifier "uVar20") (= "=") (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar14[3];" (assignment_expression "uVar19 = puVar14[3]" (identifier "uVar19") (= "=") (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar18 = puVar14[4];" (assignment_expression "uVar18 = puVar14[4]" (identifier "uVar18") (= "=") (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar5 = puVar14[5];" (assignment_expression "uVar5 = puVar14[5]" (identifier "uVar5") (= "=") (subscript_expression "puVar14[5]" (identifier "puVar14") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*puVar7 = *puVar14;" (assignment_expression "*puVar7 = *puVar14" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "puVar7[1] = uVar21;" (assignment_expression "puVar7[1] = uVar21" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "puVar7[2] = uVar20;" (assignment_expression "puVar7[2] = uVar20" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "puVar7[3] = uVar19;" (assignment_expression "puVar7[3] = uVar19" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar7[4] = uVar18;" (assignment_expression "puVar7[4] = uVar18" (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar7[5] = uVar5;" (assignment_expression "puVar7[5] = uVar5" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar7 = puVar7 + 6;" (assignment_expression "puVar7 = puVar7 + 6" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 6" (identifier "puVar7") (+ "+") (number_literal "6"))) (; ";")) (} "}"))) (if_statement "if (puVar12 != (undefined4 *)0x0) {\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }" (if "if") (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar12 != (undefined4 *)0x0" (identifier "puVar12") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (**(code **)(pcVar28 + 0x28cd40))();\n    }" ({ "{") (expression_statement "(**(code **)(pcVar28 + 0x28cd40))();" (call_expression "(**(code **)(pcVar28 + 0x28cd40))()" (parenthesized_expression "(**(code **)(pcVar28 + 0x28cd40))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0x28cd40)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0x28cd40)" (* "*") (cast_expression "(code **)(pcVar28 + 0x28cd40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x28cd40)" (( "(") (binary_expression "pcVar28 + 0x28cd40" (identifier "pcVar28") (+ "+") (number_literal "0x28cd40")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*piVar9 = (int)puVar17;" (assignment_expression "*piVar9 = (int)puVar17" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (= "=") (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17"))) (; ";")) (expression_statement "piVar9[2] = (int)puVar17 + iVar11;" (assignment_expression "piVar9[2] = (int)puVar17 + iVar11" (subscript_expression "piVar9[2]" (identifier "piVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(int)puVar17 + iVar11" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (identifier "iVar11"))) (; ";")) (expression_statement "piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6);" (assignment_expression "piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6)" (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)(puVar17 + (uVar1 + uVar2) * 6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar17 + (uVar1 + uVar2) * 6)" (( "(") (binary_expression "puVar17 + (uVar1 + uVar2) * 6" (identifier "puVar17") (+ "+") (binary_expression "(uVar1 + uVar2) * 6" (parenthesized_expression "(uVar1 + uVar2)" (( "(") (binary_expression "uVar1 + uVar2" (identifier "uVar1") (+ "+") (identifier "uVar2")) () ")")) (* "*") (number_literal "6"))) () ")")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar27 = *(code **)(pcVar28 + 0x28cf34);" (assignment_expression "pcVar27 = *(code **)(pcVar28 + 0x28cf34)" (identifier "pcVar27") (= "=") (pointer_expression "*(code **)(pcVar28 + 0x28cf34)" (* "*") (cast_expression "(code **)(pcVar28 + 0x28cf34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x28cf34)" (( "(") (binary_expression "pcVar28 + 0x28cf34" (identifier "pcVar28") (+ "+") (number_literal "0x28cf34")) () ")"))))) (; ";")) (expression_statement "puVar7 = (undefined4 *)(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c);" (assignment_expression "puVar7 = (undefined4 *)(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c)" (( "(") (binary_expression "*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c" (pointer_expression "*(int *)(pcVar28 + 0x28ccc0)" (* "*") (cast_expression "(int *)(pcVar28 + 0x28ccc0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0x28ccc0)" (( "(") (binary_expression "pcVar28 + 0x28ccc0" (identifier "pcVar28") (+ "+") (number_literal "0x28ccc0")) () ")")))) (+ "+") (number_literal "0x4d8c")) () ")")))) (; ";")) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" (( "(") (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar23 = (undefined4 *)puVar7[1];" (assignment_expression "puVar23 = (undefined4 *)puVar7[1]" (identifier "puVar23") (= "=") (cast_expression "(undefined4 *)puVar7[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar12 = (undefined4 *)*puVar7;" (assignment_expression "puVar12 = (undefined4 *)*puVar7" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)*puVar7" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (expression_statement "iVar6 = (int)puVar23 - (int)puVar12 >> 3;" (assignment_expression "iVar6 = (int)puVar23 - (int)puVar12 >> 3" (identifier "iVar6") (= "=") (binary_expression "(int)puVar23 - (int)puVar12 >> 3" (binary_expression "(int)puVar23 - (int)puVar12" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (- "-") (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12"))) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "uVar1 = iVar6 * -0x49249249;" (assignment_expression "uVar1 = iVar6 * -0x49249249" (identifier "uVar1") (= "=") (binary_expression "iVar6 * -0x49249249" (identifier "iVar6") (* "*") (number_literal "-0x49249249"))) (; ";")) (if_statement "if (uVar1 == 0) {\n    uVar2 = 1;\nLAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;\n  }\n  else {\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(uVar1 == 0)" (( "(") (binary_expression "uVar1 == 0" (identifier "uVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = 1;\nLAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;\n  }" ({ "{") (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_001a5b4c:\n    iVar6 = uVar2 * 0x38;" (statement_identifier "LAB_001a5b4c") (: ":") (expression_statement "iVar6 = uVar2 * 0x38;" (assignment_expression "iVar6 = uVar2 * 0x38" (identifier "iVar6") (= "=") (binary_expression "uVar2 * 0x38" (identifier "uVar2") (* "*") (number_literal "0x38"))) (; ";"))) (} "}")) (else_clause "else {\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    uVar2 = iVar6 * 0x6db6db6e;\n    if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" ({ "{") (expression_statement "uVar2 = iVar6 * 0x6db6db6e;" (assignment_expression "uVar2 = iVar6 * 0x6db6db6e" (identifier "uVar2") (= "=") (binary_expression "iVar6 * 0x6db6db6e" (identifier "iVar6") (* "*") (number_literal "0x6db6db6e"))) (; ";")) (if_statement "if (uVar2 < uVar1) {\n      iVar6 = -0x20;\n    }\n    else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" (if "if") (parenthesized_expression "(uVar2 < uVar1)" (( "(") (binary_expression "uVar2 < uVar1" (identifier "uVar2") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n      iVar6 = -0x20;\n    }" ({ "{") (expression_statement "iVar6 = -0x20;" (assignment_expression "iVar6 = -0x20" (identifier "iVar6") (= "=") (number_literal "-0x20")) (; ";")) (} "}")) (else_clause "else {\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" (else "else") (compound_statement "{\n      iVar6 = -0x20;\n      if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" ({ "{") (expression_statement "iVar6 = -0x20;" (assignment_expression "iVar6 = -0x20" (identifier "iVar6") (= "=") (number_literal "-0x20")) (; ";")) (if_statement "if (uVar2 < 0x4924925) {\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }" (if "if") (parenthesized_expression "(uVar2 < 0x4924925)" (( "(") (binary_expression "uVar2 < 0x4924925" (identifier "uVar2") (< "<") (number_literal "0x4924925")) () ")")) (compound_statement "{\n        puVar25 = (undefined4 *)&DAT_00000038;\n        if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }" ({ "{") (expression_statement "puVar25 = (undefined4 *)&DAT_00000038;" (assignment_expression "puVar25 = (undefined4 *)&DAT_00000038" (identifier "puVar25") (= "=") (cast_expression "(undefined4 *)&DAT_00000038" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000038" (& "&") (identifier "DAT_00000038")))) (; ";")) (if_statement "if (uVar2 == 0) {\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar6 = 0;\n          puVar3 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = (undefined4 *)0x0;" (assignment_expression "puVar3 = (undefined4 *)0x0" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_001a57f4;" (goto "goto") (statement_identifier "LAB_001a57f4") (; ";")) (} "}"))) (goto_statement "goto LAB_001a5b4c;" (goto "goto") (statement_identifier "LAB_001a5b4c") (; ";")) (} "}"))) (} "}")))) (} "}")))) (expression_statement "puVar3 = (undefined4 *)(**(code **)(pcVar27 + 0x28cbe4))(iVar6);" (assignment_expression "puVar3 = (undefined4 *)(**(code **)(pcVar27 + 0x28cbe4))(iVar6)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar27 + 0x28cbe4))(iVar6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar27 + 0x28cbe4))(iVar6)" (parenthesized_expression "(**(code **)(pcVar27 + 0x28cbe4))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x28cbe4)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x28cbe4)" (* "*") (cast_expression "(code **)(pcVar27 + 0x28cbe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x28cbe4)" (( "(") (binary_expression "pcVar27 + 0x28cbe4" (identifier "pcVar27") (+ "+") (number_literal "0x28cbe4")) () ")"))))) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "iVar6 = (int)puVar3 + iVar6;" (assignment_expression "iVar6 = (int)puVar3 + iVar6" (identifier "iVar6") (= "=") (binary_expression "(int)puVar3 + iVar6" (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3")) (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "puVar25 = puVar3 + 0xe;" (assignment_expression "puVar25 = puVar3 + 0xe" (identifier "puVar25") (= "=") (binary_expression "puVar3 + 0xe" (identifier "puVar3") (+ "+") (number_literal "0xe"))) (; ";")) (labeled_statement "LAB_001a57f4:\n  puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));" (statement_identifier "LAB_001a57f4") (: ":") (expression_statement "puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));" (assignment_expression "puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12))" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar3 + ((int)puVar14 - (int)puVar12))" (( "(") (binary_expression "(int)puVar3 + ((int)puVar14 - (int)puVar12)" (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3")) (+ "+") (parenthesized_expression "((int)puVar14 - (int)puVar12)" (( "(") (binary_expression "(int)puVar14 - (int)puVar12" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (- "-") (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12"))) () ")"))) () ")")))) (; ";"))) (expression_statement "uVar22 = puVar17[1];" (assignment_expression "uVar22 = puVar17[1]" (identifier "uVar22") (= "=") (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar8 = puVar17 + 9;" (assignment_expression "puVar8 = puVar17 + 9" (identifier "puVar8") (= "=") (binary_expression "puVar17 + 9" (identifier "puVar17") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "uVar21 = puVar17[2];" (assignment_expression "uVar21 = puVar17[2]" (identifier "uVar21") (= "=") (subscript_expression "puVar17[2]" (identifier "puVar17") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar20 = puVar17[3];" (assignment_expression "uVar20 = puVar17[3]" (identifier "uVar20") (= "=") (subscript_expression "puVar17[3]" (identifier "puVar17") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar17[4];" (assignment_expression "uVar19 = puVar17[4]" (identifier "uVar19") (= "=") (subscript_expression "puVar17[4]" (identifier "puVar17") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar18 = puVar17[5];" (assignment_expression "uVar18 = puVar17[5]" (identifier "uVar18") (= "=") (subscript_expression "puVar17[5]" (identifier "puVar17") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar5 = puVar17[6];" (assignment_expression "uVar5 = puVar17[6]" (identifier "uVar5") (= "=") (subscript_expression "puVar17[6]" (identifier "puVar17") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)puVar17[7];" (assignment_expression "puVar15 = (undefined4 *)puVar17[7]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar17[7]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar17[7]" (identifier "puVar17") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "*puVar4 = *puVar17;" (assignment_expression "*puVar4 = *puVar17" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*puVar17" (* "*") (identifier "puVar17"))) (; ";")) (expression_statement "puVar4[1] = uVar22;" (assignment_expression "puVar4[1] = uVar22" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "puVar4[2] = uVar21;" (assignment_expression "puVar4[2] = uVar21" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "puVar4[3] = uVar20;" (assignment_expression "puVar4[3] = uVar20" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "puVar4[4] = uVar19;" (assignment_expression "puVar4[4] = uVar19" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar4[5] = uVar18;" (assignment_expression "puVar4[5] = uVar18" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar4[6] = uVar5;" (assignment_expression "puVar4[6] = uVar5" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar4[7] = puVar4 + 9;" (assignment_expression "puVar4[7] = puVar4 + 9" (subscript_expression "puVar4[7]" (identifier "puVar4") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "puVar4 + 9" (identifier "puVar4") (+ "+") (number_literal "9"))) (; ";")) (if_statement "if (puVar15 == puVar8) {\n    uVar19 = puVar17[10];\n    uVar18 = puVar17[0xb];\n    uVar5 = puVar17[0xc];\n    puVar4[9] = *puVar8;\n    puVar4[10] = uVar19;\n    puVar4[0xb] = uVar18;\n    puVar4[0xc] = uVar5;\n  }\n  else {\n    uVar5 = puVar17[9];\n    puVar4[7] = puVar15;\n    puVar4[9] = uVar5;\n  }" (if "if") (parenthesized_expression "(puVar15 == puVar8)" (( "(") (binary_expression "puVar15 == puVar8" (identifier "puVar15") (== "==") (identifier "puVar8")) () ")")) (compound_statement "{\n    uVar19 = puVar17[10];\n    uVar18 = puVar17[0xb];\n    uVar5 = puVar17[0xc];\n    puVar4[9] = *puVar8;\n    puVar4[10] = uVar19;\n    puVar4[0xb] = uVar18;\n    puVar4[0xc] = uVar5;\n  }" ({ "{") (expression_statement "uVar19 = puVar17[10];" (assignment_expression "uVar19 = puVar17[10]" (identifier "uVar19") (= "=") (subscript_expression "puVar17[10]" (identifier "puVar17") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "uVar18 = puVar17[0xb];" (assignment_expression "uVar18 = puVar17[0xb]" (identifier "uVar18") (= "=") (subscript_expression "puVar17[0xb]" (identifier "puVar17") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "uVar5 = puVar17[0xc];" (assignment_expression "uVar5 = puVar17[0xc]" (identifier "uVar5") (= "=") (subscript_expression "puVar17[0xc]" (identifier "puVar17") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "puVar4[9] = *puVar8;" (assignment_expression "puVar4[9] = *puVar8" (subscript_expression "puVar4[9]" (identifier "puVar4") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "puVar4[10] = uVar19;" (assignment_expression "puVar4[10] = uVar19" (subscript_expression "puVar4[10]" (identifier "puVar4") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar4[0xb] = uVar18;" (assignment_expression "puVar4[0xb] = uVar18" (subscript_expression "puVar4[0xb]" (identifier "puVar4") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar4[0xc] = uVar5;" (assignment_expression "puVar4[0xc] = uVar5" (subscript_expression "puVar4[0xc]" (identifier "puVar4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (} "}")) (else_clause "else {\n    uVar5 = puVar17[9];\n    puVar4[7] = puVar15;\n    puVar4[9] = uVar5;\n  }" (else "else") (compound_statement "{\n    uVar5 = puVar17[9];\n    puVar4[7] = puVar15;\n    puVar4[9] = uVar5;\n  }" ({ "{") (expression_statement "uVar5 = puVar17[9];" (assignment_expression "uVar5 = puVar17[9]" (identifier "uVar5") (= "=") (subscript_expression "puVar17[9]" (identifier "puVar17") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "puVar4[7] = puVar15;" (assignment_expression "puVar4[7] = puVar15" (subscript_expression "puVar4[7]" (identifier "puVar4") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar4[9] = uVar5;" (assignment_expression "puVar4[9] = uVar5" (subscript_expression "puVar4[9]" (identifier "puVar4") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (} "}")))) (expression_statement "uVar5 = puVar17[8];" (assignment_expression "uVar5 = puVar17[8]" (identifier "uVar5") (= "=") (subscript_expression "puVar17[8]" (identifier "puVar17") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar17[7] = puVar8;" (assignment_expression "puVar17[7] = puVar8" (subscript_expression "puVar17[7]" (identifier "puVar17") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "puVar17[8] = 0;" (assignment_expression "puVar17[8] = 0" (subscript_expression "puVar17[8]" (identifier "puVar17") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[8] = uVar5;" (assignment_expression "puVar4[8] = uVar5" (subscript_expression "puVar4[8]" (identifier "puVar4") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined1 *)(puVar17 + 9) = 0;" (assignment_expression "*(undefined1 *)(puVar17 + 9) = 0" (pointer_expression "*(undefined1 *)(puVar17 + 9)" (* "*") (cast_expression "(undefined1 *)(puVar17 + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 9)" (( "(") (binary_expression "puVar17 + 9" (identifier "puVar17") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar12 != puVar14) {\n    puVar25 = puVar12 + 9;\n    puVar17 = puVar3;\n    while( true ) {\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }\n    puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }" (if "if") (parenthesized_expression "(puVar12 != puVar14)" (( "(") (binary_expression "puVar12 != puVar14" (identifier "puVar12") (!= "!=") (identifier "puVar14")) () ")")) (compound_statement "{\n    puVar25 = puVar12 + 9;\n    puVar17 = puVar3;\n    while( true ) {\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }\n    puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }" ({ "{") (expression_statement "puVar25 = puVar12 + 9;" (assignment_expression "puVar25 = puVar12 + 9" (identifier "puVar25") (= "=") (binary_expression "puVar12 + 9" (identifier "puVar12") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "puVar17 = puVar3;" (assignment_expression "puVar17 = puVar3" (identifier "puVar17") (= "=") (identifier "puVar3")) (; ";")) (while_statement "while( true ) {\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      uVar5 = puVar25[-4];\n      uVar21 = puVar25[-8];\n      uVar20 = puVar25[-7];\n      uVar19 = puVar25[-6];\n      uVar18 = puVar25[-5];\n      *puVar17 = puVar25[-9];\n      puVar17[1] = uVar21;\n      puVar17[2] = uVar20;\n      puVar17[3] = uVar19;\n      puVar17[4] = uVar18;\n      puVar17[5] = uVar5;\n      uVar5 = puVar25[-3];\n      puVar17[7] = puVar17 + 9;\n      puVar17[6] = uVar5;\n      if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      if (puVar14 == puVar25 + 5) break;\n      puVar25 = puVar25 + 0xe;\n      puVar17 = puVar17 + 0xe;\n    }" ({ "{") (expression_statement "uVar5 = puVar25[-4];" (assignment_expression "uVar5 = puVar25[-4]" (identifier "uVar5") (= "=") (subscript_expression "puVar25[-4]" (identifier "puVar25") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "uVar21 = puVar25[-8];" (assignment_expression "uVar21 = puVar25[-8]" (identifier "uVar21") (= "=") (subscript_expression "puVar25[-8]" (identifier "puVar25") ([ "[") (number_literal "-8") (] "]"))) (; ";")) (expression_statement "uVar20 = puVar25[-7];" (assignment_expression "uVar20 = puVar25[-7]" (identifier "uVar20") (= "=") (subscript_expression "puVar25[-7]" (identifier "puVar25") ([ "[") (number_literal "-7") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar25[-6];" (assignment_expression "uVar19 = puVar25[-6]" (identifier "uVar19") (= "=") (subscript_expression "puVar25[-6]" (identifier "puVar25") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "uVar18 = puVar25[-5];" (assignment_expression "uVar18 = puVar25[-5]" (identifier "uVar18") (= "=") (subscript_expression "puVar25[-5]" (identifier "puVar25") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "*puVar17 = puVar25[-9];" (assignment_expression "*puVar17 = puVar25[-9]" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (subscript_expression "puVar25[-9]" (identifier "puVar25") ([ "[") (number_literal "-9") (] "]"))) (; ";")) (expression_statement "puVar17[1] = uVar21;" (assignment_expression "puVar17[1] = uVar21" (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "puVar17[2] = uVar20;" (assignment_expression "puVar17[2] = uVar20" (subscript_expression "puVar17[2]" (identifier "puVar17") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "puVar17[3] = uVar19;" (assignment_expression "puVar17[3] = uVar19" (subscript_expression "puVar17[3]" (identifier "puVar17") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar17[4] = uVar18;" (assignment_expression "puVar17[4] = uVar18" (subscript_expression "puVar17[4]" (identifier "puVar17") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar17[5] = uVar5;" (assignment_expression "puVar17[5] = uVar5" (subscript_expression "puVar17[5]" (identifier "puVar17") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar5 = puVar25[-3];" (assignment_expression "uVar5 = puVar25[-3]" (identifier "uVar5") (= "=") (subscript_expression "puVar25[-3]" (identifier "puVar25") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (expression_statement "puVar17[7] = puVar17 + 9;" (assignment_expression "puVar17[7] = puVar17 + 9" (subscript_expression "puVar17[7]" (identifier "puVar17") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "puVar17 + 9" (identifier "puVar17") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "puVar17[6] = uVar5;" (assignment_expression "puVar17[6] = uVar5" (subscript_expression "puVar17[6]" (identifier "puVar17") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if ((undefined4 *)puVar25[-2] == puVar25) {\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }\n      else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }" (if "if") (parenthesized_expression "((undefined4 *)puVar25[-2] == puVar25)" (( "(") (binary_expression "(undefined4 *)puVar25[-2] == puVar25" (cast_expression "(undefined4 *)puVar25[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar25[-2]" (identifier "puVar25") ([ "[") (number_literal "-2") (] "]"))) (== "==") (identifier "puVar25")) () ")")) (compound_statement "{\n        uVar19 = puVar25[1];\n        uVar18 = puVar25[2];\n        uVar5 = puVar25[3];\n        puVar17[9] = *puVar25;\n        puVar17[10] = uVar19;\n        puVar17[0xb] = uVar18;\n        puVar17[0xc] = uVar5;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }" ({ "{") (expression_statement "uVar19 = puVar25[1];" (assignment_expression "uVar19 = puVar25[1]" (identifier "uVar19") (= "=") (subscript_expression "puVar25[1]" (identifier "puVar25") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar18 = puVar25[2];" (assignment_expression "uVar18 = puVar25[2]" (identifier "uVar18") (= "=") (subscript_expression "puVar25[2]" (identifier "puVar25") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar5 = puVar25[3];" (assignment_expression "uVar5 = puVar25[3]" (identifier "uVar5") (= "=") (subscript_expression "puVar25[3]" (identifier "puVar25") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar17[9] = *puVar25;" (assignment_expression "puVar17[9] = *puVar25" (subscript_expression "puVar17[9]" (identifier "puVar17") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*puVar25" (* "*") (identifier "puVar25"))) (; ";")) (expression_statement "puVar17[10] = uVar19;" (assignment_expression "puVar17[10] = uVar19" (subscript_expression "puVar17[10]" (identifier "puVar17") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar17[0xb] = uVar18;" (assignment_expression "puVar17[0xb] = uVar18" (subscript_expression "puVar17[0xb]" (identifier "puVar17") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar17[0xc] = uVar5;" (assignment_expression "puVar17[0xc] = uVar5" (subscript_expression "puVar17[0xc]" (identifier "puVar17") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar17[8] = puVar25[-1];" (assignment_expression "puVar17[8] = puVar25[-1]" (subscript_expression "puVar17[8]" (identifier "puVar17") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "puVar25[-1]" (identifier "puVar25") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar25[-2] = puVar25;" (assignment_expression "puVar25[-2] = puVar25" (subscript_expression "puVar25[-2]" (identifier "puVar25") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar25")) (; ";")) (expression_statement "puVar25[-1] = 0;" (assignment_expression "puVar25[-1] = 0" (subscript_expression "puVar25[-1]" (identifier "puVar25") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar25 = 0;" (assignment_expression "*(undefined1 *)puVar25 = 0" (pointer_expression "*(undefined1 *)puVar25" (* "*") (cast_expression "(undefined1 *)puVar25" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar25"))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }" (else "else") (compound_statement "{\n        puVar17[7] = (undefined4 *)puVar25[-2];\n        puVar17[9] = *puVar25;\n        puVar17[8] = puVar25[-1];\n        puVar25[-2] = puVar25;\n        puVar25[-1] = 0;\n        *(undefined1 *)puVar25 = 0;\n      }" ({ "{") (expression_statement "puVar17[7] = (undefined4 *)puVar25[-2];" (assignment_expression "puVar17[7] = (undefined4 *)puVar25[-2]" (subscript_expression "puVar17[7]" (identifier "puVar17") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(undefined4 *)puVar25[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar25[-2]" (identifier "puVar25") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "puVar17[9] = *puVar25;" (assignment_expression "puVar17[9] = *puVar25" (subscript_expression "puVar17[9]" (identifier "puVar17") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*puVar25" (* "*") (identifier "puVar25"))) (; ";")) (expression_statement "puVar17[8] = puVar25[-1];" (assignment_expression "puVar17[8] = puVar25[-1]" (subscript_expression "puVar17[8]" (identifier "puVar17") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "puVar25[-1]" (identifier "puVar25") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar25[-2] = puVar25;" (assignment_expression "puVar25[-2] = puVar25" (subscript_expression "puVar25[-2]" (identifier "puVar25") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar25")) (; ";")) (expression_statement "puVar25[-1] = 0;" (assignment_expression "puVar25[-1] = 0" (subscript_expression "puVar25[-1]" (identifier "puVar25") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar25 = 0;" (assignment_expression "*(undefined1 *)puVar25 = 0" (pointer_expression "*(undefined1 *)puVar25" (* "*") (cast_expression "(undefined1 *)puVar25" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar25"))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (puVar14 == puVar25 + 5) break;" (if "if") (parenthesized_expression "(puVar14 == puVar25 + 5)" (( "(") (binary_expression "puVar14 == puVar25 + 5" (identifier "puVar14") (== "==") (binary_expression "puVar25 + 5" (identifier "puVar25") (+ "+") (number_literal "5"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar25 = puVar25 + 0xe;" (assignment_expression "puVar25 = puVar25 + 0xe" (identifier "puVar25") (= "=") (binary_expression "puVar25 + 0xe" (identifier "puVar25") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "puVar17 = puVar17 + 0xe;" (assignment_expression "puVar17 = puVar17 + 0xe" (identifier "puVar17") (= "=") (binary_expression "puVar17 + 0xe" (identifier "puVar17") (+ "+") (number_literal "0xe"))) (; ";")) (} "}"))) (expression_statement "puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;" (assignment_expression "puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" (identifier "puVar25") (= "=") (binary_expression "puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" (identifier "puVar3") (+ "+") (binary_expression "((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" (parenthesized_expression "((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2)" (( "(") (binary_expression "(((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2" (parenthesized_expression "(((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff)" (( "(") (binary_expression "((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &\n                        0x1fffffff" (binary_expression "((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7" (parenthesized_expression "((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3)" (( "(") (binary_expression "(uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3" (call_expression "(uint)((int)puVar25 + (-0x24 - (int)puVar12))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar25 + (-0x24 - (int)puVar12))" (( "(") (binary_expression "(int)puVar25 + (-0x24 - (int)puVar12)" (cast_expression "(int)puVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar25")) (+ "+") (parenthesized_expression "(-0x24 - (int)puVar12)" (( "(") (binary_expression "-0x24 - (int)puVar12" (number_literal "-0x24") (- "-") (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12"))) () ")"))) () ")"))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "0x16db6db7")) (& "&") (number_literal "0x1fffffff")) () ")")) (+ "+") (number_literal "2")) () ")")) (* "*") (number_literal "0xe")))) (; ";")) (} "}"))) (expression_statement "puVar4 = puVar14 + 9;" (assignment_expression "puVar4 = puVar14 + 9" (identifier "puVar4") (= "=") (binary_expression "puVar14 + 9" (identifier "puVar14") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "puVar8 = puVar25;" (assignment_expression "puVar8 = puVar25" (identifier "puVar8") (= "=") (identifier "puVar25")) (; ";")) (expression_statement "puVar17 = puVar12;" (assignment_expression "puVar17 = puVar12" (identifier "puVar17") (= "=") (identifier "puVar12")) (; ";")) (if_statement "if (puVar23 != puVar14) {\n    do {\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar23 != puVar15);\nLAB_001a5a78:\n    puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }" (if "if") (parenthesized_expression "(puVar23 != puVar14)" (( "(") (binary_expression "puVar23 != puVar14" (identifier "puVar23") (!= "!=") (identifier "puVar14")) () ")")) (compound_statement "{\n    do {\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar23 != puVar15);\nLAB_001a5a78:\n    puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }" ({ "{") (do_statement "do {\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    } while (puVar23 != puVar15);" (do "do") (compound_statement "{\n      while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }\n      uVar5 = *puVar4;\n      uVar18 = puVar4[-1];\n      puVar8[7] = puVar15;\n      puVar8[9] = uVar5;\n      puVar15 = puVar4 + 5;\n      puVar4[-2] = puVar4;\n      puVar4[-1] = 0;\n      *(undefined1 *)puVar4 = 0;\n      puVar8[8] = uVar18;\n      puVar4 = puVar4 + 0xe;\n      puVar8 = puVar8 + 0xe;\n    }" ({ "{") (while_statement "while( true ) {\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        uVar24 = puVar4[-9];\n        uVar22 = puVar4[-8];\n        uVar21 = puVar4[-7];\n        uVar20 = puVar4[-6];\n        uVar19 = puVar4[-5];\n        uVar18 = puVar4[-4];\n        uVar5 = puVar4[-3];\n        puVar15 = (undefined4 *)puVar4[-2];\n        puVar8[7] = puVar8 + 9;\n        *puVar8 = uVar24;\n        puVar8[1] = uVar22;\n        puVar8[2] = uVar21;\n        puVar8[3] = uVar20;\n        puVar8[4] = uVar19;\n        puVar8[5] = uVar18;\n        puVar8[6] = uVar5;\n        if (puVar4 != puVar15) break;\n        uVar19 = puVar4[1];\n        uVar18 = puVar4[2];\n        uVar5 = puVar4[3];\n        puVar8[9] = *puVar4;\n        puVar8[10] = uVar19;\n        puVar8[0xb] = uVar18;\n        puVar8[0xc] = uVar5;\n        puVar15 = puVar4 + 5;\n        puVar4[-2] = puVar4;\n        *(undefined1 *)puVar4 = 0;\n        uVar5 = puVar4[-1];\n        puVar4[-1] = 0;\n        puVar8[8] = uVar5;\n        puVar4 = puVar4 + 0xe;\n        puVar8 = puVar8 + 0xe;\n        if (puVar23 == puVar15) goto LAB_001a5a78;\n      }" ({ "{") (expression_statement "uVar24 = puVar4[-9];" (assignment_expression "uVar24 = puVar4[-9]" (identifier "uVar24") (= "=") (subscript_expression "puVar4[-9]" (identifier "puVar4") ([ "[") (number_literal "-9") (] "]"))) (; ";")) (expression_statement "uVar22 = puVar4[-8];" (assignment_expression "uVar22 = puVar4[-8]" (identifier "uVar22") (= "=") (subscript_expression "puVar4[-8]" (identifier "puVar4") ([ "[") (number_literal "-8") (] "]"))) (; ";")) (expression_statement "uVar21 = puVar4[-7];" (assignment_expression "uVar21 = puVar4[-7]" (identifier "uVar21") (= "=") (subscript_expression "puVar4[-7]" (identifier "puVar4") ([ "[") (number_literal "-7") (] "]"))) (; ";")) (expression_statement "uVar20 = puVar4[-6];" (assignment_expression "uVar20 = puVar4[-6]" (identifier "uVar20") (= "=") (subscript_expression "puVar4[-6]" (identifier "puVar4") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar4[-5];" (assignment_expression "uVar19 = puVar4[-5]" (identifier "uVar19") (= "=") (subscript_expression "puVar4[-5]" (identifier "puVar4") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "uVar18 = puVar4[-4];" (assignment_expression "uVar18 = puVar4[-4]" (identifier "uVar18") (= "=") (subscript_expression "puVar4[-4]" (identifier "puVar4") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "uVar5 = puVar4[-3];" (assignment_expression "uVar5 = puVar4[-3]" (identifier "uVar5") (= "=") (subscript_expression "puVar4[-3]" (identifier "puVar4") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)puVar4[-2];" (assignment_expression "puVar15 = (undefined4 *)puVar4[-2]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar4[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[-2]" (identifier "puVar4") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "puVar8[7] = puVar8 + 9;" (assignment_expression "puVar8[7] = puVar8 + 9" (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "puVar8 + 9" (identifier "puVar8") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "*puVar8 = uVar24;" (assignment_expression "*puVar8 = uVar24" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "uVar24")) (; ";")) (expression_statement "puVar8[1] = uVar22;" (assignment_expression "puVar8[1] = uVar22" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "puVar8[2] = uVar21;" (assignment_expression "puVar8[2] = uVar21" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "puVar8[3] = uVar20;" (assignment_expression "puVar8[3] = uVar20" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "puVar8[4] = uVar19;" (assignment_expression "puVar8[4] = uVar19" (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar8[5] = uVar18;" (assignment_expression "puVar8[5] = uVar18" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar8[6] = uVar5;" (assignment_expression "puVar8[6] = uVar5" (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (puVar4 != puVar15) break;" (if "if") (parenthesized_expression "(puVar4 != puVar15)" (( "(") (binary_expression "puVar4 != puVar15" (identifier "puVar4") (!= "!=") (identifier "puVar15")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar19 = puVar4[1];" (assignment_expression "uVar19 = puVar4[1]" (identifier "uVar19") (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar18 = puVar4[2];" (assignment_expression "uVar18 = puVar4[2]" (identifier "uVar18") (= "=") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar5 = puVar4[3];" (assignment_expression "uVar5 = puVar4[3]" (identifier "uVar5") (= "=") (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar8[9] = *puVar4;" (assignment_expression "puVar8[9] = *puVar4" (subscript_expression "puVar8[9]" (identifier "puVar8") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "puVar8[10] = uVar19;" (assignment_expression "puVar8[10] = uVar19" (subscript_expression "puVar8[10]" (identifier "puVar8") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar8[0xb] = uVar18;" (assignment_expression "puVar8[0xb] = uVar18" (subscript_expression "puVar8[0xb]" (identifier "puVar8") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar8[0xc] = uVar5;" (assignment_expression "puVar8[0xc] = uVar5" (subscript_expression "puVar8[0xc]" (identifier "puVar8") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar15 = puVar4 + 5;" (assignment_expression "puVar15 = puVar4 + 5" (identifier "puVar15") (= "=") (binary_expression "puVar4 + 5" (identifier "puVar4") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "puVar4[-2] = puVar4;" (assignment_expression "puVar4[-2] = puVar4" (subscript_expression "puVar4[-2]" (identifier "puVar4") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" (* "*") (cast_expression "(undefined1 *)puVar4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = puVar4[-1];" (assignment_expression "uVar5 = puVar4[-1]" (identifier "uVar5") (= "=") (subscript_expression "puVar4[-1]" (identifier "puVar4") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar4[-1] = 0;" (assignment_expression "puVar4[-1] = 0" (subscript_expression "puVar4[-1]" (identifier "puVar4") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[8] = uVar5;" (assignment_expression "puVar8[8] = uVar5" (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar4 = puVar4 + 0xe;" (assignment_expression "puVar4 = puVar4 + 0xe" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 0xe" (identifier "puVar4") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "puVar8 = puVar8 + 0xe;" (assignment_expression "puVar8 = puVar8 + 0xe" (identifier "puVar8") (= "=") (binary_expression "puVar8 + 0xe" (identifier "puVar8") (+ "+") (number_literal "0xe"))) (; ";")) (if_statement "if (puVar23 == puVar15) goto LAB_001a5a78;" (if "if") (parenthesized_expression "(puVar23 == puVar15)" (( "(") (binary_expression "puVar23 == puVar15" (identifier "puVar23") (== "==") (identifier "puVar15")) () ")")) (goto_statement "goto LAB_001a5a78;" (goto "goto") (statement_identifier "LAB_001a5a78") (; ";"))) (} "}"))) (expression_statement "uVar5 = *puVar4;" (assignment_expression "uVar5 = *puVar4" (identifier "uVar5") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "uVar18 = puVar4[-1];" (assignment_expression "uVar18 = puVar4[-1]" (identifier "uVar18") (= "=") (subscript_expression "puVar4[-1]" (identifier "puVar4") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar8[7] = puVar15;" (assignment_expression "puVar8[7] = puVar15" (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar8[9] = uVar5;" (assignment_expression "puVar8[9] = uVar5" (subscript_expression "puVar8[9]" (identifier "puVar8") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar15 = puVar4 + 5;" (assignment_expression "puVar15 = puVar4 + 5" (identifier "puVar15") (= "=") (binary_expression "puVar4 + 5" (identifier "puVar4") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "puVar4[-2] = puVar4;" (assignment_expression "puVar4[-2] = puVar4" (subscript_expression "puVar4[-2]" (identifier "puVar4") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar4[-1] = 0;" (assignment_expression "puVar4[-1] = 0" (subscript_expression "puVar4[-1]" (identifier "puVar4") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" (* "*") (cast_expression "(undefined1 *)puVar4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[8] = uVar18;" (assignment_expression "puVar8[8] = uVar18" (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar4 = puVar4 + 0xe;" (assignment_expression "puVar4 = puVar4 + 0xe" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 0xe" (identifier "puVar4") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "puVar8 = puVar8 + 0xe;" (assignment_expression "puVar8 = puVar8 + 0xe" (identifier "puVar8") (= "=") (binary_expression "puVar8 + 0xe" (identifier "puVar8") (+ "+") (number_literal "0xe"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar23 != puVar15)" (( "(") (binary_expression "puVar23 != puVar15" (identifier "puVar23") (!= "!=") (identifier "puVar15")) () ")")) (; ";")) (labeled_statement "LAB_001a5a78:\n    puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;" (statement_identifier "LAB_001a5a78") (: ":") (expression_statement "puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;" (assignment_expression "puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" (identifier "puVar25") (= "=") (binary_expression "puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" (identifier "puVar25") (+ "+") (binary_expression "((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" (parenthesized_expression "((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1)" (( "(") (binary_expression "(((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1" (parenthesized_expression "(((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff)" (( "(") (binary_expression "((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &\n                         0x1fffffff" (binary_expression "((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7" (parenthesized_expression "((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3)" (( "(") (binary_expression "(uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3" (call_expression "(uint)((int)puVar23 + (-0x38 - (int)puVar14))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar23 + (-0x38 - (int)puVar14))" (( "(") (binary_expression "(int)puVar23 + (-0x38 - (int)puVar14)" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (+ "+") (parenthesized_expression "(-0x38 - (int)puVar14)" (( "(") (binary_expression "-0x38 - (int)puVar14" (number_literal "-0x38") (- "-") (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14"))) () ")"))) () ")"))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "0x16db6db7")) (& "&") (number_literal "0x1fffffff")) () ")")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "0xe")))) (; ";"))) (} "}"))) (while_statement "while (puVar17 != puVar23) {\n    puVar14 = puVar17 + 7;\n    puVar4 = puVar17 + 9;\n    puVar17 = puVar17 + 0xe;\n    if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }\n  }" (while "while") (parenthesized_expression "(puVar17 != puVar23)" (( "(") (binary_expression "puVar17 != puVar23" (identifier "puVar17") (!= "!=") (identifier "puVar23")) () ")")) (compound_statement "{\n    puVar14 = puVar17 + 7;\n    puVar4 = puVar17 + 9;\n    puVar17 = puVar17 + 0xe;\n    if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }\n  }" ({ "{") (expression_statement "puVar14 = puVar17 + 7;" (assignment_expression "puVar14 = puVar17 + 7" (identifier "puVar14") (= "=") (binary_expression "puVar17 + 7" (identifier "puVar17") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "puVar4 = puVar17 + 9;" (assignment_expression "puVar4 = puVar17 + 9" (identifier "puVar4") (= "=") (binary_expression "puVar17 + 9" (identifier "puVar17") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "puVar17 = puVar17 + 0xe;" (assignment_expression "puVar17 = puVar17 + 0xe" (identifier "puVar17") (= "=") (binary_expression "puVar17 + 0xe" (identifier "puVar17") (+ "+") (number_literal "0xe"))) (; ";")) (if_statement "if ((undefined4 *)*puVar14 != puVar4) {\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }" (if "if") (parenthesized_expression "((undefined4 *)*puVar14 != puVar4)" (( "(") (binary_expression "(undefined4 *)*puVar14 != puVar4" (cast_expression "(undefined4 *)*puVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (!= "!=") (identifier "puVar4")) () ")")) (compound_statement "{\n      (**(code **)(pcVar27 + 0x28cb34))();\n    }" ({ "{") (expression_statement "(**(code **)(pcVar27 + 0x28cb34))();" (call_expression "(**(code **)(pcVar27 + 0x28cb34))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x28cb34))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x28cb34)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x28cb34)" (* "*") (cast_expression "(code **)(pcVar27 + 0x28cb34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x28cb34)" (( "(") (binary_expression "pcVar27 + 0x28cb34" (identifier "pcVar27") (+ "+") (number_literal "0x28cb34")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (puVar12 != (undefined4 *)0x0) {\n    (**(code **)(pcVar27 + 0x28cb34))(puVar12);\n  }" (if "if") (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar12 != (undefined4 *)0x0" (identifier "puVar12") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(pcVar27 + 0x28cb34))(puVar12);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar27 + 0x28cb34))(puVar12);" (call_expression "(**(code **)(pcVar27 + 0x28cb34))(puVar12)" (parenthesized_expression "(**(code **)(pcVar27 + 0x28cb34))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x28cb34)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x28cb34)" (* "*") (cast_expression "(code **)(pcVar27 + 0x28cb34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x28cb34)" (( "(") (binary_expression "pcVar27 + 0x28cb34" (identifier "pcVar27") (+ "+") (number_literal "0x28cb34")) () ")"))))) () ")")) (argument_list "(puVar12)" (( "(") (identifier "puVar12") () ")"))) (; ";")) (} "}"))) (expression_statement "*puVar7 = puVar3;" (assignment_expression "*puVar7 = puVar3" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "puVar7[1] = puVar25;" (assignment_expression "puVar7[1] = puVar25" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar25")) (; ";")) (expression_statement "puVar7[2] = iVar6;" (assignment_expression "puVar7[2] = iVar6" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original name: write<32, true>
   DWARF original prototype: void write<32,_true>(Dynamic_entry * this, uchar * pov, Stringpool *
   pool) */

void __thiscall
gold::Output_data_dynamic::Dynamic_entry::write<32,_true>
          (Dynamic_entry *this,uchar *var_3,Stringpool *pool)

{
  type_1 var_1;
  type_1 var_7;
  type_2 *var_17;
  type_2 *var_18;
  type_3 DVar5;
  int var_6;
  type_2 *var_12;
  type_2 *var_20;
  int *piVar9;
  type_1 var_8;
  int var_10;
  type_2 *var_15;
  int *piVar13;
  type_2 *var_11;
  type_2 uVar15;
  type_2 *var_19;
  type_4 *var_4;
  type_2 *var_16;
  type_2 uVar19;
  type_2 uVar20;
  type_2 uVar21;
  type_2 uVar22;
  type_2 uVar23;
  type_2 *var_14;
  type_2 uVar25;
  type_2 *var_21;
  type_4 *var_5;
  type_5 *var_9;
  type_5 *var_13;
  
  var_1 = this->offset_ + 5;
  if (var_1 < 5) {
                    /* WARNING: Could not emulate address calculation at 0x001a4f94 */
                    /* WARNING: Treating indirect jump as call */
    (*(type_5 *)(&Position_dependent_options::default_options_.sort_common_.user_set_via_option +
              *(int *)(var_2 + var_1 * 4 + 0x5dd0)))();
    return;
  }
  if ((int)(((this->u_).sym)->got_offsets_).got_offset_ < 0) {
    DVar5 = this->tag_;
    *(type_1 *)(var_3 + 4) = this->offset_ + (((this->u_).sym)->u2_).shndx;
    *(type_3 *)var_3 = DVar5;
    return;
  }
  var_4 = var_2 + 0x7850;
  (*(type_5 *)PTR_do_gold_unreachable_004323c4)(var_2 + -0x4fe0,0xc5,var_4);
  piVar13 = (int *)&DAT_00000069;
  piVar9 = (int *)(var_2 + -0x5cec);
  var_5 = PTR_do_gold_unreachable_004323c4;
  (*(type_5 *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,var_4 + 0x78f8);
  var_1 = piVar9[3];
  if (var_1 + 5 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a5190. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(type_5 *)(var_5 +
              *(int *)(*(int *)(var_5 + 0x28d274) + 0x5de4 + (var_1 + 5) * 4) + 0x295090))();
    return;
  }
  var_6 = *piVar9;
  if (*(int *)(var_6 + 0x20) < 0) {
    var_7 = var_1 + *(int *)(var_6 + 0xc);
    var_1 = (type_1)(var_7 < var_1) + *(int *)(var_6 + 8);
    var_8 = piVar9[2];
    piVar13[1] = 0;
    piVar13[3] = (((var_1 >> 0x10) << 0x18 | (var_1 >> 0x18) << 0x10) >> 0x10) +
                 ((var_1 & 0xff) << 8 | var_1 >> 8 & 0xff) * 0x10000;
    piVar13[2] = (((var_7 >> 0x10) << 0x18 | (var_7 >> 0x18) << 0x10) >> 0x10) +
                 ((var_7 & 0xff) << 8 | var_7 >> 8 & 0xff) * 0x10000;
    *piVar13 = (((var_8 >> 0x10) << 0x18 | (var_8 >> 0x18) << 0x10) >> 0x10) +
               ((var_8 & 0xff) << 8 | var_8 >> 8 & 0xff) * 0x10000;
    return;
  }
  var_6 = *(int *)(var_5 + 0x28d274) + 0x7850;
  (**(type_5 **)(var_5 + 0x28d284))(*(int *)(var_5 + 0x28d274) + -0x4fe0,0xc5,var_6);
  var_11 = (type_2 *)&DAT_00000069;
  var_9 = *(type_5 **)(var_5 + 0x28d284);
  piVar9 = (int *)(*(int *)(var_5 + 0x28d274) + -0x5cec);
  (*var_9)(piVar9,0x69,var_6 + 0x78f8);
  var_1 = piVar9[3];
  if (var_1 + 5 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a5348. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(var_9 + *(int *)(*(int *)(var_9 + 0x28d0bc) + 0x5df8 + (var_1 + 5) * 4) + 0x294ed8))();
    return;
  }
  var_6 = *piVar9;
  if (*(int *)(var_6 + 0x20) < 0) {
    var_10 = *(int *)(var_6 + 8);
    var_7 = var_1 + *(int *)(var_6 + 0xc);
    var_6 = piVar9[2];
    *var_11 = 0;
    var_11[2] = (type_1)(var_7 < var_1) + var_10;
    var_11[1] = var_6;
    var_11[3] = var_7;
    return;
  }
  var_6 = *(int *)(var_9 + 0x28d0bc) + 0x7850;
  (**(type_5 **)(var_9 + 0x28d0cc))(*(int *)(var_9 + 0x28d0bc) + -0x4fe0,0xc5,var_6);
  var_1 = 0x69;
  var_13 = *(type_5 **)(var_9 + 0x28d0cc);
  piVar9 = (int *)(*(int *)(var_9 + 0x28d0bc) + -0x5cec);
  (*var_13)(piVar9,0x69,var_6 + 0x78f8);
  if (var_1 == 0) {
    return;
  }
  var_12 = (type_2 *)piVar9[1];
  var_16 = (type_2 *)&DAT_aaaaaaab;
  var_11 = var_12;
  var_7 = var_1;
  if (var_1 <= (type_1)((piVar9[2] - (int)var_12 >> 3) * -0x55555555)) {
    do {
      *var_11 = 0;
      var_11[1] = 0;
      var_7 = var_7 - 1;
      var_11[3] = 0;
      var_11[2] = 0;
      var_11[4] = 0;
      var_11 = var_11 + 6;
    } while (var_7 != 0);
    piVar9[1] = (int)(var_12 + var_1 * 6);
    return;
  }
  var_6 = *piVar9;
  var_11 = (type_2 *)((int)var_12 - var_6 >> 3);
  var_7 = (int)var_11 * -0x55555555;
  if (var_1 <= (int)var_11 * 0x55555555 + 0xaaaaaaaU) {
    var_8 = var_7;
    if (var_7 <= var_1) {
      var_8 = var_1;
    }
    var_8 = var_8 + var_7;
    var_10 = -0x10;
    if (var_7 <= var_8) {
      if (0xaaaaaaa < var_8) {
        var_8 = 0xaaaaaaa;
      }
      var_10 = var_8 * 0x18;
    }
    var_16 = (type_2 *)(**(type_5 **)(var_13 + 0x28cdf0))(var_10);
    var_11 = (type_2 *)((int)var_16 + ((int)var_12 - var_6));
    var_8 = var_1;
    do {
      *var_11 = 0;
      var_11[1] = 0;
      var_8 = var_8 - 1;
      var_11[3] = 0;
      var_11[2] = 0;
      var_11[4] = 0;
      var_11 = var_11 + 6;
    } while (var_8 != 0);
    var_14 = (type_2 *)piVar9[1];
    var_15 = (type_2 *)*piVar9;
    var_12 = var_16;
    for (var_11 = var_15; var_11 != var_14; var_11 = var_11 + 6) {
      uVar22 = var_11[1];
      uVar21 = var_11[2];
      uVar20 = var_11[3];
      uVar19 = var_11[4];
      uVar15 = var_11[5];
      *var_12 = *var_11;
      var_12[1] = uVar22;
      var_12[2] = uVar21;
      var_12[3] = uVar20;
      var_12[4] = uVar19;
      var_12[5] = uVar15;
      var_12 = var_12 + 6;
    }
    if (var_15 != (type_2 *)0x0) {
      (**(type_5 **)(var_13 + 0x28cd40))();
    }
    *piVar9 = (int)var_16;
    piVar9[2] = (int)var_16 + var_10;
    piVar9[1] = (int)(var_16 + (var_1 + var_7) * 6);
    return;
  }
  var_9 = *(type_5 **)(var_13 + 0x28cf34);
  var_12 = (type_2 *)(*(int *)(var_13 + 0x28ccc0) + 0x4d8c);
  (*var_9)();
  var_14 = (type_2 *)var_12[1];
  var_15 = (type_2 *)*var_12;
  var_6 = (int)var_14 - (int)var_15 >> 3;
  var_1 = var_6 * -0x49249249;
  if (var_1 == 0) {
    var_7 = 1;
LAB_001a5b4c:
    var_6 = var_7 * 0x38;
  }
  else {
    var_7 = var_6 * 0x6db6db6e;
    if (var_7 < var_1) {
      var_6 = -0x20;
    }
    else {
      var_6 = -0x20;
      if (var_7 < 0x4924925) {
        var_21 = (type_2 *)&DAT_00000038;
        if (var_7 == 0) {
          var_6 = 0;
          var_17 = (type_2 *)0x0;
          goto LAB_001a57f4;
        }
        goto LAB_001a5b4c;
      }
    }
  }
  var_17 = (type_2 *)(**(type_5 **)(var_9 + 0x28cbe4))(var_6);
  var_6 = (int)var_17 + var_6;
  var_21 = var_17 + 0xe;
LAB_001a57f4:
  var_18 = (type_2 *)((int)var_17 + ((int)var_11 - (int)var_15));
  uVar23 = var_16[1];
  var_20 = var_16 + 9;
  uVar22 = var_16[2];
  uVar21 = var_16[3];
  uVar20 = var_16[4];
  uVar19 = var_16[5];
  uVar15 = var_16[6];
  var_19 = (type_2 *)var_16[7];
  *var_18 = *var_16;
  var_18[1] = uVar23;
  var_18[2] = uVar22;
  var_18[3] = uVar21;
  var_18[4] = uVar20;
  var_18[5] = uVar19;
  var_18[6] = uVar15;
  var_18[7] = var_18 + 9;
  if (var_19 == var_20) {
    uVar20 = var_16[10];
    uVar19 = var_16[0xb];
    uVar15 = var_16[0xc];
    var_18[9] = *var_20;
    var_18[10] = uVar20;
    var_18[0xb] = uVar19;
    var_18[0xc] = uVar15;
  }
  else {
    uVar15 = var_16[9];
    var_18[7] = var_19;
    var_18[9] = uVar15;
  }
  uVar15 = var_16[8];
  var_16[7] = var_20;
  var_16[8] = 0;
  var_18[8] = uVar15;
  *(type_6 *)(var_16 + 9) = 0;
  if (var_15 != var_11) {
    var_21 = var_15 + 9;
    var_16 = var_17;
    while( true ) {
      uVar15 = var_21[-4];
      uVar22 = var_21[-8];
      uVar21 = var_21[-7];
      uVar20 = var_21[-6];
      uVar19 = var_21[-5];
      *var_16 = var_21[-9];
      var_16[1] = uVar22;
      var_16[2] = uVar21;
      var_16[3] = uVar20;
      var_16[4] = uVar19;
      var_16[5] = uVar15;
      uVar15 = var_21[-3];
      var_16[7] = var_16 + 9;
      var_16[6] = uVar15;
      if ((type_2 *)var_21[-2] == var_21) {
        uVar20 = var_21[1];
        uVar19 = var_21[2];
        uVar15 = var_21[3];
        var_16[9] = *var_21;
        var_16[10] = uVar20;
        var_16[0xb] = uVar19;
        var_16[0xc] = uVar15;
        var_16[8] = var_21[-1];
        var_21[-2] = var_21;
        var_21[-1] = 0;
        *(type_6 *)var_21 = 0;
      }
      else {
        var_16[7] = (type_2 *)var_21[-2];
        var_16[9] = *var_21;
        var_16[8] = var_21[-1];
        var_21[-2] = var_21;
        var_21[-1] = 0;
        *(type_6 *)var_21 = 0;
      }
      if (var_11 == var_21 + 5) break;
      var_21 = var_21 + 0xe;
      var_16 = var_16 + 0xe;
    }
    var_21 = var_17 + ((((type_1)((int)var_21 + (-0x24 - (int)var_15)) >> 3) * 0x16db6db7 &
                        0x1fffffff) + 2) * 0xe;
  }
  var_18 = var_11 + 9;
  var_20 = var_21;
  var_16 = var_15;
  if (var_14 != var_11) {
    do {
      while( true ) {
        uVar25 = var_18[-9];
        uVar23 = var_18[-8];
        uVar22 = var_18[-7];
        uVar21 = var_18[-6];
        uVar20 = var_18[-5];
        uVar19 = var_18[-4];
        uVar15 = var_18[-3];
        var_19 = (type_2 *)var_18[-2];
        var_20[7] = var_20 + 9;
        *var_20 = uVar25;
        var_20[1] = uVar23;
        var_20[2] = uVar22;
        var_20[3] = uVar21;
        var_20[4] = uVar20;
        var_20[5] = uVar19;
        var_20[6] = uVar15;
        if (var_18 != var_19) break;
        uVar20 = var_18[1];
        uVar19 = var_18[2];
        uVar15 = var_18[3];
        var_20[9] = *var_18;
        var_20[10] = uVar20;
        var_20[0xb] = uVar19;
        var_20[0xc] = uVar15;
        var_19 = var_18 + 5;
        var_18[-2] = var_18;
        *(type_6 *)var_18 = 0;
        uVar15 = var_18[-1];
        var_18[-1] = 0;
        var_20[8] = uVar15;
        var_18 = var_18 + 0xe;
        var_20 = var_20 + 0xe;
        if (var_14 == var_19) goto LAB_001a5a78;
      }
      uVar15 = *var_18;
      uVar19 = var_18[-1];
      var_20[7] = var_19;
      var_20[9] = uVar15;
      var_19 = var_18 + 5;
      var_18[-2] = var_18;
      var_18[-1] = 0;
      *(type_6 *)var_18 = 0;
      var_20[8] = uVar19;
      var_18 = var_18 + 0xe;
      var_20 = var_20 + 0xe;
    } while (var_14 != var_19);
LAB_001a5a78:
    var_21 = var_21 + ((((type_1)((int)var_14 + (-0x38 - (int)var_11)) >> 3) * 0x16db6db7 &
                         0x1fffffff) + 1) * 0xe;
  }
  while (var_16 != var_14) {
    var_11 = var_16 + 7;
    var_18 = var_16 + 9;
    var_16 = var_16 + 0xe;
    if ((type_2 *)*var_11 != var_18) {
      (**(type_5 **)(var_9 + 0x28cb34))();
    }
  }
  if (var_15 != (type_2 *)0x0) {
    (**(type_5 **)(var_9 + 0x28cb34))(var_15);
  }
  *var_12 = var_17;
  var_12[1] = var_21;
  var_12[2] = var_6;
  return;
}


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

/* void gold::Output_data_dynamic::Dynamic_entry::write<32, true>(unsigned char*,
   gold::Stringpool_template<char> const*) const */

void __thiscall
gold::Output_data_dynamic::Dynamic_entry::MASKED
          (Dynamic_entry *this,uchar *param_1,Stringpool_template *param_2)

{
  uint uVar1;
  uint uVar2;
  undefined4 *puVar3;
  undefined4 *puVar4;
  undefined4 uVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  int *piVar9;
  uint uVar10;
  int iVar11;
  undefined4 *puVar12;
  int *piVar13;
  undefined4 *puVar14;
  undefined4 *puVar15;
  undefined *puVar16;
  undefined4 *puVar17;
  undefined4 uVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  undefined4 uVar22;
  undefined4 *puVar23;
  undefined4 uVar24;
  undefined4 *puVar25;
  undefined *puVar26;
  code *pcVar27;
  code *pcVar28;
  
  uVar1 = *(int *)(this + 0xc) + 5;
  if (uVar1 < 5) {
                    /* WARNING: Could not emulate address calculation at 0x001a4f94 */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(Position_dependent_options::default_options_ +
              *(int *)(PTR_s_alize_xindex_004323b4 + uVar1 * 4 + 0x5dd0) + 0x37e0))();
    return;
  }
  if (*(int *)(*(int *)this + 0x20) < 0) {
    uVar5 = *(undefined4 *)(this + 8);
    *(int *)(param_1 + 4) = *(int *)(this + 0xc) + *(int *)(*(int *)this + 0xc);
    *(undefined4 *)param_1 = uVar5;
    return;
  }
  puVar16 = PTR_s_alize_xindex_004323b4 + 0x7850;
  (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xc5,puVar16);
  piVar13 = (int *)&DAT_00000069;
  piVar9 = (int *)(PTR_s_alize_xindex_004323b4 + -0x5cec);
  puVar26 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar9,0x69,puVar16 + 0x78f8);
  uVar1 = piVar9[3];
  if (uVar1 + 5 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a5190. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(puVar26 +
              *(int *)(*(int *)(puVar26 + 0x28d274) + 0x5de4 + (uVar1 + 5) * 4) + 0x295090))();
    return;
  }
  iVar6 = *piVar9;
  if (*(int *)(iVar6 + 0x20) < 0) {
    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);
    uVar1 = (uint)(uVar2 < uVar1) + *(int *)(iVar6 + 8);
    uVar10 = piVar9[2];
    piVar13[1] = 0;
    piVar13[3] = (((uVar1 >> 0x10) << 0x18 | (uVar1 >> 0x18) << 0x10) >> 0x10) +
                 ((uVar1 & 0xff) << 8 | uVar1 >> 8 & 0xff) * 0x10000;
    piVar13[2] = (((uVar2 >> 0x10) << 0x18 | (uVar2 >> 0x18) << 0x10) >> 0x10) +
                 ((uVar2 & 0xff) << 8 | uVar2 >> 8 & 0xff) * 0x10000;
    *piVar13 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
    return;
  }
  iVar6 = *(int *)(puVar26 + 0x28d274) + 0x7850;
  (**(code **)(puVar26 + 0x28d284))(*(int *)(puVar26 + 0x28d274) + -0x4fe0,0xc5,iVar6);
  puVar14 = (undefined4 *)&DAT_00000069;
  pcVar27 = *(code **)(puVar26 + 0x28d284);
  piVar9 = (int *)(*(int *)(puVar26 + 0x28d274) + -0x5cec);
  (*pcVar27)(piVar9,0x69,iVar6 + 0x78f8);
  uVar1 = piVar9[3];
  if (uVar1 + 5 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a5348. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(pcVar27 + *(int *)(*(int *)(pcVar27 + 0x28d0bc) + 0x5df8 + (uVar1 + 5) * 4) + 0x294ed8))();
    return;
  }
  iVar6 = *piVar9;
  if (*(int *)(iVar6 + 0x20) < 0) {
    iVar11 = *(int *)(iVar6 + 8);
    uVar2 = uVar1 + *(int *)(iVar6 + 0xc);
    iVar6 = piVar9[2];
    *puVar14 = 0;
    puVar14[2] = (uint)(uVar2 < uVar1) + iVar11;
    puVar14[1] = iVar6;
    puVar14[3] = uVar2;
    return;
  }
  iVar6 = *(int *)(pcVar27 + 0x28d0bc) + 0x7850;
  (**(code **)(pcVar27 + 0x28d0cc))(*(int *)(pcVar27 + 0x28d0bc) + -0x4fe0,0xc5,iVar6);
  uVar1 = 0x69;
  pcVar28 = *(code **)(pcVar27 + 0x28d0cc);
  piVar9 = (int *)(*(int *)(pcVar27 + 0x28d0bc) + -0x5cec);
  (*pcVar28)(piVar9,0x69,iVar6 + 0x78f8);
  if (uVar1 == 0) {
    return;
  }
  puVar7 = (undefined4 *)piVar9[1];
  puVar17 = (undefined4 *)&DAT_aaaaaaab;
  puVar14 = puVar7;
  uVar2 = uVar1;
  if (uVar1 <= (uint)((piVar9[2] - (int)puVar7 >> 3) * -0x55555555)) {
    do {
      *puVar14 = 0;
      puVar14[1] = 0;
      uVar2 = uVar2 - 1;
      puVar14[3] = 0;
      puVar14[2] = 0;
      puVar14[4] = 0;
      puVar14 = puVar14 + 6;
    } while (uVar2 != 0);
    piVar9[1] = (int)(puVar7 + uVar1 * 6);
    return;
  }
  iVar6 = *piVar9;
  puVar14 = (undefined4 *)((int)puVar7 - iVar6 >> 3);
  uVar2 = (int)puVar14 * -0x55555555;
  if (uVar1 <= (int)puVar14 * 0x55555555 + 0xaaaaaaaU) {
    uVar10 = uVar2;
    if (uVar2 <= uVar1) {
      uVar10 = uVar1;
    }
    uVar10 = uVar10 + uVar2;
    iVar11 = -0x10;
    if (uVar2 <= uVar10) {
      if (0xaaaaaaa < uVar10) {
        uVar10 = 0xaaaaaaa;
      }
      iVar11 = uVar10 * 0x18;
    }
    puVar17 = (undefined4 *)(**(code **)(pcVar28 + 0x28cdf0))(iVar11);
    puVar14 = (undefined4 *)((int)puVar17 + ((int)puVar7 - iVar6));
    uVar10 = uVar1;
    do {
      *puVar14 = 0;
      puVar14[1] = 0;
      uVar10 = uVar10 - 1;
      puVar14[3] = 0;
      puVar14[2] = 0;
      puVar14[4] = 0;
      puVar14 = puVar14 + 6;
    } while (uVar10 != 0);
    puVar23 = (undefined4 *)piVar9[1];
    puVar12 = (undefined4 *)*piVar9;
    puVar7 = puVar17;
    for (puVar14 = puVar12; puVar14 != puVar23; puVar14 = puVar14 + 6) {
      uVar21 = puVar14[1];
      uVar20 = puVar14[2];
      uVar19 = puVar14[3];
      uVar18 = puVar14[4];
      uVar5 = puVar14[5];
      *puVar7 = *puVar14;
      puVar7[1] = uVar21;
      puVar7[2] = uVar20;
      puVar7[3] = uVar19;
      puVar7[4] = uVar18;
      puVar7[5] = uVar5;
      puVar7 = puVar7 + 6;
    }
    if (puVar12 != (undefined4 *)0x0) {
      (**(code **)(pcVar28 + 0x28cd40))();
    }
    *piVar9 = (int)puVar17;
    piVar9[2] = (int)puVar17 + iVar11;
    piVar9[1] = (int)(puVar17 + (uVar1 + uVar2) * 6);
    return;
  }
  pcVar27 = *(code **)(pcVar28 + 0x28cf34);
  puVar7 = (undefined4 *)(*(int *)(pcVar28 + 0x28ccc0) + 0x4d8c);
  (*pcVar27)();
  puVar23 = (undefined4 *)puVar7[1];
  puVar12 = (undefined4 *)*puVar7;
  iVar6 = (int)puVar23 - (int)puVar12 >> 3;
  uVar1 = iVar6 * -0x49249249;
  if (uVar1 == 0) {
    uVar2 = 1;
LAB_001a5b4c:
    iVar6 = uVar2 * 0x38;
  }
  else {
    uVar2 = iVar6 * 0x6db6db6e;
    if (uVar2 < uVar1) {
      iVar6 = -0x20;
    }
    else {
      iVar6 = -0x20;
      if (uVar2 < 0x4924925) {
        puVar25 = (undefined4 *)&DAT_00000038;
        if (uVar2 == 0) {
          iVar6 = 0;
          puVar3 = (undefined4 *)0x0;
          goto LAB_001a57f4;
        }
        goto LAB_001a5b4c;
      }
    }
  }
  puVar3 = (undefined4 *)(**(code **)(pcVar27 + 0x28cbe4))(iVar6);
  iVar6 = (int)puVar3 + iVar6;
  puVar25 = puVar3 + 0xe;
LAB_001a57f4:
  puVar4 = (undefined4 *)((int)puVar3 + ((int)puVar14 - (int)puVar12));
  uVar22 = puVar17[1];
  puVar8 = puVar17 + 9;
  uVar21 = puVar17[2];
  uVar20 = puVar17[3];
  uVar19 = puVar17[4];
  uVar18 = puVar17[5];
  uVar5 = puVar17[6];
  puVar15 = (undefined4 *)puVar17[7];
  *puVar4 = *puVar17;
  puVar4[1] = uVar22;
  puVar4[2] = uVar21;
  puVar4[3] = uVar20;
  puVar4[4] = uVar19;
  puVar4[5] = uVar18;
  puVar4[6] = uVar5;
  puVar4[7] = puVar4 + 9;
  if (puVar15 == puVar8) {
    uVar19 = puVar17[10];
    uVar18 = puVar17[0xb];
    uVar5 = puVar17[0xc];
    puVar4[9] = *puVar8;
    puVar4[10] = uVar19;
    puVar4[0xb] = uVar18;
    puVar4[0xc] = uVar5;
  }
  else {
    uVar5 = puVar17[9];
    puVar4[7] = puVar15;
    puVar4[9] = uVar5;
  }
  uVar5 = puVar17[8];
  puVar17[7] = puVar8;
  puVar17[8] = 0;
  puVar4[8] = uVar5;
  *(undefined1 *)(puVar17 + 9) = 0;
  if (puVar12 != puVar14) {
    puVar25 = puVar12 + 9;
    puVar17 = puVar3;
    while( true ) {
      uVar5 = puVar25[-4];
      uVar21 = puVar25[-8];
      uVar20 = puVar25[-7];
      uVar19 = puVar25[-6];
      uVar18 = puVar25[-5];
      *puVar17 = puVar25[-9];
      puVar17[1] = uVar21;
      puVar17[2] = uVar20;
      puVar17[3] = uVar19;
      puVar17[4] = uVar18;
      puVar17[5] = uVar5;
      uVar5 = puVar25[-3];
      puVar17[7] = puVar17 + 9;
      puVar17[6] = uVar5;
      if ((undefined4 *)puVar25[-2] == puVar25) {
        uVar19 = puVar25[1];
        uVar18 = puVar25[2];
        uVar5 = puVar25[3];
        puVar17[9] = *puVar25;
        puVar17[10] = uVar19;
        puVar17[0xb] = uVar18;
        puVar17[0xc] = uVar5;
        puVar17[8] = puVar25[-1];
        puVar25[-2] = puVar25;
        puVar25[-1] = 0;
        *(undefined1 *)puVar25 = 0;
      }
      else {
        puVar17[7] = (undefined4 *)puVar25[-2];
        puVar17[9] = *puVar25;
        puVar17[8] = puVar25[-1];
        puVar25[-2] = puVar25;
        puVar25[-1] = 0;
        *(undefined1 *)puVar25 = 0;
      }
      if (puVar14 == puVar25 + 5) break;
      puVar25 = puVar25 + 0xe;
      puVar17 = puVar17 + 0xe;
    }
    puVar25 = puVar3 + ((((uint)((int)puVar25 + (-0x24 - (int)puVar12)) >> 3) * 0x16db6db7 &
                        0x1fffffff) + 2) * 0xe;
  }
  puVar4 = puVar14 + 9;
  puVar8 = puVar25;
  puVar17 = puVar12;
  if (puVar23 != puVar14) {
    do {
      while( true ) {
        uVar24 = puVar4[-9];
        uVar22 = puVar4[-8];
        uVar21 = puVar4[-7];
        uVar20 = puVar4[-6];
        uVar19 = puVar4[-5];
        uVar18 = puVar4[-4];
        uVar5 = puVar4[-3];
        puVar15 = (undefined4 *)puVar4[-2];
        puVar8[7] = puVar8 + 9;
        *puVar8 = uVar24;
        puVar8[1] = uVar22;
        puVar8[2] = uVar21;
        puVar8[3] = uVar20;
        puVar8[4] = uVar19;
        puVar8[5] = uVar18;
        puVar8[6] = uVar5;
        if (puVar4 != puVar15) break;
        uVar19 = puVar4[1];
        uVar18 = puVar4[2];
        uVar5 = puVar4[3];
        puVar8[9] = *puVar4;
        puVar8[10] = uVar19;
        puVar8[0xb] = uVar18;
        puVar8[0xc] = uVar5;
        puVar15 = puVar4 + 5;
        puVar4[-2] = puVar4;
        *(undefined1 *)puVar4 = 0;
        uVar5 = puVar4[-1];
        puVar4[-1] = 0;
        puVar8[8] = uVar5;
        puVar4 = puVar4 + 0xe;
        puVar8 = puVar8 + 0xe;
        if (puVar23 == puVar15) goto LAB_001a5a78;
      }
      uVar5 = *puVar4;
      uVar18 = puVar4[-1];
      puVar8[7] = puVar15;
      puVar8[9] = uVar5;
      puVar15 = puVar4 + 5;
      puVar4[-2] = puVar4;
      puVar4[-1] = 0;
      *(undefined1 *)puVar4 = 0;
      puVar8[8] = uVar18;
      puVar4 = puVar4 + 0xe;
      puVar8 = puVar8 + 0xe;
    } while (puVar23 != puVar15);
LAB_001a5a78:
    puVar25 = puVar25 + ((((uint)((int)puVar23 + (-0x38 - (int)puVar14)) >> 3) * 0x16db6db7 &
                         0x1fffffff) + 1) * 0xe;
  }
  while (puVar17 != puVar23) {
    puVar14 = puVar17 + 7;
    puVar4 = puVar17 + 9;
    puVar17 = puVar17 + 0xe;
    if ((undefined4 *)*puVar14 != puVar4) {
      (**(code **)(pcVar27 + 0x28cb34))();
    }
  }
  if (puVar12 != (undefined4 *)0x0) {
    (**(code **)(pcVar27 + 0x28cb34))(puVar12);
  }
  *puVar7 = puVar3;
  puVar7[1] = puVar25;
  puVar7[2] = iVar6;
  return;
}

