
/* void gold::Output_file_header::do_sized_write<64, true>(gold::Output_file*) */

void __thiscall
gold::Output_file_header::do_sized_write<64,true>(Output_file_header *this,Output_file *param_1)

{
  undefined *puVar1;
  int iVar2;
  undefined4 uVar3;
  uint uVar4;
  undefined2 uVar7;
  undefined4 *puVar5;
  undefined4 *puVar6;
  uint extraout_v1;
  undefined4 *puVar8;
  undefined4 *puVar9;
  uint uVar10;
  int *piVar11;
  uint uVar12;
  undefined4 *puVar13;
  int iVar14;
  int *piVar15;
  undefined4 *puVar16;
  undefined *puVar17;
  undefined4 *puVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  undefined4 uVar22;
  undefined4 uVar23;
  undefined4 *puVar24;
  undefined4 uVar25;
  undefined4 *puVar26;
  Output_file_header *unaff_s1;
  uint unaff_s2;
  undefined4 *puVar27;
  code *pcVar28;
  code *pcVar29;
  undefined8 uVar30;
  
  if (-1 < *(int *)(this + 0x20) << 2) goto LAB_001a4c58;
  unaff_s2 = *(uint *)(this + 0x1c);
  if (*(int *)(this + 0x18) == 0 && unaff_s2 == 0) {
    iVar2 = *(int *)(param_1 + 8);
    if (iVar2 < 1) goto LAB_001a4cbc;
    do {
      puVar26 = *(undefined4 **)(param_1 + 0x10);
      *puVar26 = 0x7f454c46;
      puVar17 = PTR_parameters_00432be0;
      puVar26[1] = 0x2020100;
      puVar26[2] = 0;
      puVar26[3] = 0;
      iVar2 = *(int *)(*(int *)puVar17 + 8);
      puVar17 = PTR_s_alize_xindex_004323b4;
      if (iVar2 != 0) {
        if (*(char *)(iVar2 + 0x3195) == '\0') {
          if (*(char *)(iVar2 + 0x1a29) == '\0') {
            uVar7 = 2;
            if (*(char *)(iVar2 + 0x2939) != '\0') {
              uVar7 = 3;
            }
          }
          else {
            uVar7 = 3;
          }
        }
        else {
          uVar7 = 1;
        }
        *(undefined2 *)(puVar26 + 4) = uVar7;
        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);
        puVar26[5] = 1;
        *(short *)((int)puVar26 + 0x12) = (short)uVar3;
        uVar30 = entry<64>(this);
        *(undefined8 *)(puVar26 + 6) = uVar30;
        iVar2 = *(int *)(this + 0x2c);
        unaff_s1 = this;
        if (iVar2 == 0) {
          puVar26[9] = 0;
          puVar26[8] = 0;
LAB_001a4a64:
          iVar2 = *(int *)(this + 0x30);
          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;
          uVar3 = *(undefined4 *)(iVar2 + 0x1c);
          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);
          puVar26[0xb] = uVar3;
          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);
          *(undefined2 *)(puVar26 + 0xd) = 0x40;
          puVar26[0xc] = uVar3;
          if (*(int *)(this + 0x2c) != 0) {
            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;
            iVar2 = *(int *)(this + 0x2c);
            if (*(int *)(iVar2 + 0x20) << 1 < 0) {
              (*(code *)PTR_FUN_00432fc8)
                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);
              uVar7 = 0xffff;
              if (extraout_v1 < 0x10000) {
                uVar7 = (undefined2)extraout_v1;
              }
              *(undefined2 *)(puVar26 + 0xe) = uVar7;
              goto LAB_001a4aec;
            }
            goto LAB_001a4c74;
          }
          *(undefined2 *)((int)puVar26 + 0x36) = 0;
          *(undefined2 *)(puVar26 + 0xe) = 0;
LAB_001a4aec:
          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;
          puVar1 = PTR_do_out_shndx_00432f04;
          iVar2 = *(int *)(this + 0x30);
          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;
          iVar14 = *(int *)(iVar2 + 0x10);
          uVar10 = *(uint *)(iVar2 + 0x14);
          uVar4 = uVar10;
          if (iVar14 < 0) {
            uVar4 = uVar10 + 0x3f;
            iVar14 = (uint)(uVar4 < uVar10) + iVar14;
          }
          uVar4 = iVar14 << 0x1a | uVar4 >> 6;
          if (0xfeff < uVar4) {
            uVar4 = unaff_s2;
          }
          *(short *)(puVar26 + 0xf) = (short)uVar4;
          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);
          if (pcVar28 == (code *)puVar1) {
            uVar4 = (*(int **)(this + 0x34))[0x19];
            puVar17 = PTR_s_alize_xindex_004323b4;
            if (uVar4 != 0xffffffff) goto LAB_001a4b68;
          }
          else {
            uVar4 = (*pcVar28)();
LAB_001a4b68:
            if (0xfeff < uVar4) {
              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;
                    /* WARNING: Could not recover jumptable at 0x001a4c08. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);
              return;
            }
            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);
            if (pcVar28 != (code *)puVar1) {
              iVar2 = (*pcVar28)();
LAB_001a4b98:
              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;
                    /* WARNING: Could not recover jumptable at 0x001a4bc8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);
              return;
            }
            iVar2 = (*(int **)(this + 0x34))[0x19];
            puVar17 = PTR_s_alize_xindex_004323b4;
            if (iVar2 != -1) goto LAB_001a4b98;
          }
        }
        else {
          if (*(int *)(iVar2 + 0x20) << 2 < 0) {
            uVar3 = *(undefined4 *)(iVar2 + 0x18);
            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);
            puVar26[8] = uVar3;
            goto LAB_001a4a64;
          }
LAB_001a4c58:
          (*(code *)PTR_do_gold_unreachable_004323c4)
                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818
                    );
LAB_001a4c74:
          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;
          (*(code *)PTR_do_gold_unreachable_004323c4)
                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);
          this = unaff_s1;
        }
        puVar17 = puVar17 + 0x7868;
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);
      }
      param_1 = (Output_file *)&DAT_0000005c;
      iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)
                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc);
LAB_001a4cbc:
    } while ((iVar2 == 0) && (0x3f < *(uint *)(param_1 + 0xc)));
    (*(code *)(PTR_LAB_004346b8 + 0x2b60))();
  }
  piVar15 = (int *)&DAT_000001ff;
  piVar11 = (int *)(PTR_s_alize_xindex_004323b4 + 0x59f0);
  puVar17 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar11,0x1ff,PTR_s_alize_xindex_004323b4 + 0x769c);
  uVar4 = piVar11[3] + 5;
  if (uVar4 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a4d50. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0))();
    return;
  }
  if (*(int *)(*piVar11 + 0x20) < 0) {
    uVar4 = piVar11[3] + *(int *)(*piVar11 + 0xc);
    uVar10 = piVar11[2];
    piVar15[1] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +
                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;
    *piVar15 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
    return;
  }
  iVar2 = *(int *)(puVar17 + 0x28d6b4) + 0x7850;
  (**(code **)(puVar17 + 0x28d6c4))(*(int *)(puVar17 + 0x28d6b4) + -0x4fe0,0xc5,iVar2);
  piVar15 = (int *)&DAT_00000069;
  pcVar28 = *(code **)(puVar17 + 0x28d6c4);
  piVar11 = (int *)(*(int *)(puVar17 + 0x28d6b4) + -0x5cec);
  (*pcVar28)(piVar11,0x69,iVar2 + 0x78f8);
  uVar4 = piVar11[3] + 5;
  if (uVar4 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a4fa0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280))();
    return;
  }
  if (*(int *)(*piVar11 + 0x20) < 0) {
    iVar2 = piVar11[2];
    piVar15[1] = piVar11[3] + *(int *)(*piVar11 + 0xc);
    *piVar15 = iVar2;
    return;
  }
  iVar2 = *(int *)(pcVar28 + 0x28d464) + 0x7850;
  (**(code **)(pcVar28 + 0x28d474))(*(int *)(pcVar28 + 0x28d464) + -0x4fe0,0xc5,iVar2);
  piVar15 = (int *)&DAT_00000069;
  pcVar29 = *(code **)(pcVar28 + 0x28d474);
  piVar11 = (int *)(*(int *)(pcVar28 + 0x28d464) + -0x5cec);
  (*pcVar29)(piVar11,0x69,iVar2 + 0x78f8);
  uVar4 = piVar11[3];
  if (uVar4 + 5 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a5190. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090))();
    return;
  }
  iVar2 = *piVar11;
  if (*(int *)(iVar2 + 0x20) < 0) {
    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);
    uVar4 = (uint)(uVar10 < uVar4) + *(int *)(iVar2 + 8);
    uVar12 = piVar11[2];
    piVar15[1] = 0;
    piVar15[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +
                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;
    piVar15[2] = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
                 ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
    *piVar15 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +
               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;
    return;
  }
  iVar2 = *(int *)(pcVar29 + 0x28d274) + 0x7850;
  (**(code **)(pcVar29 + 0x28d284))(*(int *)(pcVar29 + 0x28d274) + -0x4fe0,0xc5,iVar2);
  puVar26 = (undefined4 *)&DAT_00000069;
  pcVar28 = *(code **)(pcVar29 + 0x28d284);
  piVar11 = (int *)(*(int *)(pcVar29 + 0x28d274) + -0x5cec);
  (*pcVar28)(piVar11,0x69,iVar2 + 0x78f8);
  uVar4 = piVar11[3];
  if (uVar4 + 5 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a5348. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8))();
    return;
  }
  iVar2 = *piVar11;
  if (*(int *)(iVar2 + 0x20) < 0) {
    iVar14 = *(int *)(iVar2 + 8);
    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);
    iVar2 = piVar11[2];
    *puVar26 = 0;
    puVar26[2] = (uint)(uVar10 < uVar4) + iVar14;
    puVar26[1] = iVar2;
    puVar26[3] = uVar10;
    return;
  }
  iVar2 = *(int *)(pcVar28 + 0x28d0bc) + 0x7850;
  (**(code **)(pcVar28 + 0x28d0cc))(*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0,0xc5,iVar2);
  uVar4 = 0x69;
  pcVar29 = *(code **)(pcVar28 + 0x28d0cc);
  piVar11 = (int *)(*(int *)(pcVar28 + 0x28d0bc) + -0x5cec);
  (*pcVar29)(piVar11,0x69,iVar2 + 0x78f8);
  if (uVar4 == 0) {
    return;
  }
  puVar8 = (undefined4 *)piVar11[1];
  puVar18 = (undefined4 *)&DAT_aaaaaaab;
  puVar26 = puVar8;
  uVar10 = uVar4;
  if (uVar4 <= (uint)((piVar11[2] - (int)puVar8 >> 3) * -0x55555555)) {
    do {
      *puVar26 = 0;
      puVar26[1] = 0;
      uVar10 = uVar10 - 1;
      puVar26[3] = 0;
      puVar26[2] = 0;
      puVar26[4] = 0;
      puVar26 = puVar26 + 6;
    } while (uVar10 != 0);
    piVar11[1] = (int)(puVar8 + uVar4 * 6);
    return;
  }
  iVar2 = *piVar11;
  puVar26 = (undefined4 *)((int)puVar8 - iVar2 >> 3);
  uVar10 = (int)puVar26 * -0x55555555;
  if (uVar4 <= (int)puVar26 * 0x55555555 + 0xaaaaaaaU) {
    uVar12 = uVar10;
    if (uVar10 <= uVar4) {
      uVar12 = uVar4;
    }
    uVar12 = uVar12 + uVar10;
    iVar14 = -0x10;
    if (uVar10 <= uVar12) {
      if (0xaaaaaaa < uVar12) {
        uVar12 = 0xaaaaaaa;
      }
      iVar14 = uVar12 * 0x18;
    }
    puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar14);
    puVar26 = (undefined4 *)((int)puVar18 + ((int)puVar8 - iVar2));
    uVar12 = uVar4;
    do {
      *puVar26 = 0;
      puVar26[1] = 0;
      uVar12 = uVar12 - 1;
      puVar26[3] = 0;
      puVar26[2] = 0;
      puVar26[4] = 0;
      puVar26 = puVar26 + 6;
    } while (uVar12 != 0);
    puVar24 = (undefined4 *)piVar11[1];
    puVar13 = (undefined4 *)*piVar11;
    puVar8 = puVar18;
    for (puVar26 = puVar13; puVar26 != puVar24; puVar26 = puVar26 + 6) {
      uVar22 = puVar26[1];
      uVar21 = puVar26[2];
      uVar20 = puVar26[3];
      uVar19 = puVar26[4];
      uVar3 = puVar26[5];
      *puVar8 = *puVar26;
      puVar8[1] = uVar22;
      puVar8[2] = uVar21;
      puVar8[3] = uVar20;
      puVar8[4] = uVar19;
      puVar8[5] = uVar3;
      puVar8 = puVar8 + 6;
    }
    if (puVar13 != (undefined4 *)0x0) {
      (**(code **)(pcVar29 + 0x28cd40))();
    }
    *piVar11 = (int)puVar18;
    piVar11[2] = (int)puVar18 + iVar14;
    piVar11[1] = (int)(puVar18 + (uVar4 + uVar10) * 6);
    return;
  }
  pcVar28 = *(code **)(pcVar29 + 0x28cf34);
  puVar8 = (undefined4 *)(*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c);
  (*pcVar28)();
  puVar24 = (undefined4 *)puVar8[1];
  puVar13 = (undefined4 *)*puVar8;
  iVar2 = (int)puVar24 - (int)puVar13 >> 3;
  uVar4 = iVar2 * -0x49249249;
  if (uVar4 == 0) {
    uVar10 = 1;
LAB_001a5b4c:
    iVar2 = uVar10 * 0x38;
  }
  else {
    uVar10 = iVar2 * 0x6db6db6e;
    if (uVar10 < uVar4) {
      iVar2 = -0x20;
    }
    else {
      iVar2 = -0x20;
      if (uVar10 < 0x4924925) {
        puVar27 = (undefined4 *)&DAT_00000038;
        if (uVar10 == 0) {
          iVar2 = 0;
          puVar5 = (undefined4 *)0x0;
          goto LAB_001a57f4;
        }
        goto LAB_001a5b4c;
      }
    }
  }
  puVar5 = (undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar2);
  iVar2 = (int)puVar5 + iVar2;
  puVar27 = puVar5 + 0xe;
LAB_001a57f4:
  puVar6 = (undefined4 *)((int)puVar5 + ((int)puVar26 - (int)puVar13));
  uVar23 = puVar18[1];
  puVar9 = puVar18 + 9;
  uVar22 = puVar18[2];
  uVar21 = puVar18[3];
  uVar20 = puVar18[4];
  uVar19 = puVar18[5];
  uVar3 = puVar18[6];
  puVar16 = (undefined4 *)puVar18[7];
  *puVar6 = *puVar18;
  puVar6[1] = uVar23;
  puVar6[2] = uVar22;
  puVar6[3] = uVar21;
  puVar6[4] = uVar20;
  puVar6[5] = uVar19;
  puVar6[6] = uVar3;
  puVar6[7] = puVar6 + 9;
  if (puVar16 == puVar9) {
    uVar20 = puVar18[10];
    uVar19 = puVar18[0xb];
    uVar3 = puVar18[0xc];
    puVar6[9] = *puVar9;
    puVar6[10] = uVar20;
    puVar6[0xb] = uVar19;
    puVar6[0xc] = uVar3;
  }
  else {
    uVar3 = puVar18[9];
    puVar6[7] = puVar16;
    puVar6[9] = uVar3;
  }
  uVar3 = puVar18[8];
  puVar18[7] = puVar9;
  puVar18[8] = 0;
  puVar6[8] = uVar3;
  *(undefined1 *)(puVar18 + 9) = 0;
  if (puVar13 != puVar26) {
    puVar27 = puVar13 + 9;
    puVar18 = puVar5;
    while( true ) {
      uVar3 = puVar27[-4];
      uVar22 = puVar27[-8];
      uVar21 = puVar27[-7];
      uVar20 = puVar27[-6];
      uVar19 = puVar27[-5];
      *puVar18 = puVar27[-9];
      puVar18[1] = uVar22;
      puVar18[2] = uVar21;
      puVar18[3] = uVar20;
      puVar18[4] = uVar19;
      puVar18[5] = uVar3;
      uVar3 = puVar27[-3];
      puVar18[7] = puVar18 + 9;
      puVar18[6] = uVar3;
      if ((undefined4 *)puVar27[-2] == puVar27) {
        uVar20 = puVar27[1];
        uVar19 = puVar27[2];
        uVar3 = puVar27[3];
        puVar18[9] = *puVar27;
        puVar18[10] = uVar20;
        puVar18[0xb] = uVar19;
        puVar18[0xc] = uVar3;
        puVar18[8] = puVar27[-1];
        puVar27[-2] = puVar27;
        puVar27[-1] = 0;
        *(undefined1 *)puVar27 = 0;
      }
      else {
        puVar18[7] = (undefined4 *)puVar27[-2];
        puVar18[9] = *puVar27;
        puVar18[8] = puVar27[-1];
        puVar27[-2] = puVar27;
        puVar27[-1] = 0;
        *(undefined1 *)puVar27 = 0;
      }
      if (puVar26 == puVar27 + 5) break;
      puVar27 = puVar27 + 0xe;
      puVar18 = puVar18 + 0xe;
    }
    puVar27 = puVar5 + ((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &
                        0x1fffffff) + 2) * 0xe;
  }
  puVar6 = puVar26 + 9;
  puVar9 = puVar27;
  puVar18 = puVar13;
  if (puVar24 != puVar26) {
    do {
      while( true ) {
        uVar25 = puVar6[-9];
        uVar23 = puVar6[-8];
        uVar22 = puVar6[-7];
        uVar21 = puVar6[-6];
        uVar20 = puVar6[-5];
        uVar19 = puVar6[-4];
        uVar3 = puVar6[-3];
        puVar16 = (undefined4 *)puVar6[-2];
        puVar9[7] = puVar9 + 9;
        *puVar9 = uVar25;
        puVar9[1] = uVar23;
        puVar9[2] = uVar22;
        puVar9[3] = uVar21;
        puVar9[4] = uVar20;
        puVar9[5] = uVar19;
        puVar9[6] = uVar3;
        if (puVar6 != puVar16) break;
        uVar20 = puVar6[1];
        uVar19 = puVar6[2];
        uVar3 = puVar6[3];
        puVar9[9] = *puVar6;
        puVar9[10] = uVar20;
        puVar9[0xb] = uVar19;
        puVar9[0xc] = uVar3;
        puVar16 = puVar6 + 5;
        puVar6[-2] = puVar6;
        *(undefined1 *)puVar6 = 0;
        uVar3 = puVar6[-1];
        puVar6[-1] = 0;
        puVar9[8] = uVar3;
        puVar6 = puVar6 + 0xe;
        puVar9 = puVar9 + 0xe;
        if (puVar24 == puVar16) goto LAB_001a5a78;
      }
      uVar3 = *puVar6;
      uVar19 = puVar6[-1];
      puVar9[7] = puVar16;
      puVar9[9] = uVar3;
      puVar16 = puVar6 + 5;
      puVar6[-2] = puVar6;
      puVar6[-1] = 0;
      *(undefined1 *)puVar6 = 0;
      puVar9[8] = uVar19;
      puVar6 = puVar6 + 0xe;
      puVar9 = puVar9 + 0xe;
    } while (puVar24 != puVar16);
LAB_001a5a78:
    puVar27 = puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &
                         0x1fffffff) + 1) * 0xe;
  }
  while (puVar18 != puVar24) {
    puVar26 = puVar18 + 7;
    puVar6 = puVar18 + 9;
    puVar18 = puVar18 + 0xe;
    if ((undefined4 *)*puVar26 != puVar6) {
      (**(code **)(pcVar28 + 0x28cb34))();
    }
  }
  if (puVar13 != (undefined4 *)0x0) {
    (**(code **)(pcVar28 + 0x28cb34))(puVar13);
  }
  *puVar8 = puVar5;
  puVar8[1] = puVar27;
  puVar8[2] = iVar2;
  return;
}


lui gp,0x29
addiu gp,gp,0x58bc
addu gp,gp,t9
lw v0,0x20(a0)
addiu sp,sp,-0x40
ext v0,v0,0x1d,0x1
sw gp,0x10(sp)
sw ra,0x3c(sp)
sw s3,0x38(sp)
sw s2,0x34(sp)
sw s1,0x30(sp)
beq v0,zero,0x001a4c54
_sw s0,0x2c(sp)
lw v0,0x18(a0)
lw s2,0x1c(a0)
or v0,v0,s2
bne v0,zero,0x001a4ce4
_or s1,a0,zero
lw v0,0x8(a1)
blez v0,0x001a4cbc
_nop
li v0,0x202
lw s0,0x10(a1)
li v1,0x1
sh zero,0x1e(sp)
sh v0,0x1c(sp)
lui v0,0x7f45
sb v1,0x1e(sp)
addiu v0,v0,0x4c46
sh zero,0x20(sp)
sh zero,0x22(sp)
swl v0,0x0(s0)
swr v0,0x3(s0)
sh zero,0x24(sp)
sh zero,0x26(sp)
sw v0,0x18(sp)
lw a1,0x1c(sp)
lw a0,0x20(sp)
lw v1,0x24(sp)
lw v0,-0x75f0(gp)
swl a1,0x4(s0)
swr a1,0x7(s0)
swl a0,0x8(s0)
swr a0,0xb(s0)
swl v1,0xc(s0)
swr v1,0xf(s0)
lw v0,0x0(v0)
lw v0,0x8(v0)
beq v0,zero,0x001a4ca4
_lw a2,-0x7e1c(gp)
lbu v1,0x3195(v0)
bne v1,zero,0x001a4bd0
_nop
lbu v1,0x1a29(v0)
bne v1,zero,0x001a4c2c
_li a0,0x3
lbu v0,0x2939(v0)
li v1,0x2
movn v1,a0,v0
or v0,v1,zero
sh v0,0x10(s0)
li v1,0x1
lw v0,0x24(s1)
or a0,s1,zero
lw t9,-0x5770(gp)
lw v0,0x4(v0)
lw v0,0x8(v0)
sw v1,0x14(s0)
bal 0x001a42b8
_sh v0,0x12(s0)
lw gp,0x10(sp)
sw v1,0x1c(s0)
sw v0,0x18(s0)
lw v0,0x2c(s1)
beq v0,zero,0x001a4c10
_or v1,zero,zero
lw v1,0x20(v0)
ext v1,v1,0x1d,0x1
beq v1,zero,0x001a4c58
_lw a2,-0x7e1c(gp)
lw v1,0x1c(v0)
lw v0,0x18(v0)
sw v1,0x24(s0)
sw v0,0x20(s0)
lw v1,0x30(s1)
lw v0,0x20(v1)
ext v0,v0,0x1d,0x1
beq v0,zero,0x001a4c58
_lw a2,-0x7e1c(gp)
lw v0,0x18(v1)
lw v1,0x1c(v1)
sw v0,0x28(s0)
sw v1,0x2c(s0)
li v1,0x40
lw v0,0x24(s1)
lw v0,0x8(v0)
sh v1,0x34(s0)
sw v0,0x30(s0)
lw v0,0x2c(s1)
beq v0,zero,0x001a4c20
_li v0,0x38
sh v0,0x36(s0)
lw v1,0x2c(s1)
lw v0,0x20(v1)
ext v0,v0,0x1e,0x1
beq v0,zero,0x001a4c70
_lw t9,-0x7208(gp)
li a3,0x38
lw a0,0x10(v1)
or a2,zero,zero
jalr t9
_lw a1,0x14(v1)
lui v0,0x1
ori a0,zero,0xffff
lw gp,0x10(sp)
sltu v0,v1,v0
movn a0,v1,v0
sh a0,0x38(s0)
li v0,0x40
sh v0,0x3a(s0)
lw v0,0x30(s1)
lw v1,0x20(v0)
ext v1,v1,0x1e,0x1
beq v1,zero,0x001a4c74
_lw a2,-0x7e1c(gp)
lw a1,0x10(v0)
lw a0,0x14(v0)
or v1,a1,zero
bgez a1,0x001a4b28
_or v0,a0,zero
addiu v0,a0,0x3f
sltu v1,v0,a0
addu v1,v1,a1
sll v1,v1,0x1a
lw s3,-0x72cc(gp)
srl v0,v0,0x6
or v0,v1,v0
ori v1,zero,0xff00
sltu v1,v0,v1
movz v0,s2,v1
sh v0,0x3c(s0)
lw a0,0x34(s1)
lw v0,0x0(a0)
lw t9,0x2c(v0)
bne t9,s3,0x001a4c34
_li v1,-0x1
lw v0,0x64(a0)
beq v0,v1,0x001a4c8c
_lw a2,-0x7e1c(gp)
ori v1,zero,0xff00
sltu v0,v0,v1
beq v0,zero,0x001a4bd8
_li v0,-0x1
lw a0,0x34(s1)
lw v0,0x0(a0)
lw t9,0x2c(v0)
bne t9,s3,0x001a4c44
_li v1,-0x1
lw v0,0x64(a0)
beq v0,v1,0x001a4c8c
_lw a2,-0x7e1c(gp)
sh v0,0x3e(s0)
or a1,s0,zero
lw v0,0x24(s1)
li a2,0x40
lw ra,0x3c(sp)
lw s3,0x38(sp)
or a0,v0,zero
lw s2,0x34(sp)
lw v0,0x0(v0)
lw s1,0x30(sp)
lw s0,0x2c(sp)
lw t9,0x20(v0)
jr t9
_addiu sp,sp,0x40
b 0x001a4a04
_li v0,0x1
or a1,s0,zero
sh v0,0x3e(s0)
li a2,0x40
lw v0,0x24(s1)
lw ra,0x3c(sp)
lw s3,0x38(sp)
or a0,v0,zero
lw s2,0x34(sp)
lw v0,0x0(v0)
lw s1,0x30(sp)
lw s0,0x2c(sp)
lw t9,0x20(v0)
jr t9
_addiu sp,sp,0x40
or v0,zero,zero
sw v1,0x24(s0)
b 0x001a4a64
_sw v0,0x20(s0)
sh zero,0x36(s0)
b 0x001a4aec
_sh zero,0x38(s0)
b 0x001a4a04
_li v0,0x3
jalr t9
_nop
b 0x001a4b68
_lw gp,0x10(sp)
jalr t9
_nop
b 0x001a4b98
_lw gp,0x10(sp)
lw a2,-0x7e1c(gp)
li a1,0xe3
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x7818
jalr t9
_addiu a0,a0,-0x4fe0
lw a2,-0x7e1c(gp)
li a1,0xcf
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x7894
jalr t9
_addiu a0,a0,-0x4fe0
li a1,0x1043
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x7868
jalr t9
_addiu a0,a0,-0x4fe0
li a1,0x5c
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x78cc
jalr t9
_addiu a0,a0,-0x5cec
bne v0,zero,0x001a4cd8
_lw t9,-0x5b18(gp)
lw v0,0xc(a1)
sltiu v0,v0,0x40
beq v0,zero,0x001a496c
_li v0,0x202
lw t9,-0x5b18(gp)
addiu t9,t9,0x2b60
jalr t9
_nop
lw a2,-0x7e1c(gp)
li a1,0x1ff
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x769c
jalr t9
_addiu a0,a0,0x59f0
(translation_unit "void __thiscall\ngold::Output_file_header::do_sized_write<64,true>(Output_file_header *this,Output_file *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  undefined2 uVar7;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  uint extraout_v1;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int *piVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int *piVar15;\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  Output_file_header *unaff_s1;\n  uint unaff_s2;\n  undefined4 *puVar27;\n  code *pcVar28;\n  code *pcVar29;\n  undefined8 uVar30;\n  \n  if (-1 < *(int *)(this + 0x20) << 2) goto LAB_001a4c58;\n  unaff_s2 = *(uint *)(this + 0x1c);\n  if (*(int *)(this + 0x18) == 0 && unaff_s2 == 0) {\n    iVar2 = *(int *)(param_1 + 8);\n    if (iVar2 < 1) goto LAB_001a4cbc;\n    do {\n      puVar26 = *(undefined4 **)(param_1 + 0x10);\n      *puVar26 = 0x7f454c46;\n      puVar17 = PTR_parameters_00432be0;\n      puVar26[1] = 0x2020100;\n      puVar26[2] = 0;\n      puVar26[3] = 0;\n      iVar2 = *(int *)(*(int *)puVar17 + 8);\n      puVar17 = PTR_s_alize_xindex_004323b4;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }\n        *(undefined2 *)(puVar26 + 4) = uVar7;\n        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);\n        puVar26[5] = 1;\n        *(short *)((int)puVar26 + 0x12) = (short)uVar3;\n        uVar30 = entry<64>(this);\n        *(undefined8 *)(puVar26 + 6) = uVar30;\n        iVar2 = *(int *)(this + 0x2c);\n        unaff_s1 = this;\n        if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }\n        puVar17 = puVar17 + 0x7868;\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);\n      }\n      param_1 = (Output_file *)&DAT_0000005c;\n      iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc);\nLAB_001a4cbc:\n    } while ((iVar2 == 0) && (0x3f < *(uint *)(param_1 + 0xc)));\n    (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n  }\n  piVar15 = (int *)&DAT_000001ff;\n  piVar11 = (int *)(PTR_s_alize_xindex_004323b4 + 0x59f0);\n  puVar17 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar11,0x1ff,PTR_s_alize_xindex_004323b4 + 0x769c);\n  uVar4 = piVar11[3] + 5;\n  if (uVar4 < 5) {\n                    \n                    \n    (*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0))();\n    return;\n  }\n  if (*(int *)(*piVar11 + 0x20) < 0) {\n    uVar4 = piVar11[3] + *(int *)(*piVar11 + 0xc);\n    uVar10 = piVar11[2];\n    piVar15[1] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n    *piVar15 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }\n  iVar2 = *(int *)(puVar17 + 0x28d6b4) + 0x7850;\n  (**(code **)(puVar17 + 0x28d6c4))(*(int *)(puVar17 + 0x28d6b4) + -0x4fe0,0xc5,iVar2);\n  piVar15 = (int *)&DAT_00000069;\n  pcVar28 = *(code **)(puVar17 + 0x28d6c4);\n  piVar11 = (int *)(*(int *)(puVar17 + 0x28d6b4) + -0x5cec);\n  (*pcVar28)(piVar11,0x69,iVar2 + 0x78f8);\n  uVar4 = piVar11[3] + 5;\n  if (uVar4 < 5) {\n                    \n                    \n    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280))();\n    return;\n  }\n  if (*(int *)(*piVar11 + 0x20) < 0) {\n    iVar2 = piVar11[2];\n    piVar15[1] = piVar11[3] + *(int *)(*piVar11 + 0xc);\n    *piVar15 = iVar2;\n    return;\n  }\n  iVar2 = *(int *)(pcVar28 + 0x28d464) + 0x7850;\n  (**(code **)(pcVar28 + 0x28d474))(*(int *)(pcVar28 + 0x28d464) + -0x4fe0,0xc5,iVar2);\n  piVar15 = (int *)&DAT_00000069;\n  pcVar29 = *(code **)(pcVar28 + 0x28d474);\n  piVar11 = (int *)(*(int *)(pcVar28 + 0x28d464) + -0x5cec);\n  (*pcVar29)(piVar11,0x69,iVar2 + 0x78f8);\n  uVar4 = piVar11[3];\n  if (uVar4 + 5 < 5) {\n                    \n                    \n    (*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090))();\n    return;\n  }\n  iVar2 = *piVar11;\n  if (*(int *)(iVar2 + 0x20) < 0) {\n    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);\n    uVar4 = (uint)(uVar10 < uVar4) + *(int *)(iVar2 + 8);\n    uVar12 = piVar11[2];\n    piVar15[1] = 0;\n    piVar15[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n    piVar15[2] = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    *piVar15 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n    return;\n  }\n  iVar2 = *(int *)(pcVar29 + 0x28d274) + 0x7850;\n  (**(code **)(pcVar29 + 0x28d284))(*(int *)(pcVar29 + 0x28d274) + -0x4fe0,0xc5,iVar2);\n  puVar26 = (undefined4 *)&DAT_00000069;\n  pcVar28 = *(code **)(pcVar29 + 0x28d284);\n  piVar11 = (int *)(*(int *)(pcVar29 + 0x28d274) + -0x5cec);\n  (*pcVar28)(piVar11,0x69,iVar2 + 0x78f8);\n  uVar4 = piVar11[3];\n  if (uVar4 + 5 < 5) {\n                    \n                    \n    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8))();\n    return;\n  }\n  iVar2 = *piVar11;\n  if (*(int *)(iVar2 + 0x20) < 0) {\n    iVar14 = *(int *)(iVar2 + 8);\n    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);\n    iVar2 = piVar11[2];\n    *puVar26 = 0;\n    puVar26[2] = (uint)(uVar10 < uVar4) + iVar14;\n    puVar26[1] = iVar2;\n    puVar26[3] = uVar10;\n    return;\n  }\n  iVar2 = *(int *)(pcVar28 + 0x28d0bc) + 0x7850;\n  (**(code **)(pcVar28 + 0x28d0cc))(*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0,0xc5,iVar2);\n  uVar4 = 0x69;\n  pcVar29 = *(code **)(pcVar28 + 0x28d0cc);\n  piVar11 = (int *)(*(int *)(pcVar28 + 0x28d0bc) + -0x5cec);\n  (*pcVar29)(piVar11,0x69,iVar2 + 0x78f8);\n  if (uVar4 == 0) {\n    return;\n  }\n  puVar8 = (undefined4 *)piVar11[1];\n  puVar18 = (undefined4 *)&DAT_aaaaaaab;\n  puVar26 = puVar8;\n  uVar10 = uVar4;\n  if (uVar4 <= (uint)((piVar11[2] - (int)puVar8 >> 3) * -0x55555555)) {\n    do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar10 != 0);\n    piVar11[1] = (int)(puVar8 + uVar4 * 6);\n    return;\n  }\n  iVar2 = *piVar11;\n  puVar26 = (undefined4 *)((int)puVar8 - iVar2 >> 3);\n  uVar10 = (int)puVar26 * -0x55555555;\n  if (uVar4 <= (int)puVar26 * 0x55555555 + 0xaaaaaaaU) {\n    uVar12 = uVar10;\n    if (uVar10 <= uVar4) {\n      uVar12 = uVar4;\n    }\n    uVar12 = uVar12 + uVar10;\n    iVar14 = -0x10;\n    if (uVar10 <= uVar12) {\n      if (0xaaaaaaa < uVar12) {\n        uVar12 = 0xaaaaaaa;\n      }\n      iVar14 = uVar12 * 0x18;\n    }\n    puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar14);\n    puVar26 = (undefined4 *)((int)puVar18 + ((int)puVar8 - iVar2));\n    uVar12 = uVar4;\n    do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar12 = uVar12 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar12 != 0);\n    puVar24 = (undefined4 *)piVar11[1];\n    puVar13 = (undefined4 *)*piVar11;\n    puVar8 = puVar18;\n    for (puVar26 = puVar13; puVar26 != puVar24; puVar26 = puVar26 + 6) {\n      uVar22 = puVar26[1];\n      uVar21 = puVar26[2];\n      uVar20 = puVar26[3];\n      uVar19 = puVar26[4];\n      uVar3 = puVar26[5];\n      *puVar8 = *puVar26;\n      puVar8[1] = uVar22;\n      puVar8[2] = uVar21;\n      puVar8[3] = uVar20;\n      puVar8[4] = uVar19;\n      puVar8[5] = uVar3;\n      puVar8 = puVar8 + 6;\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      (**(code **)(pcVar29 + 0x28cd40))();\n    }\n    *piVar11 = (int)puVar18;\n    piVar11[2] = (int)puVar18 + iVar14;\n    piVar11[1] = (int)(puVar18 + (uVar4 + uVar10) * 6);\n    return;\n  }\n  pcVar28 = *(code **)(pcVar29 + 0x28cf34);\n  puVar8 = (undefined4 *)(*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c);\n  (*pcVar28)();\n  puVar24 = (undefined4 *)puVar8[1];\n  puVar13 = (undefined4 *)*puVar8;\n  iVar2 = (int)puVar24 - (int)puVar13 >> 3;\n  uVar4 = iVar2 * -0x49249249;\n  if (uVar4 == 0) {\n    uVar10 = 1;\nLAB_001a5b4c:\n    iVar2 = uVar10 * 0x38;\n  }\n  else {\n    uVar10 = iVar2 * 0x6db6db6e;\n    if (uVar10 < uVar4) {\n      iVar2 = -0x20;\n    }\n    else {\n      iVar2 = -0x20;\n      if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }\n  puVar5 = (undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar2);\n  iVar2 = (int)puVar5 + iVar2;\n  puVar27 = puVar5 + 0xe;\nLAB_001a57f4:\n  puVar6 = (undefined4 *)((int)puVar5 + ((int)puVar26 - (int)puVar13));\n  uVar23 = puVar18[1];\n  puVar9 = puVar18 + 9;\n  uVar22 = puVar18[2];\n  uVar21 = puVar18[3];\n  uVar20 = puVar18[4];\n  uVar19 = puVar18[5];\n  uVar3 = puVar18[6];\n  puVar16 = (undefined4 *)puVar18[7];\n  *puVar6 = *puVar18;\n  puVar6[1] = uVar23;\n  puVar6[2] = uVar22;\n  puVar6[3] = uVar21;\n  puVar6[4] = uVar20;\n  puVar6[5] = uVar19;\n  puVar6[6] = uVar3;\n  puVar6[7] = puVar6 + 9;\n  if (puVar16 == puVar9) {\n    uVar20 = puVar18[10];\n    uVar19 = puVar18[0xb];\n    uVar3 = puVar18[0xc];\n    puVar6[9] = *puVar9;\n    puVar6[10] = uVar20;\n    puVar6[0xb] = uVar19;\n    puVar6[0xc] = uVar3;\n  }\n  else {\n    uVar3 = puVar18[9];\n    puVar6[7] = puVar16;\n    puVar6[9] = uVar3;\n  }\n  uVar3 = puVar18[8];\n  puVar18[7] = puVar9;\n  puVar18[8] = 0;\n  puVar6[8] = uVar3;\n  *(undefined1 *)(puVar18 + 9) = 0;\n  if (puVar13 != puVar26) {\n    puVar27 = puVar13 + 9;\n    puVar18 = puVar5;\n    while( true ) {\n      uVar3 = puVar27[-4];\n      uVar22 = puVar27[-8];\n      uVar21 = puVar27[-7];\n      uVar20 = puVar27[-6];\n      uVar19 = puVar27[-5];\n      *puVar18 = puVar27[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar3;\n      uVar3 = puVar27[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar3;\n      if ((undefined4 *)puVar27[-2] == puVar27) {\n        uVar20 = puVar27[1];\n        uVar19 = puVar27[2];\n        uVar3 = puVar27[3];\n        puVar18[9] = *puVar27;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar3;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      if (puVar26 == puVar27 + 5) break;\n      puVar27 = puVar27 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }\n    puVar27 = puVar5 + ((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }\n  puVar6 = puVar26 + 9;\n  puVar9 = puVar27;\n  puVar18 = puVar13;\n  if (puVar24 != puVar26) {\n    do {\n      while( true ) {\n        uVar25 = puVar6[-9];\n        uVar23 = puVar6[-8];\n        uVar22 = puVar6[-7];\n        uVar21 = puVar6[-6];\n        uVar20 = puVar6[-5];\n        uVar19 = puVar6[-4];\n        uVar3 = puVar6[-3];\n        puVar16 = (undefined4 *)puVar6[-2];\n        puVar9[7] = puVar9 + 9;\n        *puVar9 = uVar25;\n        puVar9[1] = uVar23;\n        puVar9[2] = uVar22;\n        puVar9[3] = uVar21;\n        puVar9[4] = uVar20;\n        puVar9[5] = uVar19;\n        puVar9[6] = uVar3;\n        if (puVar6 != puVar16) break;\n        uVar20 = puVar6[1];\n        uVar19 = puVar6[2];\n        uVar3 = puVar6[3];\n        puVar9[9] = *puVar6;\n        puVar9[10] = uVar20;\n        puVar9[0xb] = uVar19;\n        puVar9[0xc] = uVar3;\n        puVar16 = puVar6 + 5;\n        puVar6[-2] = puVar6;\n        *(undefined1 *)puVar6 = 0;\n        uVar3 = puVar6[-1];\n        puVar6[-1] = 0;\n        puVar9[8] = uVar3;\n        puVar6 = puVar6 + 0xe;\n        puVar9 = puVar9 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar3 = *puVar6;\n      uVar19 = puVar6[-1];\n      puVar9[7] = puVar16;\n      puVar9[9] = uVar3;\n      puVar16 = puVar6 + 5;\n      puVar6[-2] = puVar6;\n      puVar6[-1] = 0;\n      *(undefined1 *)puVar6 = 0;\n      puVar9[8] = uVar19;\n      puVar6 = puVar6 + 0xe;\n      puVar9 = puVar9 + 0xe;\n    } while (puVar24 != puVar16);\nLAB_001a5a78:\n    puVar27 = puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }\n  while (puVar18 != puVar24) {\n    puVar26 = puVar18 + 7;\n    puVar6 = puVar18 + 9;\n    puVar18 = puVar18 + 0xe;\n    if ((undefined4 *)*puVar26 != puVar6) {\n      (**(code **)(pcVar28 + 0x28cb34))();\n    }\n  }\n  if (puVar13 != (undefined4 *)0x0) {\n    (**(code **)(pcVar28 + 0x28cb34))(puVar13);\n  }\n  *puVar8 = puVar5;\n  puVar8[1] = puVar27;\n  puVar8[2] = iVar2;\n  return;\n}\n\n" (declaration "void __thiscall\ngold::Output_file_header::do_sized_write<64,true>(Output_file_header *this,Output_file *param_1)\n\n{\n  undefined *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_file_header::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "true>(Output_file_header" identifier > ( identifier) (pointer_declarator "*this" * identifier) , (ERROR "Output_file *param_1)\n\n{\n  undefined" identifier (pointer_declarator "*param_1" * identifier) ) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined2 uVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * 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 "Output_file_header *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "uint unaff_s2;" type_identifier identifier ;) (declaration "undefined4 *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) ;) (declaration "undefined8 uVar30;" type_identifier identifier ;) (if_statement "if (-1 < *(int *)(this + 0x20) << 2) goto LAB_001a4c58;" if (parenthesized_expression "(-1 < *(int *)(this + 0x20) << 2)" ( (binary_expression "-1 < *(int *)(this + 0x20) << 2" number_literal < (binary_expression "*(int *)(this + 0x20) << 2" (pointer_expression "*(int *)(this + 0x20)" * (cast_expression "(int *)(this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) << number_literal)) )) (goto_statement "goto LAB_001a4c58;" goto statement_identifier ;)) (expression_statement "unaff_s2 = *(uint *)(this + 0x1c);" (assignment_expression "unaff_s2 = *(uint *)(this + 0x1c)" identifier = (pointer_expression "*(uint *)(this + 0x1c)" * (cast_expression "(uint *)(this + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x1c)" ( (binary_expression "this + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(this + 0x18) == 0 && unaff_s2 == 0) {\n    iVar2 = *(int *)(param_1 + 8);\n    if (iVar2 < 1) goto LAB_001a4cbc;\n    do {\n      puVar26 = *(undefined4 **)(param_1 + 0x10);\n      *puVar26 = 0x7f454c46;\n      puVar17 = PTR_parameters_00432be0;\n      puVar26[1] = 0x2020100;\n      puVar26[2] = 0;\n      puVar26[3] = 0;\n      iVar2 = *(int *)(*(int *)puVar17 + 8);\n      puVar17 = PTR_s_alize_xindex_004323b4;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }\n        *(undefined2 *)(puVar26 + 4) = uVar7;\n        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);\n        puVar26[5] = 1;\n        *(short *)((int)puVar26 + 0x12) = (short)uVar3;\n        uVar30 = entry<64>(this);\n        *(undefined8 *)(puVar26 + 6) = uVar30;\n        iVar2 = *(int *)(this + 0x2c);\n        unaff_s1 = this;\n        if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }\n        puVar17 = puVar17 + 0x7868;\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);\n      }\n      param_1 = (Output_file *)&DAT_0000005c;\n      iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc);\nLAB_001a4cbc:\n    } while ((iVar2 == 0) && (0x3f < *(uint *)(param_1 + 0xc)));\n    (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n  }" if (parenthesized_expression "(*(int *)(this + 0x18) == 0 && unaff_s2 == 0)" ( (binary_expression "*(int *)(this + 0x18) == 0 && unaff_s2 == 0" (binary_expression "*(int *)(this + 0x18) == 0" (pointer_expression "*(int *)(this + 0x18)" * (cast_expression "(int *)(this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) == number_literal) && (binary_expression "unaff_s2 == 0" identifier == number_literal)) )) (compound_statement "{\n    iVar2 = *(int *)(param_1 + 8);\n    if (iVar2 < 1) goto LAB_001a4cbc;\n    do {\n      puVar26 = *(undefined4 **)(param_1 + 0x10);\n      *puVar26 = 0x7f454c46;\n      puVar17 = PTR_parameters_00432be0;\n      puVar26[1] = 0x2020100;\n      puVar26[2] = 0;\n      puVar26[3] = 0;\n      iVar2 = *(int *)(*(int *)puVar17 + 8);\n      puVar17 = PTR_s_alize_xindex_004323b4;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }\n        *(undefined2 *)(puVar26 + 4) = uVar7;\n        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);\n        puVar26[5] = 1;\n        *(short *)((int)puVar26 + 0x12) = (short)uVar3;\n        uVar30 = entry<64>(this);\n        *(undefined8 *)(puVar26 + 6) = uVar30;\n        iVar2 = *(int *)(this + 0x2c);\n        unaff_s1 = this;\n        if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }\n        puVar17 = puVar17 + 0x7868;\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);\n      }\n      param_1 = (Output_file *)&DAT_0000005c;\n      iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc);\nLAB_001a4cbc:\n    } while ((iVar2 == 0) && (0x3f < *(uint *)(param_1 + 0xc)));\n    (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n  }" { (expression_statement "iVar2 = *(int *)(param_1 + 8);" (assignment_expression "iVar2 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 < 1) goto LAB_001a4cbc;" if (parenthesized_expression "(iVar2 < 1)" ( (binary_expression "iVar2 < 1" identifier < number_literal) )) (goto_statement "goto LAB_001a4cbc;" goto statement_identifier ;)) (do_statement "do {\n      puVar26 = *(undefined4 **)(param_1 + 0x10);\n      *puVar26 = 0x7f454c46;\n      puVar17 = PTR_parameters_00432be0;\n      puVar26[1] = 0x2020100;\n      puVar26[2] = 0;\n      puVar26[3] = 0;\n      iVar2 = *(int *)(*(int *)puVar17 + 8);\n      puVar17 = PTR_s_alize_xindex_004323b4;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }\n        *(undefined2 *)(puVar26 + 4) = uVar7;\n        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);\n        puVar26[5] = 1;\n        *(short *)((int)puVar26 + 0x12) = (short)uVar3;\n        uVar30 = entry<64>(this);\n        *(undefined8 *)(puVar26 + 6) = uVar30;\n        iVar2 = *(int *)(this + 0x2c);\n        unaff_s1 = this;\n        if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }\n        puVar17 = puVar17 + 0x7868;\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);\n      }\n      param_1 = (Output_file *)&DAT_0000005c;\n      iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc);\nLAB_001a4cbc:\n    } while ((iVar2 == 0) && (0x3f < *(uint *)(param_1 + 0xc)));" do (compound_statement "{\n      puVar26 = *(undefined4 **)(param_1 + 0x10);\n      *puVar26 = 0x7f454c46;\n      puVar17 = PTR_parameters_00432be0;\n      puVar26[1] = 0x2020100;\n      puVar26[2] = 0;\n      puVar26[3] = 0;\n      iVar2 = *(int *)(*(int *)puVar17 + 8);\n      puVar17 = PTR_s_alize_xindex_004323b4;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }\n        *(undefined2 *)(puVar26 + 4) = uVar7;\n        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);\n        puVar26[5] = 1;\n        *(short *)((int)puVar26 + 0x12) = (short)uVar3;\n        uVar30 = entry<64>(this);\n        *(undefined8 *)(puVar26 + 6) = uVar30;\n        iVar2 = *(int *)(this + 0x2c);\n        unaff_s1 = this;\n        if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }\n        puVar17 = puVar17 + 0x7868;\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);\n      }\n      param_1 = (Output_file *)&DAT_0000005c;\n      iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc);\nLAB_001a4cbc:\n    }" { (expression_statement "puVar26 = *(undefined4 **)(param_1 + 0x10);" (assignment_expression "puVar26 = *(undefined4 **)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x10)" * (cast_expression "(undefined4 **)(param_1 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*puVar26 = 0x7f454c46;" (assignment_expression "*puVar26 = 0x7f454c46" (pointer_expression "*puVar26" * identifier) = number_literal) ;) (expression_statement "puVar17 = PTR_parameters_00432be0;" (assignment_expression "puVar17 = PTR_parameters_00432be0" identifier = identifier) ;) (expression_statement "puVar26[1] = 0x2020100;" (assignment_expression "puVar26[1] = 0x2020100" (subscript_expression "puVar26[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar26[2] = 0;" (assignment_expression "puVar26[2] = 0" (subscript_expression "puVar26[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar26[3] = 0;" (assignment_expression "puVar26[3] = 0" (subscript_expression "puVar26[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = *(int *)(*(int *)puVar17 + 8);" (assignment_expression "iVar2 = *(int *)(*(int *)puVar17 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar17 + 8)" * (cast_expression "(int *)(*(int *)puVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar17 + 8)" ( (binary_expression "*(int *)puVar17 + 8" (pointer_expression "*(int *)puVar17" * (cast_expression "(int *)puVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "puVar17 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar17 = PTR_s_alize_xindex_004323b4" identifier = identifier) ;) (if_statement "if (iVar2 != 0) {\n        if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }\n        *(undefined2 *)(puVar26 + 4) = uVar7;\n        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);\n        puVar26[5] = 1;\n        *(short *)((int)puVar26 + 0x12) = (short)uVar3;\n        uVar30 = entry<64>(this);\n        *(undefined8 *)(puVar26 + 6) = uVar30;\n        iVar2 = *(int *)(this + 0x2c);\n        unaff_s1 = this;\n        if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }\n        puVar17 = puVar17 + 0x7868;\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }\n        *(undefined2 *)(puVar26 + 4) = uVar7;\n        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);\n        puVar26[5] = 1;\n        *(short *)((int)puVar26 + 0x12) = (short)uVar3;\n        uVar30 = entry<64>(this);\n        *(undefined8 *)(puVar26 + 6) = uVar30;\n        iVar2 = *(int *)(this + 0x2c);\n        unaff_s1 = this;\n        if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }\n        puVar17 = puVar17 + 0x7868;\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);\n      }" { (if_statement "if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }" if (parenthesized_expression "(*(char *)(iVar2 + 0x3195) == '\0')" ( (binary_expression "*(char *)(iVar2 + 0x3195) == '\0'" (pointer_expression "*(char *)(iVar2 + 0x3195)" * (cast_expression "(char *)(iVar2 + 0x3195)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3195)" ( (binary_expression "iVar2 + 0x3195" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }" { (if_statement "if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }" if (parenthesized_expression "(*(char *)(iVar2 + 0x1a29) == '\0')" ( (binary_expression "*(char *)(iVar2 + 0x1a29) == '\0'" (pointer_expression "*(char *)(iVar2 + 0x1a29)" * (cast_expression "(char *)(iVar2 + 0x1a29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1a29)" ( (binary_expression "iVar2 + 0x1a29" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (if_statement "if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }" if (parenthesized_expression "(*(char *)(iVar2 + 0x2939) != '\0')" ( (binary_expression "*(char *)(iVar2 + 0x2939) != '\0'" (pointer_expression "*(char *)(iVar2 + 0x2939)" * (cast_expression "(char *)(iVar2 + 0x2939)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2939)" ( (binary_expression "iVar2 + 0x2939" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar7 = 3;\n            }" { (expression_statement "uVar7 = 3;" (assignment_expression "uVar7 = 3" identifier = number_literal) ;) })) }) (else_clause "else {\n            uVar7 = 3;\n          }" else (compound_statement "{\n            uVar7 = 3;\n          }" { (expression_statement "uVar7 = 3;" (assignment_expression "uVar7 = 3" identifier = number_literal) ;) }))) }) (else_clause "else {\n          uVar7 = 1;\n        }" else (compound_statement "{\n          uVar7 = 1;\n        }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))) (expression_statement "*(undefined2 *)(puVar26 + 4) = uVar7;" (assignment_expression "*(undefined2 *)(puVar26 + 4) = uVar7" (pointer_expression "*(undefined2 *)(puVar26 + 4)" * (cast_expression "(undefined2 *)(puVar26 + 4)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 4)" ( (binary_expression "puVar26 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8)" * (cast_expression "(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(this + 0x24) + 4) + 8)" ( (binary_expression "*(int *)(*(int *)(this + 0x24) + 4) + 8" (pointer_expression "*(int *)(*(int *)(this + 0x24) + 4)" * (cast_expression "(int *)(*(int *)(this + 0x24) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 0x24) + 4)" ( (binary_expression "*(int *)(this + 0x24) + 4" (pointer_expression "*(int *)(this + 0x24)" * (cast_expression "(int *)(this + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar26[5] = 1;" (assignment_expression "puVar26[5] = 1" (subscript_expression "puVar26[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(short *)((int)puVar26 + 0x12) = (short)uVar3;" (assignment_expression "*(short *)((int)puVar26 + 0x12) = (short)uVar3" (pointer_expression "*(short *)((int)puVar26 + 0x12)" * (cast_expression "(short *)((int)puVar26 + 0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x12)" ( (binary_expression "(int)puVar26 + 0x12" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(short)uVar3" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "uVar30 = entry<64>(this);" (assignment_expression "uVar30 = entry<64>(this)" identifier = (binary_expression "entry<64>(this)" (binary_expression "entry<64" identifier < number_literal) > (parenthesized_expression "(this)" ( identifier )))) ;) (expression_statement "*(undefined8 *)(puVar26 + 6) = uVar30;" (assignment_expression "*(undefined8 *)(puVar26 + 6) = uVar30" (pointer_expression "*(undefined8 *)(puVar26 + 6)" * (cast_expression "(undefined8 *)(puVar26 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 6)" ( (binary_expression "puVar26 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = *(int *)(this + 0x2c);" (assignment_expression "iVar2 = *(int *)(this + 0x2c)" identifier = (pointer_expression "*(int *)(this + 0x2c)" * (cast_expression "(int *)(this + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x2c)" ( (binary_expression "this + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "unaff_s1 = this;" (assignment_expression "unaff_s1 = this" identifier = identifier) ;) (if_statement "if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }" { (expression_statement "puVar26[9] = 0;" (assignment_expression "puVar26[9] = 0" (subscript_expression "puVar26[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar26[8] = 0;" (assignment_expression "puVar26[8] = 0" (subscript_expression "puVar26[8]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);" statement_identifier : (expression_statement "iVar2 = *(int *)(this + 0x30);" (assignment_expression "iVar2 = *(int *)(this + 0x30)" identifier = (pointer_expression "*(int *)(this + 0x30)" * (cast_expression "(int *)(this + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) ))))) ;)) (if_statement "if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;" if (parenthesized_expression "(-1 < *(int *)(iVar2 + 0x20) << 2)" ( (binary_expression "-1 < *(int *)(iVar2 + 0x20) << 2" number_literal < (binary_expression "*(int *)(iVar2 + 0x20) << 2" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) << number_literal)) )) (goto_statement "goto LAB_001a4c58;" goto statement_identifier ;)) (expression_statement "uVar3 = *(undefined4 *)(iVar2 + 0x1c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar2 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x1c)" * (cast_expression "(undefined4 *)(iVar2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "puVar26[10] = *(undefined4 *)(iVar2 + 0x18);" (assignment_expression "puVar26[10] = *(undefined4 *)(iVar2 + 0x18)" (subscript_expression "puVar26[10]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(iVar2 + 0x18)" * (cast_expression "(undefined4 *)(iVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar26[0xb] = uVar3;" (assignment_expression "puVar26[0xb] = uVar3" (subscript_expression "puVar26[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(this + 0x24) + 8)" * (cast_expression "(undefined4 *)(*(int *)(this + 0x24) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 0x24) + 8)" ( (binary_expression "*(int *)(this + 0x24) + 8" (pointer_expression "*(int *)(this + 0x24)" * (cast_expression "(int *)(this + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined2 *)(puVar26 + 0xd) = 0x40;" (assignment_expression "*(undefined2 *)(puVar26 + 0xd) = 0x40" (pointer_expression "*(undefined2 *)(puVar26 + 0xd)" * (cast_expression "(undefined2 *)(puVar26 + 0xd)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xd)" ( (binary_expression "puVar26 + 0xd" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar26[0xc] = uVar3;" (assignment_expression "puVar26[0xc] = uVar3" (subscript_expression "puVar26[0xc]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }" if (parenthesized_expression "(*(int *)(this + 0x2c) != 0)" ( (binary_expression "*(int *)(this + 0x2c) != 0" (pointer_expression "*(int *)(this + 0x2c)" * (cast_expression "(int *)(this + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x2c)" ( (binary_expression "this + 0x2c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }" { (expression_statement "*(undefined2 *)((int)puVar26 + 0x36) = 0x38;" (assignment_expression "*(undefined2 *)((int)puVar26 + 0x36) = 0x38" (pointer_expression "*(undefined2 *)((int)puVar26 + 0x36)" * (cast_expression "(undefined2 *)((int)puVar26 + 0x36)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x36)" ( (binary_expression "(int)puVar26 + 0x36" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar2 = *(int *)(this + 0x2c);" (assignment_expression "iVar2 = *(int *)(this + 0x2c)" identifier = (pointer_expression "*(int *)(this + 0x2c)" * (cast_expression "(int *)(this + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x2c)" ( (binary_expression "this + 0x2c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x20) << 1 < 0)" ( (binary_expression "*(int *)(iVar2 + 0x20) << 1 < 0" (binary_expression "*(int *)(iVar2 + 0x20) << 1" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }" { (expression_statement "(*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);" (call_expression "(*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38)" (parenthesized_expression "(*(code *)PTR_FUN_00432fc8)" ( (pointer_expression "*(code *)PTR_FUN_00432fc8" * (cast_expression "(code *)PTR_FUN_00432fc8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38)" ( (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar2 + 0x14)" * (cast_expression "(undefined4 *)(iVar2 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (expression_statement "uVar7 = 0xffff;" (assignment_expression "uVar7 = 0xffff" identifier = number_literal) ;) (if_statement "if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }" if (parenthesized_expression "(extraout_v1 < 0x10000)" ( (binary_expression "extraout_v1 < 0x10000" identifier < number_literal) )) (compound_statement "{\n                uVar7 = (undefined2)extraout_v1;\n              }" { (expression_statement "uVar7 = (undefined2)extraout_v1;" (assignment_expression "uVar7 = (undefined2)extraout_v1" identifier = (cast_expression "(undefined2)extraout_v1" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) })) (expression_statement "*(undefined2 *)(puVar26 + 0xe) = uVar7;" (assignment_expression "*(undefined2 *)(puVar26 + 0xe) = uVar7" (pointer_expression "*(undefined2 *)(puVar26 + 0xe)" * (cast_expression "(undefined2 *)(puVar26 + 0xe)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xe)" ( (binary_expression "puVar26 + 0xe" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_001a4aec;" goto statement_identifier ;) })) (goto_statement "goto LAB_001a4c74;" goto statement_identifier ;) })) (expression_statement "*(undefined2 *)((int)puVar26 + 0x36) = 0;" (assignment_expression "*(undefined2 *)((int)puVar26 + 0x36) = 0" (pointer_expression "*(undefined2 *)((int)puVar26 + 0x36)" * (cast_expression "(undefined2 *)((int)puVar26 + 0x36)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x36)" ( (binary_expression "(int)puVar26 + 0x36" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar26 + 0xe) = 0;" (assignment_expression "*(undefined2 *)(puVar26 + 0xe) = 0" (pointer_expression "*(undefined2 *)(puVar26 + 0xe)" * (cast_expression "(undefined2 *)(puVar26 + 0xe)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xe)" ( (binary_expression "puVar26 + 0xe" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;" statement_identifier : (expression_statement "*(undefined2 *)((int)puVar26 + 0x3a) = 0x40;" (assignment_expression "*(undefined2 *)((int)puVar26 + 0x3a) = 0x40" (pointer_expression "*(undefined2 *)((int)puVar26 + 0x3a)" * (cast_expression "(undefined2 *)((int)puVar26 + 0x3a)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x3a)" ( (binary_expression "(int)puVar26 + 0x3a" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;)) (expression_statement "puVar1 = PTR_do_out_shndx_00432f04;" (assignment_expression "puVar1 = PTR_do_out_shndx_00432f04" identifier = identifier) ;) (expression_statement "iVar2 = *(int *)(this + 0x30);" (assignment_expression "iVar2 = *(int *)(this + 0x30)" identifier = (pointer_expression "*(int *)(this + 0x30)" * (cast_expression "(int *)(this + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;" if (parenthesized_expression "(-1 < *(int *)(iVar2 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(iVar2 + 0x20) << 1" number_literal < (binary_expression "*(int *)(iVar2 + 0x20) << 1" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) << number_literal)) )) (goto_statement "goto LAB_001a4c74;" goto statement_identifier ;)) (expression_statement "iVar14 = *(int *)(iVar2 + 0x10);" (assignment_expression "iVar14 = *(int *)(iVar2 + 0x10)" identifier = (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(iVar2 + 0x14);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar2 + 0x14)" * (cast_expression "(uint *)(iVar2 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = uVar10;" (assignment_expression "uVar4 = uVar10" identifier = identifier) ;) (if_statement "if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }" if (parenthesized_expression "(iVar14 < 0)" ( (binary_expression "iVar14 < 0" identifier < number_literal) )) (compound_statement "{\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }" { (expression_statement "uVar4 = uVar10 + 0x3f;" (assignment_expression "uVar4 = uVar10 + 0x3f" identifier = (binary_expression "uVar10 + 0x3f" identifier + number_literal)) ;) (expression_statement "iVar14 = (uint)(uVar4 < uVar10) + iVar14;" (assignment_expression "iVar14 = (uint)(uVar4 < uVar10) + iVar14" identifier = (binary_expression "(uint)(uVar4 < uVar10) + iVar14" (call_expression "(uint)(uVar4 < uVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar10)" ( (binary_expression "uVar4 < uVar10" identifier < identifier) ))) + identifier)) ;) })) (expression_statement "uVar4 = iVar14 << 0x1a | uVar4 >> 6;" (assignment_expression "uVar4 = iVar14 << 0x1a | uVar4 >> 6" identifier = (binary_expression "iVar14 << 0x1a | uVar4 >> 6" (binary_expression "iVar14 << 0x1a" identifier << number_literal) | (binary_expression "uVar4 >> 6" identifier >> number_literal))) ;) (if_statement "if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }" if (parenthesized_expression "(0xfeff < uVar4)" ( (binary_expression "0xfeff < uVar4" number_literal < identifier) )) (compound_statement "{\n            uVar4 = unaff_s2;\n          }" { (expression_statement "uVar4 = unaff_s2;" (assignment_expression "uVar4 = unaff_s2" identifier = identifier) ;) })) (expression_statement "*(short *)(puVar26 + 0xf) = (short)uVar4;" (assignment_expression "*(short *)(puVar26 + 0xf) = (short)uVar4" (pointer_expression "*(short *)(puVar26 + 0xf)" * (cast_expression "(short *)(puVar26 + 0xf)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xf)" ( (binary_expression "puVar26 + 0xf" identifier + number_literal) )))) = (cast_expression "(short)uVar4" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);" (assignment_expression "pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c)" identifier = (pointer_expression "*(code **)(**(int **)(this + 0x34) + 0x2c)" * (cast_expression "(code **)(**(int **)(this + 0x34) + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(this + 0x34) + 0x2c)" ( (binary_expression "**(int **)(this + 0x34) + 0x2c" (pointer_expression "**(int **)(this + 0x34)" * (pointer_expression "*(int **)(this + 0x34)" * (cast_expression "(int **)(this + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }" if (parenthesized_expression "(pcVar28 == (code *)puVar1)" ( (binary_expression "pcVar28 == (code *)puVar1" identifier == (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }" { (expression_statement "uVar4 = (*(int **)(this + 0x34))[0x19];" (assignment_expression "uVar4 = (*(int **)(this + 0x34))[0x19]" identifier = (subscript_expression "(*(int **)(this + 0x34))[0x19]" (parenthesized_expression "(*(int **)(this + 0x34))" ( (pointer_expression "*(int **)(this + 0x34)" * (cast_expression "(int **)(this + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) )))) )) [ number_literal ])) ;) (expression_statement "puVar17 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar17 = PTR_s_alize_xindex_004323b4" identifier = identifier) ;) (if_statement "if (uVar4 != 0xffffffff) goto LAB_001a4b68;" if (parenthesized_expression "(uVar4 != 0xffffffff)" ( (binary_expression "uVar4 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_001a4b68;" goto statement_identifier ;)) }) (else_clause "else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }" else (compound_statement "{\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }" { (expression_statement "uVar4 = (*pcVar28)();" (assignment_expression "uVar4 = (*pcVar28)()" identifier = (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }" statement_identifier : (if_statement "if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }" if (parenthesized_expression "(0xfeff < uVar4)" ( (binary_expression "0xfeff < uVar4" number_literal < identifier) )) (compound_statement "{\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }" { (expression_statement "*(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;" (assignment_expression "*(undefined2 *)((int)puVar26 + 0x3e) = 0xffff" (pointer_expression "*(undefined2 *)((int)puVar26 + 0x3e)" * (cast_expression "(undefined2 *)((int)puVar26 + 0x3e)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x3e)" ( (binary_expression "(int)puVar26 + 0x3e" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);" (call_expression "(**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40)" (parenthesized_expression "(**(code **)(**(int **)(this + 0x24) + 0x20))" ( (pointer_expression "**(code **)(**(int **)(this + 0x24) + 0x20)" * (pointer_expression "*(code **)(**(int **)(this + 0x24) + 0x20)" * (cast_expression "(code **)(**(int **)(this + 0x24) + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(this + 0x24) + 0x20)" ( (binary_expression "**(int **)(this + 0x24) + 0x20" (pointer_expression "**(int **)(this + 0x24)" * (pointer_expression "*(int **)(this + 0x24)" * (cast_expression "(int **)(this + 0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(this + 0x24),puVar26,0x40)" ( (pointer_expression "*(int **)(this + 0x24)" * (cast_expression "(int **)(this + 0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) , identifier , number_literal ))) ;) (return_statement "return;" return ;) }))) (expression_statement "pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);" (assignment_expression "pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c)" identifier = (pointer_expression "*(code **)(**(int **)(this + 0x34) + 0x2c)" * (cast_expression "(code **)(**(int **)(this + 0x34) + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(this + 0x34) + 0x2c)" ( (binary_expression "**(int **)(this + 0x34) + 0x2c" (pointer_expression "**(int **)(this + 0x34)" * (pointer_expression "*(int **)(this + 0x34)" * (cast_expression "(int **)(this + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }" if (parenthesized_expression "(pcVar28 != (code *)puVar1)" ( (binary_expression "pcVar28 != (code *)puVar1" identifier != (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }" { (expression_statement "iVar2 = (*pcVar28)();" (assignment_expression "iVar2 = (*pcVar28)()" identifier = (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;" statement_identifier : (expression_statement "*(short *)((int)puVar26 + 0x3e) = (short)iVar2;" (assignment_expression "*(short *)((int)puVar26 + 0x3e) = (short)iVar2" (pointer_expression "*(short *)((int)puVar26 + 0x3e)" * (cast_expression "(short *)((int)puVar26 + 0x3e)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar26 + 0x3e)" ( (binary_expression "(int)puVar26 + 0x3e" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(short)iVar2" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;)) (expression_statement "(**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);" (call_expression "(**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40)" (parenthesized_expression "(**(code **)(**(int **)(this + 0x24) + 0x20))" ( (pointer_expression "**(code **)(**(int **)(this + 0x24) + 0x20)" * (pointer_expression "*(code **)(**(int **)(this + 0x24) + 0x20)" * (cast_expression "(code **)(**(int **)(this + 0x24) + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(this + 0x24) + 0x20)" ( (binary_expression "**(int **)(this + 0x24) + 0x20" (pointer_expression "**(int **)(this + 0x24)" * (pointer_expression "*(int **)(this + 0x24)" * (cast_expression "(int **)(this + 0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(this + 0x24),puVar26,0x40)" ( (pointer_expression "*(int **)(this + 0x24)" * (cast_expression "(int **)(this + 0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) , identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar2 = (*(int **)(this + 0x34))[0x19];" (assignment_expression "iVar2 = (*(int **)(this + 0x34))[0x19]" identifier = (subscript_expression "(*(int **)(this + 0x34))[0x19]" (parenthesized_expression "(*(int **)(this + 0x34))" ( (pointer_expression "*(int **)(this + 0x34)" * (cast_expression "(int **)(this + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) )))) )) [ number_literal ])) ;) (expression_statement "puVar17 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar17 = PTR_s_alize_xindex_004323b4" identifier = identifier) ;) (if_statement "if (iVar2 != -1) goto LAB_001a4b98;" if (parenthesized_expression "(iVar2 != -1)" ( (binary_expression "iVar2 != -1" identifier != number_literal) )) (goto_statement "goto LAB_001a4b98;" goto statement_identifier ;)) }))) }) (else_clause "else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }" else (compound_statement "{\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }" { (if_statement "if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }" if (parenthesized_expression "(*(int *)(iVar2 + 0x20) << 2 < 0)" ( (binary_expression "*(int *)(iVar2 + 0x20) << 2 < 0" (binary_expression "*(int *)(iVar2 + 0x20) << 2" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }" { (expression_statement "uVar3 = *(undefined4 *)(iVar2 + 0x18);" (assignment_expression "uVar3 = *(undefined4 *)(iVar2 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x18)" * (cast_expression "(undefined4 *)(iVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);" (assignment_expression "puVar26[9] = *(undefined4 *)(iVar2 + 0x1c)" (subscript_expression "puVar26[9]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(iVar2 + 0x1c)" * (cast_expression "(undefined4 *)(iVar2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "puVar26[8] = uVar3;" (assignment_expression "puVar26[8] = uVar3" (subscript_expression "puVar26[8]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_001a4a64;" goto statement_identifier ;) })) (labeled_statement "LAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    )" (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,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    )" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7818" identifier + number_literal) ))) ;)) (labeled_statement "LAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;" statement_identifier : (expression_statement "puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;" (assignment_expression "puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894" identifier = (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7894" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,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,0xcf,puVar17)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) , number_literal , identifier ))) ;) (expression_statement "this = unaff_s1;" (assignment_expression "this = unaff_s1" identifier = identifier) ;) }))) (expression_statement "puVar17 = puVar17 + 0x7868;" (assignment_expression "puVar17 = puVar17 + 0x7868" identifier = (binary_expression "puVar17 + 0x7868" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,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,0x1043,puVar17)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) , number_literal , identifier ))) ;) })) (expression_statement "param_1 = (Output_file *)&DAT_0000005c;" (assignment_expression "param_1 = (Output_file *)&DAT_0000005c" identifier = (cast_expression "(Output_file *)&DAT_0000005c" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000005c" & identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc);" (assignment_expression "iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc)" (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 + -0x5cec,0x5c,puVar17 + 0x78cc)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "puVar17 + 0x78cc" identifier + number_literal) )))) ;) (labeled_statement "LAB_001a4cbc:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "((iVar2 == 0) && (0x3f < *(uint *)(param_1 + 0xc)))" ( (binary_expression "(iVar2 == 0) && (0x3f < *(uint *)(param_1 + 0xc))" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(0x3f < *(uint *)(param_1 + 0xc))" ( (binary_expression "0x3f < *(uint *)(param_1 + 0xc)" number_literal < (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ))) )) ;) (expression_statement "(*(code *)(PTR_LAB_004346b8 + 0x2b60))();" (call_expression "(*(code *)(PTR_LAB_004346b8 + 0x2b60))()" (parenthesized_expression "(*(code *)(PTR_LAB_004346b8 + 0x2b60))" ( (pointer_expression "*(code *)(PTR_LAB_004346b8 + 0x2b60)" * (cast_expression "(code *)(PTR_LAB_004346b8 + 0x2b60)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_004346b8 + 0x2b60)" ( (binary_expression "PTR_LAB_004346b8 + 0x2b60" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) })) (expression_statement "piVar15 = (int *)&DAT_000001ff;" (assignment_expression "piVar15 = (int *)&DAT_000001ff" identifier = (cast_expression "(int *)&DAT_000001ff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000001ff" & identifier))) ;) (expression_statement "piVar11 = (int *)(PTR_s_alize_xindex_004323b4 + 0x59f0);" (assignment_expression "piVar11 = (int *)(PTR_s_alize_xindex_004323b4 + 0x59f0)" identifier = (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + 0x59f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + 0x59f0)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + 0x59f0" identifier + number_literal) )))) ;) (expression_statement "puVar17 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar17 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar11,0x1ff,PTR_s_alize_xindex_004323b4 + 0x769c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar11,0x1ff,PTR_s_alize_xindex_004323b4 + 0x769c)" (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 "(piVar11,0x1ff,PTR_s_alize_xindex_004323b4 + 0x769c)" ( identifier , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + 0x769c" identifier + number_literal) ))) ;) (expression_statement "uVar4 = piVar11[3] + 5;" (assignment_expression "uVar4 = piVar11[3] + 5" identifier = (binary_expression "piVar11[3] + 5" (subscript_expression "piVar11[3]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (uVar4 < 5) {\n                    \n                    \n    (*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0))();\n    return;\n  }" if (parenthesized_expression "(uVar4 < 5)" ( (binary_expression "uVar4 < 5" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n    (*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0))();\n    return;\n  }" { (expression_statement "(*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0))();" (call_expression "(*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0))()" (parenthesized_expression "(*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0))" ( (pointer_expression "*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0)" * (cast_expression "(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0)" ( (binary_expression "puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0" (binary_expression "puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4)" * (cast_expression "(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4)" ( (binary_expression "*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4" (binary_expression "*(int *)(puVar17 + 0x28d6b4) + 0x5dbc" (pointer_expression "*(int *)(puVar17 + 0x28d6b4)" * (cast_expression "(int *)(puVar17 + 0x28d6b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x28d6b4)" ( (binary_expression "puVar17 + 0x28d6b4" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar4 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(*piVar11 + 0x20) < 0) {\n    uVar4 = piVar11[3] + *(int *)(*piVar11 + 0xc);\n    uVar10 = piVar11[2];\n    piVar15[1] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n    *piVar15 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }" if (parenthesized_expression "(*(int *)(*piVar11 + 0x20) < 0)" ( (binary_expression "*(int *)(*piVar11 + 0x20) < 0" (pointer_expression "*(int *)(*piVar11 + 0x20)" * (cast_expression "(int *)(*piVar11 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x20)" ( (binary_expression "*piVar11 + 0x20" (pointer_expression "*piVar11" * identifier) + number_literal) )))) < number_literal) )) (compound_statement "{\n    uVar4 = piVar11[3] + *(int *)(*piVar11 + 0xc);\n    uVar10 = piVar11[2];\n    piVar15[1] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n    *piVar15 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }" { (expression_statement "uVar4 = piVar11[3] + *(int *)(*piVar11 + 0xc);" (assignment_expression "uVar4 = piVar11[3] + *(int *)(*piVar11 + 0xc)" identifier = (binary_expression "piVar11[3] + *(int *)(*piVar11 + 0xc)" (subscript_expression "piVar11[3]" identifier [ number_literal ]) + (pointer_expression "*(int *)(*piVar11 + 0xc)" * (cast_expression "(int *)(*piVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0xc)" ( (binary_expression "*piVar11 + 0xc" (pointer_expression "*piVar11" * identifier) + number_literal) )))))) ;) (expression_statement "uVar10 = piVar11[2];" (assignment_expression "uVar10 = piVar11[2]" identifier = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "piVar15[1] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar15[1] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar15[1]" identifier [ number_literal ]) = (binary_expression "(((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10)" ( (binary_expression "(uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10" (binary_expression "(uVar4 >> 0x10) << 0x18" (parenthesized_expression "(uVar4 >> 0x10)" ( (binary_expression "uVar4 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar4 >> 0x18) << 0x10" (parenthesized_expression "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff)" ( (binary_expression "(uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff" (binary_expression "(uVar4 & 0xff) << 8" (parenthesized_expression "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "*piVar15 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar15 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar15" * 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 "iVar2 = *(int *)(puVar17 + 0x28d6b4) + 0x7850;" (assignment_expression "iVar2 = *(int *)(puVar17 + 0x28d6b4) + 0x7850" identifier = (binary_expression "*(int *)(puVar17 + 0x28d6b4) + 0x7850" (pointer_expression "*(int *)(puVar17 + 0x28d6b4)" * (cast_expression "(int *)(puVar17 + 0x28d6b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x28d6b4)" ( (binary_expression "puVar17 + 0x28d6b4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar17 + 0x28d6c4))(*(int *)(puVar17 + 0x28d6b4) + -0x4fe0,0xc5,iVar2);" (call_expression "(**(code **)(puVar17 + 0x28d6c4))(*(int *)(puVar17 + 0x28d6b4) + -0x4fe0,0xc5,iVar2)" (parenthesized_expression "(**(code **)(puVar17 + 0x28d6c4))" ( (pointer_expression "**(code **)(puVar17 + 0x28d6c4)" * (pointer_expression "*(code **)(puVar17 + 0x28d6c4)" * (cast_expression "(code **)(puVar17 + 0x28d6c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x28d6c4)" ( (binary_expression "puVar17 + 0x28d6c4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar17 + 0x28d6b4) + -0x4fe0,0xc5,iVar2)" ( (binary_expression "*(int *)(puVar17 + 0x28d6b4) + -0x4fe0" (pointer_expression "*(int *)(puVar17 + 0x28d6b4)" * (cast_expression "(int *)(puVar17 + 0x28d6b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x28d6b4)" ( (binary_expression "puVar17 + 0x28d6b4" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (expression_statement "piVar15 = (int *)&DAT_00000069;" (assignment_expression "piVar15 = (int *)&DAT_00000069" identifier = (cast_expression "(int *)&DAT_00000069" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000069" & identifier))) ;) (expression_statement "pcVar28 = *(code **)(puVar17 + 0x28d6c4);" (assignment_expression "pcVar28 = *(code **)(puVar17 + 0x28d6c4)" identifier = (pointer_expression "*(code **)(puVar17 + 0x28d6c4)" * (cast_expression "(code **)(puVar17 + 0x28d6c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x28d6c4)" ( (binary_expression "puVar17 + 0x28d6c4" identifier + number_literal) ))))) ;) (expression_statement "piVar11 = (int *)(*(int *)(puVar17 + 0x28d6b4) + -0x5cec);" (assignment_expression "piVar11 = (int *)(*(int *)(puVar17 + 0x28d6b4) + -0x5cec)" identifier = (cast_expression "(int *)(*(int *)(puVar17 + 0x28d6b4) + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + 0x28d6b4) + -0x5cec)" ( (binary_expression "*(int *)(puVar17 + 0x28d6b4) + -0x5cec" (pointer_expression "*(int *)(puVar17 + 0x28d6b4)" * (cast_expression "(int *)(puVar17 + 0x28d6b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x28d6b4)" ( (binary_expression "puVar17 + 0x28d6b4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)(piVar11,0x69,iVar2 + 0x78f8);" (call_expression "(*pcVar28)(piVar11,0x69,iVar2 + 0x78f8)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(piVar11,0x69,iVar2 + 0x78f8)" ( identifier , number_literal , (binary_expression "iVar2 + 0x78f8" identifier + number_literal) ))) ;) (expression_statement "uVar4 = piVar11[3] + 5;" (assignment_expression "uVar4 = piVar11[3] + 5" identifier = (binary_expression "piVar11[3] + 5" (subscript_expression "piVar11[3]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (uVar4 < 5) {\n                    \n                    \n    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280))();\n    return;\n  }" if (parenthesized_expression "(uVar4 < 5)" ( (binary_expression "uVar4 < 5" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280))();\n    return;\n  }" { (expression_statement "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280))();" (call_expression "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280))()" (parenthesized_expression "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280))" ( (pointer_expression "*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280)" * (parenthesized_expression "(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280)" ( (binary_expression "pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280" (binary_expression "pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4)" * (cast_expression "(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4)" ( (binary_expression "*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4" (binary_expression "*(int *)(pcVar28 + 0x28d464) + 0x5dd0" (pointer_expression "*(int *)(pcVar28 + 0x28d464)" * (cast_expression "(int *)(pcVar28 + 0x28d464)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x28d464)" ( (binary_expression "pcVar28 + 0x28d464" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar4 * 4" identifier * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(*piVar11 + 0x20) < 0) {\n    iVar2 = piVar11[2];\n    piVar15[1] = piVar11[3] + *(int *)(*piVar11 + 0xc);\n    *piVar15 = iVar2;\n    return;\n  }" if (parenthesized_expression "(*(int *)(*piVar11 + 0x20) < 0)" ( (binary_expression "*(int *)(*piVar11 + 0x20) < 0" (pointer_expression "*(int *)(*piVar11 + 0x20)" * (cast_expression "(int *)(*piVar11 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0x20)" ( (binary_expression "*piVar11 + 0x20" (pointer_expression "*piVar11" * identifier) + number_literal) )))) < number_literal) )) (compound_statement "{\n    iVar2 = piVar11[2];\n    piVar15[1] = piVar11[3] + *(int *)(*piVar11 + 0xc);\n    *piVar15 = iVar2;\n    return;\n  }" { (expression_statement "iVar2 = piVar11[2];" (assignment_expression "iVar2 = piVar11[2]" identifier = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "piVar15[1] = piVar11[3] + *(int *)(*piVar11 + 0xc);" (assignment_expression "piVar15[1] = piVar11[3] + *(int *)(*piVar11 + 0xc)" (subscript_expression "piVar15[1]" identifier [ number_literal ]) = (binary_expression "piVar11[3] + *(int *)(*piVar11 + 0xc)" (subscript_expression "piVar11[3]" identifier [ number_literal ]) + (pointer_expression "*(int *)(*piVar11 + 0xc)" * (cast_expression "(int *)(*piVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 0xc)" ( (binary_expression "*piVar11 + 0xc" (pointer_expression "*piVar11" * identifier) + number_literal) )))))) ;) (expression_statement "*piVar15 = iVar2;" (assignment_expression "*piVar15 = iVar2" (pointer_expression "*piVar15" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "iVar2 = *(int *)(pcVar28 + 0x28d464) + 0x7850;" (assignment_expression "iVar2 = *(int *)(pcVar28 + 0x28d464) + 0x7850" identifier = (binary_expression "*(int *)(pcVar28 + 0x28d464) + 0x7850" (pointer_expression "*(int *)(pcVar28 + 0x28d464)" * (cast_expression "(int *)(pcVar28 + 0x28d464)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x28d464)" ( (binary_expression "pcVar28 + 0x28d464" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar28 + 0x28d474))(*(int *)(pcVar28 + 0x28d464) + -0x4fe0,0xc5,iVar2);" (call_expression "(**(code **)(pcVar28 + 0x28d474))(*(int *)(pcVar28 + 0x28d464) + -0x4fe0,0xc5,iVar2)" (parenthesized_expression "(**(code **)(pcVar28 + 0x28d474))" ( (pointer_expression "**(code **)(pcVar28 + 0x28d474)" * (pointer_expression "*(code **)(pcVar28 + 0x28d474)" * (cast_expression "(code **)(pcVar28 + 0x28d474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x28d474)" ( (binary_expression "pcVar28 + 0x28d474" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar28 + 0x28d464) + -0x4fe0,0xc5,iVar2)" ( (binary_expression "*(int *)(pcVar28 + 0x28d464) + -0x4fe0" (pointer_expression "*(int *)(pcVar28 + 0x28d464)" * (cast_expression "(int *)(pcVar28 + 0x28d464)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x28d464)" ( (binary_expression "pcVar28 + 0x28d464" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (expression_statement "piVar15 = (int *)&DAT_00000069;" (assignment_expression "piVar15 = (int *)&DAT_00000069" identifier = (cast_expression "(int *)&DAT_00000069" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000069" & identifier))) ;) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0x28d474);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0x28d474)" identifier = (pointer_expression "*(code **)(pcVar28 + 0x28d474)" * (cast_expression "(code **)(pcVar28 + 0x28d474)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x28d474)" ( (binary_expression "pcVar28 + 0x28d474" identifier + number_literal) ))))) ;) (expression_statement "piVar11 = (int *)(*(int *)(pcVar28 + 0x28d464) + -0x5cec);" (assignment_expression "piVar11 = (int *)(*(int *)(pcVar28 + 0x28d464) + -0x5cec)" identifier = (cast_expression "(int *)(*(int *)(pcVar28 + 0x28d464) + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0x28d464) + -0x5cec)" ( (binary_expression "*(int *)(pcVar28 + 0x28d464) + -0x5cec" (pointer_expression "*(int *)(pcVar28 + 0x28d464)" * (cast_expression "(int *)(pcVar28 + 0x28d464)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x28d464)" ( (binary_expression "pcVar28 + 0x28d464" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar29)(piVar11,0x69,iVar2 + 0x78f8);" (call_expression "(*pcVar29)(piVar11,0x69,iVar2 + 0x78f8)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(piVar11,0x69,iVar2 + 0x78f8)" ( identifier , number_literal , (binary_expression "iVar2 + 0x78f8" identifier + number_literal) ))) ;) (expression_statement "uVar4 = piVar11[3];" (assignment_expression "uVar4 = piVar11[3]" identifier = (subscript_expression "piVar11[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar4 + 5 < 5) {\n                    \n                    \n    (*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090))();\n    return;\n  }" if (parenthesized_expression "(uVar4 + 5 < 5)" ( (binary_expression "uVar4 + 5 < 5" (binary_expression "uVar4 + 5" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n    (*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090))();\n    return;\n  }" { (expression_statement "(*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090))();" (call_expression "(*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090))()" (parenthesized_expression "(*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090))" ( (pointer_expression "*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090)" * (parenthesized_expression "(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090)" ( (binary_expression "pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090" (binary_expression "pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4)" * (cast_expression "(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4)" ( (binary_expression "*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4" (binary_expression "*(int *)(pcVar29 + 0x28d274) + 0x5de4" (pointer_expression "*(int *)(pcVar29 + 0x28d274)" * (cast_expression "(int *)(pcVar29 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x28d274)" ( (binary_expression "pcVar29 + 0x28d274" identifier + number_literal) )))) + number_literal) + (binary_expression "(uVar4 + 5) * 4" (parenthesized_expression "(uVar4 + 5)" ( (binary_expression "uVar4 + 5" identifier + number_literal) )) * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar2 = *piVar11;" (assignment_expression "iVar2 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if (*(int *)(iVar2 + 0x20) < 0) {\n    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);\n    uVar4 = (uint)(uVar10 < uVar4) + *(int *)(iVar2 + 8);\n    uVar12 = piVar11[2];\n    piVar15[1] = 0;\n    piVar15[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n    piVar15[2] = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    *piVar15 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar2 + 0x20) < 0)" ( (binary_expression "*(int *)(iVar2 + 0x20) < 0" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);\n    uVar4 = (uint)(uVar10 < uVar4) + *(int *)(iVar2 + 8);\n    uVar12 = piVar11[2];\n    piVar15[1] = 0;\n    piVar15[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n    piVar15[2] = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    *piVar15 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n    return;\n  }" { (expression_statement "uVar10 = uVar4 + *(int *)(iVar2 + 0xc);" (assignment_expression "uVar10 = uVar4 + *(int *)(iVar2 + 0xc)" identifier = (binary_expression "uVar4 + *(int *)(iVar2 + 0xc)" identifier + (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "uVar4 = (uint)(uVar10 < uVar4) + *(int *)(iVar2 + 8);" (assignment_expression "uVar4 = (uint)(uVar10 < uVar4) + *(int *)(iVar2 + 8)" identifier = (binary_expression "(uint)(uVar10 < uVar4) + *(int *)(iVar2 + 8)" (call_expression "(uint)(uVar10 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar4)" ( (binary_expression "uVar10 < uVar4" identifier < identifier) ))) + (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))))) ;) (expression_statement "uVar12 = piVar11[2];" (assignment_expression "uVar12 = piVar11[2]" identifier = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "piVar15[1] = 0;" (assignment_expression "piVar15[1] = 0" (subscript_expression "piVar15[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar15[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar15[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar15[3]" identifier [ number_literal ]) = (binary_expression "(((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10)" ( (binary_expression "(uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10" (binary_expression "(uVar4 >> 0x10) << 0x18" (parenthesized_expression "(uVar4 >> 0x10)" ( (binary_expression "uVar4 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar4 >> 0x18) << 0x10" (parenthesized_expression "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff)" ( (binary_expression "(uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff" (binary_expression "(uVar4 & 0xff) << 8" (parenthesized_expression "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (expression_statement "piVar15[2] = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar15[2] = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar15[2]" identifier [ number_literal ]) = (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))) ;) (expression_statement "*piVar15 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar15 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar15" * identifier) = (binary_expression "(((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10)" ( (binary_expression "((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10)" ( (binary_expression "(uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10" (binary_expression "(uVar12 >> 0x10) << 0x18" (parenthesized_expression "(uVar12 >> 0x10)" ( (binary_expression "uVar12 >> 0x10" identifier >> number_literal) )) << number_literal) | (binary_expression "(uVar12 >> 0x18) << 0x10" (parenthesized_expression "(uVar12 >> 0x18)" ( (binary_expression "uVar12 >> 0x18" identifier >> number_literal) )) << number_literal)) )) >> number_literal) )) + (binary_expression "((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff)" ( (binary_expression "(uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff" (binary_expression "(uVar12 & 0xff) << 8" (parenthesized_expression "(uVar12 & 0xff)" ( (binary_expression "uVar12 & 0xff" identifier & number_literal) )) << number_literal) | (binary_expression "uVar12 >> 8 & 0xff" (binary_expression "uVar12 >> 8" identifier >> number_literal) & number_literal)) )) * number_literal))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar2 = *(int *)(pcVar29 + 0x28d274) + 0x7850;" (assignment_expression "iVar2 = *(int *)(pcVar29 + 0x28d274) + 0x7850" identifier = (binary_expression "*(int *)(pcVar29 + 0x28d274) + 0x7850" (pointer_expression "*(int *)(pcVar29 + 0x28d274)" * (cast_expression "(int *)(pcVar29 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x28d274)" ( (binary_expression "pcVar29 + 0x28d274" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar29 + 0x28d284))(*(int *)(pcVar29 + 0x28d274) + -0x4fe0,0xc5,iVar2);" (call_expression "(**(code **)(pcVar29 + 0x28d284))(*(int *)(pcVar29 + 0x28d274) + -0x4fe0,0xc5,iVar2)" (parenthesized_expression "(**(code **)(pcVar29 + 0x28d284))" ( (pointer_expression "**(code **)(pcVar29 + 0x28d284)" * (pointer_expression "*(code **)(pcVar29 + 0x28d284)" * (cast_expression "(code **)(pcVar29 + 0x28d284)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28d284)" ( (binary_expression "pcVar29 + 0x28d284" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar29 + 0x28d274) + -0x4fe0,0xc5,iVar2)" ( (binary_expression "*(int *)(pcVar29 + 0x28d274) + -0x4fe0" (pointer_expression "*(int *)(pcVar29 + 0x28d274)" * (cast_expression "(int *)(pcVar29 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x28d274)" ( (binary_expression "pcVar29 + 0x28d274" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) (expression_statement "puVar26 = (undefined4 *)&DAT_00000069;" (assignment_expression "puVar26 = (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 **)(pcVar29 + 0x28d284);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + 0x28d284)" identifier = (pointer_expression "*(code **)(pcVar29 + 0x28d284)" * (cast_expression "(code **)(pcVar29 + 0x28d284)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x28d284)" ( (binary_expression "pcVar29 + 0x28d284" identifier + number_literal) ))))) ;) (expression_statement "piVar11 = (int *)(*(int *)(pcVar29 + 0x28d274) + -0x5cec);" (assignment_expression "piVar11 = (int *)(*(int *)(pcVar29 + 0x28d274) + -0x5cec)" identifier = (cast_expression "(int *)(*(int *)(pcVar29 + 0x28d274) + -0x5cec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + 0x28d274) + -0x5cec)" ( (binary_expression "*(int *)(pcVar29 + 0x28d274) + -0x5cec" (pointer_expression "*(int *)(pcVar29 + 0x28d274)" * (cast_expression "(int *)(pcVar29 + 0x28d274)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x28d274)" ( (binary_expression "pcVar29 + 0x28d274" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)(piVar11,0x69,iVar2 + 0x78f8);" (call_expression "(*pcVar28)(piVar11,0x69,iVar2 + 0x78f8)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(piVar11,0x69,iVar2 + 0x78f8)" ( identifier , number_literal , (binary_expression "iVar2 + 0x78f8" identifier + number_literal) ))) ;) (expression_statement "uVar4 = piVar11[3];" (assignment_expression "uVar4 = piVar11[3]" identifier = (subscript_expression "piVar11[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar4 + 5 < 5) {\n                    \n                    \n    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8))();\n    return;\n  }" if (parenthesized_expression "(uVar4 + 5 < 5)" ( (binary_expression "uVar4 + 5 < 5" (binary_expression "uVar4 + 5" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8))();\n    return;\n  }" { (expression_statement "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8))();" (call_expression "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8))()" (parenthesized_expression "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8))" ( (pointer_expression "*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8)" * (parenthesized_expression "(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8)" ( (binary_expression "pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8" (binary_expression "pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4)" * (cast_expression "(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4)" ( (binary_expression "*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 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 "(uVar4 + 5) * 4" (parenthesized_expression "(uVar4 + 5)" ( (binary_expression "uVar4 + 5" identifier + number_literal) )) * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar2 = *piVar11;" (assignment_expression "iVar2 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if (*(int *)(iVar2 + 0x20) < 0) {\n    iVar14 = *(int *)(iVar2 + 8);\n    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);\n    iVar2 = piVar11[2];\n    *puVar26 = 0;\n    puVar26[2] = (uint)(uVar10 < uVar4) + iVar14;\n    puVar26[1] = iVar2;\n    puVar26[3] = uVar10;\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar2 + 0x20) < 0)" ( (binary_expression "*(int *)(iVar2 + 0x20) < 0" (pointer_expression "*(int *)(iVar2 + 0x20)" * (cast_expression "(int *)(iVar2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    iVar14 = *(int *)(iVar2 + 8);\n    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);\n    iVar2 = piVar11[2];\n    *puVar26 = 0;\n    puVar26[2] = (uint)(uVar10 < uVar4) + iVar14;\n    puVar26[1] = iVar2;\n    puVar26[3] = uVar10;\n    return;\n  }" { (expression_statement "iVar14 = *(int *)(iVar2 + 8);" (assignment_expression "iVar14 = *(int *)(iVar2 + 8)" identifier = (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar4 + *(int *)(iVar2 + 0xc);" (assignment_expression "uVar10 = uVar4 + *(int *)(iVar2 + 0xc)" identifier = (binary_expression "uVar4 + *(int *)(iVar2 + 0xc)" identifier + (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "iVar2 = piVar11[2];" (assignment_expression "iVar2 = piVar11[2]" identifier = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "*puVar26 = 0;" (assignment_expression "*puVar26 = 0" (pointer_expression "*puVar26" * identifier) = number_literal) ;) (expression_statement "puVar26[2] = (uint)(uVar10 < uVar4) + iVar14;" (assignment_expression "puVar26[2] = (uint)(uVar10 < uVar4) + iVar14" (subscript_expression "puVar26[2]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar10 < uVar4) + iVar14" (call_expression "(uint)(uVar10 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar4)" ( (binary_expression "uVar10 < uVar4" identifier < identifier) ))) + identifier)) ;) (expression_statement "puVar26[1] = iVar2;" (assignment_expression "puVar26[1] = iVar2" (subscript_expression "puVar26[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar26[3] = uVar10;" (assignment_expression "puVar26[3] = uVar10" (subscript_expression "puVar26[3]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "iVar2 = *(int *)(pcVar28 + 0x28d0bc) + 0x7850;" (assignment_expression "iVar2 = *(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,iVar2);" (call_expression "(**(code **)(pcVar28 + 0x28d0cc))(*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0,0xc5,iVar2)" (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,iVar2)" ( (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 "uVar4 = 0x69;" (assignment_expression "uVar4 = 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 "piVar11 = (int *)(*(int *)(pcVar28 + 0x28d0bc) + -0x5cec);" (assignment_expression "piVar11 = (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)(piVar11,0x69,iVar2 + 0x78f8);" (call_expression "(*pcVar29)(piVar11,0x69,iVar2 + 0x78f8)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(piVar11,0x69,iVar2 + 0x78f8)" ( identifier , number_literal , (binary_expression "iVar2 + 0x78f8" identifier + number_literal) ))) ;) (if_statement "if (uVar4 == 0) {\n    return;\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar8 = (undefined4 *)piVar11[1];" (assignment_expression "puVar8 = (undefined4 *)piVar11[1]" identifier = (cast_expression "(undefined4 *)piVar11[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[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 "puVar26 = puVar8;" (assignment_expression "puVar26 = puVar8" identifier = identifier) ;) (expression_statement "uVar10 = uVar4;" (assignment_expression "uVar10 = uVar4" identifier = identifier) ;) (if_statement "if (uVar4 <= (uint)((piVar11[2] - (int)puVar8 >> 3) * -0x55555555)) {\n    do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar10 != 0);\n    piVar11[1] = (int)(puVar8 + uVar4 * 6);\n    return;\n  }" if (parenthesized_expression "(uVar4 <= (uint)((piVar11[2] - (int)puVar8 >> 3) * -0x55555555))" ( (binary_expression "uVar4 <= (uint)((piVar11[2] - (int)puVar8 >> 3) * -0x55555555)" identifier <= (call_expression "(uint)((piVar11[2] - (int)puVar8 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((piVar11[2] - (int)puVar8 >> 3) * -0x55555555)" ( (binary_expression "(piVar11[2] - (int)puVar8 >> 3) * -0x55555555" (parenthesized_expression "(piVar11[2] - (int)puVar8 >> 3)" ( (binary_expression "piVar11[2] - (int)puVar8 >> 3" (binary_expression "piVar11[2] - (int)puVar8" (subscript_expression "piVar11[2]" identifier [ number_literal ]) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) )))) )) (compound_statement "{\n    do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar10 != 0);\n    piVar11[1] = (int)(puVar8 + uVar4 * 6);\n    return;\n  }" { (do_statement "do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar10 != 0);" do (compound_statement "{\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    }" { (expression_statement "*puVar26 = 0;" (assignment_expression "*puVar26 = 0" (pointer_expression "*puVar26" * identifier) = number_literal) ;) (expression_statement "puVar26[1] = 0;" (assignment_expression "puVar26[1] = 0" (subscript_expression "puVar26[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 "puVar26[3] = 0;" (assignment_expression "puVar26[3] = 0" (subscript_expression "puVar26[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar26[2] = 0;" (assignment_expression "puVar26[2] = 0" (subscript_expression "puVar26[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar26[4] = 0;" (assignment_expression "puVar26[4] = 0" (subscript_expression "puVar26[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar26 = puVar26 + 6;" (assignment_expression "puVar26 = puVar26 + 6" identifier = (binary_expression "puVar26 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) ;) (expression_statement "piVar11[1] = (int)(puVar8 + uVar4 * 6);" (assignment_expression "piVar11[1] = (int)(puVar8 + uVar4 * 6)" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = (cast_expression "(int)(puVar8 + uVar4 * 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar8 + uVar4 * 6)" ( (binary_expression "puVar8 + uVar4 * 6" identifier + (binary_expression "uVar4 * 6" identifier * number_literal)) )))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar2 = *piVar11;" (assignment_expression "iVar2 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "puVar26 = (undefined4 *)((int)puVar8 - iVar2 >> 3);" (assignment_expression "puVar26 = (undefined4 *)((int)puVar8 - iVar2 >> 3)" identifier = (cast_expression "(undefined4 *)((int)puVar8 - iVar2 >> 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 - iVar2 >> 3)" ( (binary_expression "(int)puVar8 - iVar2 >> 3" (binary_expression "(int)puVar8 - iVar2" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) >> number_literal) )))) ;) (expression_statement "uVar10 = (int)puVar26 * -0x55555555;" (assignment_expression "uVar10 = (int)puVar26 * -0x55555555" identifier = (binary_expression "(int)puVar26 * -0x55555555" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (uVar4 <= (int)puVar26 * 0x55555555 + 0xaaaaaaaU) {\n    uVar12 = uVar10;\n    if (uVar10 <= uVar4) {\n      uVar12 = uVar4;\n    }\n    uVar12 = uVar12 + uVar10;\n    iVar14 = -0x10;\n    if (uVar10 <= uVar12) {\n      if (0xaaaaaaa < uVar12) {\n        uVar12 = 0xaaaaaaa;\n      }\n      iVar14 = uVar12 * 0x18;\n    }\n    puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar14);\n    puVar26 = (undefined4 *)((int)puVar18 + ((int)puVar8 - iVar2));\n    uVar12 = uVar4;\n    do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar12 = uVar12 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar12 != 0);\n    puVar24 = (undefined4 *)piVar11[1];\n    puVar13 = (undefined4 *)*piVar11;\n    puVar8 = puVar18;\n    for (puVar26 = puVar13; puVar26 != puVar24; puVar26 = puVar26 + 6) {\n      uVar22 = puVar26[1];\n      uVar21 = puVar26[2];\n      uVar20 = puVar26[3];\n      uVar19 = puVar26[4];\n      uVar3 = puVar26[5];\n      *puVar8 = *puVar26;\n      puVar8[1] = uVar22;\n      puVar8[2] = uVar21;\n      puVar8[3] = uVar20;\n      puVar8[4] = uVar19;\n      puVar8[5] = uVar3;\n      puVar8 = puVar8 + 6;\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      (**(code **)(pcVar29 + 0x28cd40))();\n    }\n    *piVar11 = (int)puVar18;\n    piVar11[2] = (int)puVar18 + iVar14;\n    piVar11[1] = (int)(puVar18 + (uVar4 + uVar10) * 6);\n    return;\n  }" if (parenthesized_expression "(uVar4 <= (int)puVar26 * 0x55555555 + 0xaaaaaaaU)" ( (binary_expression "uVar4 <= (int)puVar26 * 0x55555555 + 0xaaaaaaaU" identifier <= (binary_expression "(int)puVar26 * 0x55555555 + 0xaaaaaaaU" (binary_expression "(int)puVar26 * 0x55555555" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) )) (compound_statement "{\n    uVar12 = uVar10;\n    if (uVar10 <= uVar4) {\n      uVar12 = uVar4;\n    }\n    uVar12 = uVar12 + uVar10;\n    iVar14 = -0x10;\n    if (uVar10 <= uVar12) {\n      if (0xaaaaaaa < uVar12) {\n        uVar12 = 0xaaaaaaa;\n      }\n      iVar14 = uVar12 * 0x18;\n    }\n    puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar14);\n    puVar26 = (undefined4 *)((int)puVar18 + ((int)puVar8 - iVar2));\n    uVar12 = uVar4;\n    do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar12 = uVar12 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar12 != 0);\n    puVar24 = (undefined4 *)piVar11[1];\n    puVar13 = (undefined4 *)*piVar11;\n    puVar8 = puVar18;\n    for (puVar26 = puVar13; puVar26 != puVar24; puVar26 = puVar26 + 6) {\n      uVar22 = puVar26[1];\n      uVar21 = puVar26[2];\n      uVar20 = puVar26[3];\n      uVar19 = puVar26[4];\n      uVar3 = puVar26[5];\n      *puVar8 = *puVar26;\n      puVar8[1] = uVar22;\n      puVar8[2] = uVar21;\n      puVar8[3] = uVar20;\n      puVar8[4] = uVar19;\n      puVar8[5] = uVar3;\n      puVar8 = puVar8 + 6;\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      (**(code **)(pcVar29 + 0x28cd40))();\n    }\n    *piVar11 = (int)puVar18;\n    piVar11[2] = (int)puVar18 + iVar14;\n    piVar11[1] = (int)(puVar18 + (uVar4 + uVar10) * 6);\n    return;\n  }" { (expression_statement "uVar12 = uVar10;" (assignment_expression "uVar12 = uVar10" identifier = identifier) ;) (if_statement "if (uVar10 <= uVar4) {\n      uVar12 = uVar4;\n    }" if (parenthesized_expression "(uVar10 <= uVar4)" ( (binary_expression "uVar10 <= uVar4" identifier <= identifier) )) (compound_statement "{\n      uVar12 = uVar4;\n    }" { (expression_statement "uVar12 = uVar4;" (assignment_expression "uVar12 = uVar4" identifier = identifier) ;) })) (expression_statement "uVar12 = uVar12 + uVar10;" (assignment_expression "uVar12 = uVar12 + uVar10" identifier = (binary_expression "uVar12 + uVar10" identifier + identifier)) ;) (expression_statement "iVar14 = -0x10;" (assignment_expression "iVar14 = -0x10" identifier = number_literal) ;) (if_statement "if (uVar10 <= uVar12) {\n      if (0xaaaaaaa < uVar12) {\n        uVar12 = 0xaaaaaaa;\n      }\n      iVar14 = uVar12 * 0x18;\n    }" if (parenthesized_expression "(uVar10 <= uVar12)" ( (binary_expression "uVar10 <= uVar12" identifier <= identifier) )) (compound_statement "{\n      if (0xaaaaaaa < uVar12) {\n        uVar12 = 0xaaaaaaa;\n      }\n      iVar14 = uVar12 * 0x18;\n    }" { (if_statement "if (0xaaaaaaa < uVar12) {\n        uVar12 = 0xaaaaaaa;\n      }" if (parenthesized_expression "(0xaaaaaaa < uVar12)" ( (binary_expression "0xaaaaaaa < uVar12" number_literal < identifier) )) (compound_statement "{\n        uVar12 = 0xaaaaaaa;\n      }" { (expression_statement "uVar12 = 0xaaaaaaa;" (assignment_expression "uVar12 = 0xaaaaaaa" identifier = number_literal) ;) })) (expression_statement "iVar14 = uVar12 * 0x18;" (assignment_expression "iVar14 = uVar12 * 0x18" identifier = (binary_expression "uVar12 * 0x18" identifier * number_literal)) ;) })) (expression_statement "puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar14);" (assignment_expression "puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar14)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar29 + 0x28cdf0))(iVar14)" (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 "(iVar14)" ( identifier ))))) ;) (expression_statement "puVar26 = (undefined4 *)((int)puVar18 + ((int)puVar8 - iVar2));" (assignment_expression "puVar26 = (undefined4 *)((int)puVar18 + ((int)puVar8 - iVar2))" identifier = (cast_expression "(undefined4 *)((int)puVar18 + ((int)puVar8 - iVar2))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + ((int)puVar8 - iVar2))" ( (binary_expression "(int)puVar18 + ((int)puVar8 - iVar2)" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)puVar8 - iVar2)" ( (binary_expression "(int)puVar8 - iVar2" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) )))) ;) (expression_statement "uVar12 = uVar4;" (assignment_expression "uVar12 = uVar4" identifier = identifier) ;) (do_statement "do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar12 = uVar12 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar12 != 0);" do (compound_statement "{\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar12 = uVar12 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    }" { (expression_statement "*puVar26 = 0;" (assignment_expression "*puVar26 = 0" (pointer_expression "*puVar26" * identifier) = number_literal) ;) (expression_statement "puVar26[1] = 0;" (assignment_expression "puVar26[1] = 0" (subscript_expression "puVar26[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (expression_statement "puVar26[3] = 0;" (assignment_expression "puVar26[3] = 0" (subscript_expression "puVar26[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar26[2] = 0;" (assignment_expression "puVar26[2] = 0" (subscript_expression "puVar26[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar26[4] = 0;" (assignment_expression "puVar26[4] = 0" (subscript_expression "puVar26[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar26 = puVar26 + 6;" (assignment_expression "puVar26 = puVar26 + 6" identifier = (binary_expression "puVar26 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) ;) (expression_statement "puVar24 = (undefined4 *)piVar11[1];" (assignment_expression "puVar24 = (undefined4 *)piVar11[1]" identifier = (cast_expression "(undefined4 *)piVar11[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar13 = (undefined4 *)*piVar11;" (assignment_expression "puVar13 = (undefined4 *)*piVar11" identifier = (cast_expression "(undefined4 *)*piVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier))) ;) (expression_statement "puVar8 = puVar18;" (assignment_expression "puVar8 = puVar18" identifier = identifier) ;) (for_statement "for (puVar26 = puVar13; puVar26 != puVar24; puVar26 = puVar26 + 6) {\n      uVar22 = puVar26[1];\n      uVar21 = puVar26[2];\n      uVar20 = puVar26[3];\n      uVar19 = puVar26[4];\n      uVar3 = puVar26[5];\n      *puVar8 = *puVar26;\n      puVar8[1] = uVar22;\n      puVar8[2] = uVar21;\n      puVar8[3] = uVar20;\n      puVar8[4] = uVar19;\n      puVar8[5] = uVar3;\n      puVar8 = puVar8 + 6;\n    }" for ( (assignment_expression "puVar26 = puVar13" identifier = identifier) ; (binary_expression "puVar26 != puVar24" identifier != identifier) ; (assignment_expression "puVar26 = puVar26 + 6" identifier = (binary_expression "puVar26 + 6" identifier + number_literal)) ) (compound_statement "{\n      uVar22 = puVar26[1];\n      uVar21 = puVar26[2];\n      uVar20 = puVar26[3];\n      uVar19 = puVar26[4];\n      uVar3 = puVar26[5];\n      *puVar8 = *puVar26;\n      puVar8[1] = uVar22;\n      puVar8[2] = uVar21;\n      puVar8[3] = uVar20;\n      puVar8[4] = uVar19;\n      puVar8[5] = uVar3;\n      puVar8 = puVar8 + 6;\n    }" { (expression_statement "uVar22 = puVar26[1];" (assignment_expression "uVar22 = puVar26[1]" identifier = (subscript_expression "puVar26[1]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = puVar26[2];" (assignment_expression "uVar21 = puVar26[2]" identifier = (subscript_expression "puVar26[2]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar26[3];" (assignment_expression "uVar20 = puVar26[3]" identifier = (subscript_expression "puVar26[3]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar26[4];" (assignment_expression "uVar19 = puVar26[4]" identifier = (subscript_expression "puVar26[4]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar26[5];" (assignment_expression "uVar3 = puVar26[5]" identifier = (subscript_expression "puVar26[5]" identifier [ number_literal ])) ;) (expression_statement "*puVar8 = *puVar26;" (assignment_expression "*puVar8 = *puVar26" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar26" * 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] = uVar3;" (assignment_expression "puVar8[5] = uVar3" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8 = puVar8 + 6;" (assignment_expression "puVar8 = puVar8 + 6" identifier = (binary_expression "puVar8 + 6" identifier + number_literal)) ;) })) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n      (**(code **)(pcVar29 + 0x28cd40))();\n    }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (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 "*piVar11 = (int)puVar18;" (assignment_expression "*piVar11 = (int)puVar18" (pointer_expression "*piVar11" * identifier) = (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar11[2] = (int)puVar18 + iVar14;" (assignment_expression "piVar11[2] = (int)puVar18 + iVar14" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = (binary_expression "(int)puVar18 + iVar14" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "piVar11[1] = (int)(puVar18 + (uVar4 + uVar10) * 6);" (assignment_expression "piVar11[1] = (int)(puVar18 + (uVar4 + uVar10) * 6)" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = (cast_expression "(int)(puVar18 + (uVar4 + uVar10) * 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar18 + (uVar4 + uVar10) * 6)" ( (binary_expression "puVar18 + (uVar4 + uVar10) * 6" identifier + (binary_expression "(uVar4 + uVar10) * 6" (parenthesized_expression "(uVar4 + uVar10)" ( (binary_expression "uVar4 + uVar10" 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 "puVar8 = (undefined4 *)(*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c);" (assignment_expression "puVar8 = (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 *)puVar8[1];" (assignment_expression "puVar24 = (undefined4 *)puVar8[1]" identifier = (cast_expression "(undefined4 *)puVar8[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar13 = (undefined4 *)*puVar8;" (assignment_expression "puVar13 = (undefined4 *)*puVar8" identifier = (cast_expression "(undefined4 *)*puVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (expression_statement "iVar2 = (int)puVar24 - (int)puVar13 >> 3;" (assignment_expression "iVar2 = (int)puVar24 - (int)puVar13 >> 3" identifier = (binary_expression "(int)puVar24 - (int)puVar13 >> 3" (binary_expression "(int)puVar24 - (int)puVar13" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "uVar4 = iVar2 * -0x49249249;" (assignment_expression "uVar4 = iVar2 * -0x49249249" identifier = (binary_expression "iVar2 * -0x49249249" identifier * number_literal)) ;) (if_statement "if (uVar4 == 0) {\n    uVar10 = 1;\nLAB_001a5b4c:\n    iVar2 = uVar10 * 0x38;\n  }\n  else {\n    uVar10 = iVar2 * 0x6db6db6e;\n    if (uVar10 < uVar4) {\n      iVar2 = -0x20;\n    }\n    else {\n      iVar2 = -0x20;\n      if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar10 = 1;\nLAB_001a5b4c:\n    iVar2 = uVar10 * 0x38;\n  }" { (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (labeled_statement "LAB_001a5b4c:\n    iVar2 = uVar10 * 0x38;" statement_identifier : (expression_statement "iVar2 = uVar10 * 0x38;" (assignment_expression "iVar2 = uVar10 * 0x38" identifier = (binary_expression "uVar10 * 0x38" identifier * number_literal)) ;)) }) (else_clause "else {\n    uVar10 = iVar2 * 0x6db6db6e;\n    if (uVar10 < uVar4) {\n      iVar2 = -0x20;\n    }\n    else {\n      iVar2 = -0x20;\n      if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" else (compound_statement "{\n    uVar10 = iVar2 * 0x6db6db6e;\n    if (uVar10 < uVar4) {\n      iVar2 = -0x20;\n    }\n    else {\n      iVar2 = -0x20;\n      if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" { (expression_statement "uVar10 = iVar2 * 0x6db6db6e;" (assignment_expression "uVar10 = iVar2 * 0x6db6db6e" identifier = (binary_expression "iVar2 * 0x6db6db6e" identifier * number_literal)) ;) (if_statement "if (uVar10 < uVar4) {\n      iVar2 = -0x20;\n    }\n    else {\n      iVar2 = -0x20;\n      if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" if (parenthesized_expression "(uVar10 < uVar4)" ( (binary_expression "uVar10 < uVar4" identifier < identifier) )) (compound_statement "{\n      iVar2 = -0x20;\n    }" { (expression_statement "iVar2 = -0x20;" (assignment_expression "iVar2 = -0x20" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = -0x20;\n      if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" else (compound_statement "{\n      iVar2 = -0x20;\n      if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" { (expression_statement "iVar2 = -0x20;" (assignment_expression "iVar2 = -0x20" identifier = number_literal) ;) (if_statement "if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }" if (parenthesized_expression "(uVar10 < 0x4924925)" ( (binary_expression "uVar10 < 0x4924925" identifier < number_literal) )) (compound_statement "{\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }" { (expression_statement "puVar27 = (undefined4 *)&DAT_00000038;" (assignment_expression "puVar27 = (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 (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (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 "puVar5 = (undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar2);" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar2)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar28 + 0x28cbe4))(iVar2)" (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 "(iVar2)" ( identifier ))))) ;) (expression_statement "iVar2 = (int)puVar5 + iVar2;" (assignment_expression "iVar2 = (int)puVar5 + iVar2" identifier = (binary_expression "(int)puVar5 + iVar2" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "puVar27 = puVar5 + 0xe;" (assignment_expression "puVar27 = puVar5 + 0xe" identifier = (binary_expression "puVar5 + 0xe" identifier + number_literal)) ;) (labeled_statement "LAB_001a57f4:\n  puVar6 = (undefined4 *)((int)puVar5 + ((int)puVar26 - (int)puVar13));" statement_identifier : (expression_statement "puVar6 = (undefined4 *)((int)puVar5 + ((int)puVar26 - (int)puVar13));" (assignment_expression "puVar6 = (undefined4 *)((int)puVar5 + ((int)puVar26 - (int)puVar13))" identifier = (cast_expression "(undefined4 *)((int)puVar5 + ((int)puVar26 - (int)puVar13))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + ((int)puVar26 - (int)puVar13))" ( (binary_expression "(int)puVar5 + ((int)puVar26 - (int)puVar13)" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)puVar26 - (int)puVar13)" ( (binary_expression "(int)puVar26 - (int)puVar13" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar13" ( (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 "puVar9 = puVar18 + 9;" (assignment_expression "puVar9 = 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 "uVar3 = puVar18[6];" (assignment_expression "uVar3 = 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 "*puVar6 = *puVar18;" (assignment_expression "*puVar6 = *puVar18" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "puVar6[1] = uVar23;" (assignment_expression "puVar6[1] = uVar23" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = uVar22;" (assignment_expression "puVar6[2] = uVar22" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = uVar21;" (assignment_expression "puVar6[3] = uVar21" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[4] = uVar20;" (assignment_expression "puVar6[4] = uVar20" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[5] = uVar19;" (assignment_expression "puVar6[5] = uVar19" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[6] = uVar3;" (assignment_expression "puVar6[6] = uVar3" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[7] = puVar6 + 9;" (assignment_expression "puVar6[7] = puVar6 + 9" (subscript_expression "puVar6[7]" identifier [ number_literal ]) = (binary_expression "puVar6 + 9" identifier + number_literal)) ;) (if_statement "if (puVar16 == puVar9) {\n    uVar20 = puVar18[10];\n    uVar19 = puVar18[0xb];\n    uVar3 = puVar18[0xc];\n    puVar6[9] = *puVar9;\n    puVar6[10] = uVar20;\n    puVar6[0xb] = uVar19;\n    puVar6[0xc] = uVar3;\n  }\n  else {\n    uVar3 = puVar18[9];\n    puVar6[7] = puVar16;\n    puVar6[9] = uVar3;\n  }" if (parenthesized_expression "(puVar16 == puVar9)" ( (binary_expression "puVar16 == puVar9" identifier == identifier) )) (compound_statement "{\n    uVar20 = puVar18[10];\n    uVar19 = puVar18[0xb];\n    uVar3 = puVar18[0xc];\n    puVar6[9] = *puVar9;\n    puVar6[10] = uVar20;\n    puVar6[0xb] = uVar19;\n    puVar6[0xc] = uVar3;\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 "uVar3 = puVar18[0xc];" (assignment_expression "uVar3 = puVar18[0xc]" identifier = (subscript_expression "puVar18[0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar6[9] = *puVar9;" (assignment_expression "puVar6[9] = *puVar9" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar6[10] = uVar20;" (assignment_expression "puVar6[10] = uVar20" (subscript_expression "puVar6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0xb] = uVar19;" (assignment_expression "puVar6[0xb] = uVar19" (subscript_expression "puVar6[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0xc] = uVar3;" (assignment_expression "puVar6[0xc] = uVar3" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    uVar3 = puVar18[9];\n    puVar6[7] = puVar16;\n    puVar6[9] = uVar3;\n  }" else (compound_statement "{\n    uVar3 = puVar18[9];\n    puVar6[7] = puVar16;\n    puVar6[9] = uVar3;\n  }" { (expression_statement "uVar3 = puVar18[9];" (assignment_expression "uVar3 = puVar18[9]" identifier = (subscript_expression "puVar18[9]" identifier [ number_literal ])) ;) (expression_statement "puVar6[7] = puVar16;" (assignment_expression "puVar6[7] = puVar16" (subscript_expression "puVar6[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[9] = uVar3;" (assignment_expression "puVar6[9] = uVar3" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "uVar3 = puVar18[8];" (assignment_expression "uVar3 = puVar18[8]" identifier = (subscript_expression "puVar18[8]" identifier [ number_literal ])) ;) (expression_statement "puVar18[7] = puVar9;" (assignment_expression "puVar18[7] = puVar9" (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 "puVar6[8] = uVar3;" (assignment_expression "puVar6[8] = uVar3" (subscript_expression "puVar6[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 (puVar13 != puVar26) {\n    puVar27 = puVar13 + 9;\n    puVar18 = puVar5;\n    while( true ) {\n      uVar3 = puVar27[-4];\n      uVar22 = puVar27[-8];\n      uVar21 = puVar27[-7];\n      uVar20 = puVar27[-6];\n      uVar19 = puVar27[-5];\n      *puVar18 = puVar27[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar3;\n      uVar3 = puVar27[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar3;\n      if ((undefined4 *)puVar27[-2] == puVar27) {\n        uVar20 = puVar27[1];\n        uVar19 = puVar27[2];\n        uVar3 = puVar27[3];\n        puVar18[9] = *puVar27;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar3;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      if (puVar26 == puVar27 + 5) break;\n      puVar27 = puVar27 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }\n    puVar27 = puVar5 + ((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }" if (parenthesized_expression "(puVar13 != puVar26)" ( (binary_expression "puVar13 != puVar26" identifier != identifier) )) (compound_statement "{\n    puVar27 = puVar13 + 9;\n    puVar18 = puVar5;\n    while( true ) {\n      uVar3 = puVar27[-4];\n      uVar22 = puVar27[-8];\n      uVar21 = puVar27[-7];\n      uVar20 = puVar27[-6];\n      uVar19 = puVar27[-5];\n      *puVar18 = puVar27[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar3;\n      uVar3 = puVar27[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar3;\n      if ((undefined4 *)puVar27[-2] == puVar27) {\n        uVar20 = puVar27[1];\n        uVar19 = puVar27[2];\n        uVar3 = puVar27[3];\n        puVar18[9] = *puVar27;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar3;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      if (puVar26 == puVar27 + 5) break;\n      puVar27 = puVar27 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }\n    puVar27 = puVar5 + ((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }" { (expression_statement "puVar27 = puVar13 + 9;" (assignment_expression "puVar27 = puVar13 + 9" identifier = (binary_expression "puVar13 + 9" identifier + number_literal)) ;) (expression_statement "puVar18 = puVar5;" (assignment_expression "puVar18 = puVar5" identifier = identifier) ;) (while_statement "while( true ) {\n      uVar3 = puVar27[-4];\n      uVar22 = puVar27[-8];\n      uVar21 = puVar27[-7];\n      uVar20 = puVar27[-6];\n      uVar19 = puVar27[-5];\n      *puVar18 = puVar27[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar3;\n      uVar3 = puVar27[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar3;\n      if ((undefined4 *)puVar27[-2] == puVar27) {\n        uVar20 = puVar27[1];\n        uVar19 = puVar27[2];\n        uVar3 = puVar27[3];\n        puVar18[9] = *puVar27;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar3;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      if (puVar26 == puVar27 + 5) break;\n      puVar27 = puVar27 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar3 = puVar27[-4];\n      uVar22 = puVar27[-8];\n      uVar21 = puVar27[-7];\n      uVar20 = puVar27[-6];\n      uVar19 = puVar27[-5];\n      *puVar18 = puVar27[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar3;\n      uVar3 = puVar27[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar3;\n      if ((undefined4 *)puVar27[-2] == puVar27) {\n        uVar20 = puVar27[1];\n        uVar19 = puVar27[2];\n        uVar3 = puVar27[3];\n        puVar18[9] = *puVar27;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar3;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      if (puVar26 == puVar27 + 5) break;\n      puVar27 = puVar27 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }" { (expression_statement "uVar3 = puVar27[-4];" (assignment_expression "uVar3 = puVar27[-4]" identifier = (subscript_expression "puVar27[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar27[-8];" (assignment_expression "uVar22 = puVar27[-8]" identifier = (subscript_expression "puVar27[-8]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = puVar27[-7];" (assignment_expression "uVar21 = puVar27[-7]" identifier = (subscript_expression "puVar27[-7]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar27[-6];" (assignment_expression "uVar20 = puVar27[-6]" identifier = (subscript_expression "puVar27[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar27[-5];" (assignment_expression "uVar19 = puVar27[-5]" identifier = (subscript_expression "puVar27[-5]" identifier [ number_literal ])) ;) (expression_statement "*puVar18 = puVar27[-9];" (assignment_expression "*puVar18 = puVar27[-9]" (pointer_expression "*puVar18" * identifier) = (subscript_expression "puVar27[-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] = uVar3;" (assignment_expression "puVar18[5] = uVar3" (subscript_expression "puVar18[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar3 = puVar27[-3];" (assignment_expression "uVar3 = puVar27[-3]" identifier = (subscript_expression "puVar27[-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] = uVar3;" (assignment_expression "puVar18[6] = uVar3" (subscript_expression "puVar18[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((undefined4 *)puVar27[-2] == puVar27) {\n        uVar20 = puVar27[1];\n        uVar19 = puVar27[2];\n        uVar3 = puVar27[3];\n        puVar18[9] = *puVar27;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar3;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }" if (parenthesized_expression "((undefined4 *)puVar27[-2] == puVar27)" ( (binary_expression "(undefined4 *)puVar27[-2] == puVar27" (cast_expression "(undefined4 *)puVar27[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n        uVar20 = puVar27[1];\n        uVar19 = puVar27[2];\n        uVar3 = puVar27[3];\n        puVar18[9] = *puVar27;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar3;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }" { (expression_statement "uVar20 = puVar27[1];" (assignment_expression "uVar20 = puVar27[1]" identifier = (subscript_expression "puVar27[1]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar27[2];" (assignment_expression "uVar19 = puVar27[2]" identifier = (subscript_expression "puVar27[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar27[3];" (assignment_expression "uVar3 = puVar27[3]" identifier = (subscript_expression "puVar27[3]" identifier [ number_literal ])) ;) (expression_statement "puVar18[9] = *puVar27;" (assignment_expression "puVar18[9] = *puVar27" (subscript_expression "puVar18[9]" identifier [ number_literal ]) = (pointer_expression "*puVar27" * 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] = uVar3;" (assignment_expression "puVar18[0xc] = uVar3" (subscript_expression "puVar18[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18[8] = puVar27[-1];" (assignment_expression "puVar18[8] = puVar27[-1]" (subscript_expression "puVar18[8]" identifier [ number_literal ]) = (subscript_expression "puVar27[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar27[-2] = puVar27;" (assignment_expression "puVar27[-2] = puVar27" (subscript_expression "puVar27[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-1] = 0;" (assignment_expression "puVar27[-1] = 0" (subscript_expression "puVar27[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar27 = 0;" (assignment_expression "*(undefined1 *)puVar27 = 0" (pointer_expression "*(undefined1 *)puVar27" * (cast_expression "(undefined1 *)puVar27" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }) (else_clause "else {\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }" else (compound_statement "{\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }" { (expression_statement "puVar18[7] = (undefined4 *)puVar27[-2];" (assignment_expression "puVar18[7] = (undefined4 *)puVar27[-2]" (subscript_expression "puVar18[7]" identifier [ number_literal ]) = (cast_expression "(undefined4 *)puVar27[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar18[9] = *puVar27;" (assignment_expression "puVar18[9] = *puVar27" (subscript_expression "puVar18[9]" identifier [ number_literal ]) = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "puVar18[8] = puVar27[-1];" (assignment_expression "puVar18[8] = puVar27[-1]" (subscript_expression "puVar18[8]" identifier [ number_literal ]) = (subscript_expression "puVar27[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar27[-2] = puVar27;" (assignment_expression "puVar27[-2] = puVar27" (subscript_expression "puVar27[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[-1] = 0;" (assignment_expression "puVar27[-1] = 0" (subscript_expression "puVar27[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar27 = 0;" (assignment_expression "*(undefined1 *)puVar27 = 0" (pointer_expression "*(undefined1 *)puVar27" * (cast_expression "(undefined1 *)puVar27" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }))) (if_statement "if (puVar26 == puVar27 + 5) break;" if (parenthesized_expression "(puVar26 == puVar27 + 5)" ( (binary_expression "puVar26 == puVar27 + 5" identifier == (binary_expression "puVar27 + 5" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar27 = puVar27 + 0xe;" (assignment_expression "puVar27 = puVar27 + 0xe" identifier = (binary_expression "puVar27 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar18 = puVar18 + 0xe;" (assignment_expression "puVar18 = puVar18 + 0xe" identifier = (binary_expression "puVar18 + 0xe" identifier + number_literal)) ;) })) (expression_statement "puVar27 = puVar5 + ((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;" (assignment_expression "puVar27 = puVar5 + ((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" identifier = (binary_expression "puVar5 + ((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" identifier + (binary_expression "((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" (parenthesized_expression "((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2)" ( (binary_expression "(((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2" (parenthesized_expression "(((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff)" ( (binary_expression "((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff" (binary_expression "((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7" (parenthesized_expression "((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3)" ( (binary_expression "(uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3" (call_expression "(uint)((int)puVar27 + (-0x24 - (int)puVar13))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar27 + (-0x24 - (int)puVar13))" ( (binary_expression "(int)puVar27 + (-0x24 - (int)puVar13)" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x24 - (int)puVar13)" ( (binary_expression "-0x24 - (int)puVar13" number_literal - (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) >> number_literal) )) * number_literal) & number_literal) )) + number_literal) )) * number_literal))) ;) })) (expression_statement "puVar6 = puVar26 + 9;" (assignment_expression "puVar6 = puVar26 + 9" identifier = (binary_expression "puVar26 + 9" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar27;" (assignment_expression "puVar9 = puVar27" identifier = identifier) ;) (expression_statement "puVar18 = puVar13;" (assignment_expression "puVar18 = puVar13" identifier = identifier) ;) (if_statement "if (puVar24 != puVar26) {\n    do {\n      while( true ) {\n        uVar25 = puVar6[-9];\n        uVar23 = puVar6[-8];\n        uVar22 = puVar6[-7];\n        uVar21 = puVar6[-6];\n        uVar20 = puVar6[-5];\n        uVar19 = puVar6[-4];\n        uVar3 = puVar6[-3];\n        puVar16 = (undefined4 *)puVar6[-2];\n        puVar9[7] = puVar9 + 9;\n        *puVar9 = uVar25;\n        puVar9[1] = uVar23;\n        puVar9[2] = uVar22;\n        puVar9[3] = uVar21;\n        puVar9[4] = uVar20;\n        puVar9[5] = uVar19;\n        puVar9[6] = uVar3;\n        if (puVar6 != puVar16) break;\n        uVar20 = puVar6[1];\n        uVar19 = puVar6[2];\n        uVar3 = puVar6[3];\n        puVar9[9] = *puVar6;\n        puVar9[10] = uVar20;\n        puVar9[0xb] = uVar19;\n        puVar9[0xc] = uVar3;\n        puVar16 = puVar6 + 5;\n        puVar6[-2] = puVar6;\n        *(undefined1 *)puVar6 = 0;\n        uVar3 = puVar6[-1];\n        puVar6[-1] = 0;\n        puVar9[8] = uVar3;\n        puVar6 = puVar6 + 0xe;\n        puVar9 = puVar9 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar3 = *puVar6;\n      uVar19 = puVar6[-1];\n      puVar9[7] = puVar16;\n      puVar9[9] = uVar3;\n      puVar16 = puVar6 + 5;\n      puVar6[-2] = puVar6;\n      puVar6[-1] = 0;\n      *(undefined1 *)puVar6 = 0;\n      puVar9[8] = uVar19;\n      puVar6 = puVar6 + 0xe;\n      puVar9 = puVar9 + 0xe;\n    } while (puVar24 != puVar16);\nLAB_001a5a78:\n    puVar27 = puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }" if (parenthesized_expression "(puVar24 != puVar26)" ( (binary_expression "puVar24 != puVar26" identifier != identifier) )) (compound_statement "{\n    do {\n      while( true ) {\n        uVar25 = puVar6[-9];\n        uVar23 = puVar6[-8];\n        uVar22 = puVar6[-7];\n        uVar21 = puVar6[-6];\n        uVar20 = puVar6[-5];\n        uVar19 = puVar6[-4];\n        uVar3 = puVar6[-3];\n        puVar16 = (undefined4 *)puVar6[-2];\n        puVar9[7] = puVar9 + 9;\n        *puVar9 = uVar25;\n        puVar9[1] = uVar23;\n        puVar9[2] = uVar22;\n        puVar9[3] = uVar21;\n        puVar9[4] = uVar20;\n        puVar9[5] = uVar19;\n        puVar9[6] = uVar3;\n        if (puVar6 != puVar16) break;\n        uVar20 = puVar6[1];\n        uVar19 = puVar6[2];\n        uVar3 = puVar6[3];\n        puVar9[9] = *puVar6;\n        puVar9[10] = uVar20;\n        puVar9[0xb] = uVar19;\n        puVar9[0xc] = uVar3;\n        puVar16 = puVar6 + 5;\n        puVar6[-2] = puVar6;\n        *(undefined1 *)puVar6 = 0;\n        uVar3 = puVar6[-1];\n        puVar6[-1] = 0;\n        puVar9[8] = uVar3;\n        puVar6 = puVar6 + 0xe;\n        puVar9 = puVar9 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar3 = *puVar6;\n      uVar19 = puVar6[-1];\n      puVar9[7] = puVar16;\n      puVar9[9] = uVar3;\n      puVar16 = puVar6 + 5;\n      puVar6[-2] = puVar6;\n      puVar6[-1] = 0;\n      *(undefined1 *)puVar6 = 0;\n      puVar9[8] = uVar19;\n      puVar6 = puVar6 + 0xe;\n      puVar9 = puVar9 + 0xe;\n    } while (puVar24 != puVar16);\nLAB_001a5a78:\n    puVar27 = puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }" { (do_statement "do {\n      while( true ) {\n        uVar25 = puVar6[-9];\n        uVar23 = puVar6[-8];\n        uVar22 = puVar6[-7];\n        uVar21 = puVar6[-6];\n        uVar20 = puVar6[-5];\n        uVar19 = puVar6[-4];\n        uVar3 = puVar6[-3];\n        puVar16 = (undefined4 *)puVar6[-2];\n        puVar9[7] = puVar9 + 9;\n        *puVar9 = uVar25;\n        puVar9[1] = uVar23;\n        puVar9[2] = uVar22;\n        puVar9[3] = uVar21;\n        puVar9[4] = uVar20;\n        puVar9[5] = uVar19;\n        puVar9[6] = uVar3;\n        if (puVar6 != puVar16) break;\n        uVar20 = puVar6[1];\n        uVar19 = puVar6[2];\n        uVar3 = puVar6[3];\n        puVar9[9] = *puVar6;\n        puVar9[10] = uVar20;\n        puVar9[0xb] = uVar19;\n        puVar9[0xc] = uVar3;\n        puVar16 = puVar6 + 5;\n        puVar6[-2] = puVar6;\n        *(undefined1 *)puVar6 = 0;\n        uVar3 = puVar6[-1];\n        puVar6[-1] = 0;\n        puVar9[8] = uVar3;\n        puVar6 = puVar6 + 0xe;\n        puVar9 = puVar9 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar3 = *puVar6;\n      uVar19 = puVar6[-1];\n      puVar9[7] = puVar16;\n      puVar9[9] = uVar3;\n      puVar16 = puVar6 + 5;\n      puVar6[-2] = puVar6;\n      puVar6[-1] = 0;\n      *(undefined1 *)puVar6 = 0;\n      puVar9[8] = uVar19;\n      puVar6 = puVar6 + 0xe;\n      puVar9 = puVar9 + 0xe;\n    } while (puVar24 != puVar16);" do (compound_statement "{\n      while( true ) {\n        uVar25 = puVar6[-9];\n        uVar23 = puVar6[-8];\n        uVar22 = puVar6[-7];\n        uVar21 = puVar6[-6];\n        uVar20 = puVar6[-5];\n        uVar19 = puVar6[-4];\n        uVar3 = puVar6[-3];\n        puVar16 = (undefined4 *)puVar6[-2];\n        puVar9[7] = puVar9 + 9;\n        *puVar9 = uVar25;\n        puVar9[1] = uVar23;\n        puVar9[2] = uVar22;\n        puVar9[3] = uVar21;\n        puVar9[4] = uVar20;\n        puVar9[5] = uVar19;\n        puVar9[6] = uVar3;\n        if (puVar6 != puVar16) break;\n        uVar20 = puVar6[1];\n        uVar19 = puVar6[2];\n        uVar3 = puVar6[3];\n        puVar9[9] = *puVar6;\n        puVar9[10] = uVar20;\n        puVar9[0xb] = uVar19;\n        puVar9[0xc] = uVar3;\n        puVar16 = puVar6 + 5;\n        puVar6[-2] = puVar6;\n        *(undefined1 *)puVar6 = 0;\n        uVar3 = puVar6[-1];\n        puVar6[-1] = 0;\n        puVar9[8] = uVar3;\n        puVar6 = puVar6 + 0xe;\n        puVar9 = puVar9 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar3 = *puVar6;\n      uVar19 = puVar6[-1];\n      puVar9[7] = puVar16;\n      puVar9[9] = uVar3;\n      puVar16 = puVar6 + 5;\n      puVar6[-2] = puVar6;\n      puVar6[-1] = 0;\n      *(undefined1 *)puVar6 = 0;\n      puVar9[8] = uVar19;\n      puVar6 = puVar6 + 0xe;\n      puVar9 = puVar9 + 0xe;\n    }" { (while_statement "while( true ) {\n        uVar25 = puVar6[-9];\n        uVar23 = puVar6[-8];\n        uVar22 = puVar6[-7];\n        uVar21 = puVar6[-6];\n        uVar20 = puVar6[-5];\n        uVar19 = puVar6[-4];\n        uVar3 = puVar6[-3];\n        puVar16 = (undefined4 *)puVar6[-2];\n        puVar9[7] = puVar9 + 9;\n        *puVar9 = uVar25;\n        puVar9[1] = uVar23;\n        puVar9[2] = uVar22;\n        puVar9[3] = uVar21;\n        puVar9[4] = uVar20;\n        puVar9[5] = uVar19;\n        puVar9[6] = uVar3;\n        if (puVar6 != puVar16) break;\n        uVar20 = puVar6[1];\n        uVar19 = puVar6[2];\n        uVar3 = puVar6[3];\n        puVar9[9] = *puVar6;\n        puVar9[10] = uVar20;\n        puVar9[0xb] = uVar19;\n        puVar9[0xc] = uVar3;\n        puVar16 = puVar6 + 5;\n        puVar6[-2] = puVar6;\n        *(undefined1 *)puVar6 = 0;\n        uVar3 = puVar6[-1];\n        puVar6[-1] = 0;\n        puVar9[8] = uVar3;\n        puVar6 = puVar6 + 0xe;\n        puVar9 = puVar9 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar25 = puVar6[-9];\n        uVar23 = puVar6[-8];\n        uVar22 = puVar6[-7];\n        uVar21 = puVar6[-6];\n        uVar20 = puVar6[-5];\n        uVar19 = puVar6[-4];\n        uVar3 = puVar6[-3];\n        puVar16 = (undefined4 *)puVar6[-2];\n        puVar9[7] = puVar9 + 9;\n        *puVar9 = uVar25;\n        puVar9[1] = uVar23;\n        puVar9[2] = uVar22;\n        puVar9[3] = uVar21;\n        puVar9[4] = uVar20;\n        puVar9[5] = uVar19;\n        puVar9[6] = uVar3;\n        if (puVar6 != puVar16) break;\n        uVar20 = puVar6[1];\n        uVar19 = puVar6[2];\n        uVar3 = puVar6[3];\n        puVar9[9] = *puVar6;\n        puVar9[10] = uVar20;\n        puVar9[0xb] = uVar19;\n        puVar9[0xc] = uVar3;\n        puVar16 = puVar6 + 5;\n        puVar6[-2] = puVar6;\n        *(undefined1 *)puVar6 = 0;\n        uVar3 = puVar6[-1];\n        puVar6[-1] = 0;\n        puVar9[8] = uVar3;\n        puVar6 = puVar6 + 0xe;\n        puVar9 = puVar9 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }" { (expression_statement "uVar25 = puVar6[-9];" (assignment_expression "uVar25 = puVar6[-9]" identifier = (subscript_expression "puVar6[-9]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = puVar6[-8];" (assignment_expression "uVar23 = puVar6[-8]" identifier = (subscript_expression "puVar6[-8]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar6[-7];" (assignment_expression "uVar22 = puVar6[-7]" identifier = (subscript_expression "puVar6[-7]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = puVar6[-6];" (assignment_expression "uVar21 = puVar6[-6]" identifier = (subscript_expression "puVar6[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = puVar6[-5];" (assignment_expression "uVar20 = puVar6[-5]" identifier = (subscript_expression "puVar6[-5]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar6[-4];" (assignment_expression "uVar19 = puVar6[-4]" identifier = (subscript_expression "puVar6[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar6[-3];" (assignment_expression "uVar3 = puVar6[-3]" identifier = (subscript_expression "puVar6[-3]" identifier [ number_literal ])) ;) (expression_statement "puVar16 = (undefined4 *)puVar6[-2];" (assignment_expression "puVar16 = (undefined4 *)puVar6[-2]" identifier = (cast_expression "(undefined4 *)puVar6[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar9[7] = puVar9 + 9;" (assignment_expression "puVar9[7] = puVar9 + 9" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (binary_expression "puVar9 + 9" identifier + number_literal)) ;) (expression_statement "*puVar9 = uVar25;" (assignment_expression "*puVar9 = uVar25" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "puVar9[1] = uVar23;" (assignment_expression "puVar9[1] = uVar23" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = uVar22;" (assignment_expression "puVar9[2] = uVar22" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[3] = uVar21;" (assignment_expression "puVar9[3] = uVar21" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[4] = uVar20;" (assignment_expression "puVar9[4] = uVar20" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[5] = uVar19;" (assignment_expression "puVar9[5] = uVar19" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[6] = uVar3;" (assignment_expression "puVar9[6] = uVar3" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar6 != puVar16) break;" if (parenthesized_expression "(puVar6 != puVar16)" ( (binary_expression "puVar6 != puVar16" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar20 = puVar6[1];" (assignment_expression "uVar20 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = puVar6[2];" (assignment_expression "uVar19 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar6[3];" (assignment_expression "uVar3 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "puVar9[9] = *puVar6;" (assignment_expression "puVar9[9] = *puVar6" (subscript_expression "puVar9[9]" identifier [ number_literal ]) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar9[10] = uVar20;" (assignment_expression "puVar9[10] = uVar20" (subscript_expression "puVar9[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[0xb] = uVar19;" (assignment_expression "puVar9[0xb] = uVar19" (subscript_expression "puVar9[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[0xc] = uVar3;" (assignment_expression "puVar9[0xc] = uVar3" (subscript_expression "puVar9[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16 = puVar6 + 5;" (assignment_expression "puVar16 = puVar6 + 5" identifier = (binary_expression "puVar6 + 5" identifier + number_literal)) ;) (expression_statement "puVar6[-2] = puVar6;" (assignment_expression "puVar6[-2] = puVar6" (subscript_expression "puVar6[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar3 = puVar6[-1];" (assignment_expression "uVar3 = puVar6[-1]" identifier = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[8] = uVar3;" (assignment_expression "puVar9[8] = uVar3" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = puVar6 + 0xe;" (assignment_expression "puVar6 = puVar6 + 0xe" identifier = (binary_expression "puVar6 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar9 + 0xe;" (assignment_expression "puVar9 = puVar9 + 0xe" identifier = (binary_expression "puVar9 + 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 "uVar3 = *puVar6;" (assignment_expression "uVar3 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "uVar19 = puVar6[-1];" (assignment_expression "uVar19 = puVar6[-1]" identifier = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[7] = puVar16;" (assignment_expression "puVar9[7] = puVar16" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[9] = uVar3;" (assignment_expression "puVar9[9] = uVar3" (subscript_expression "puVar9[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16 = puVar6 + 5;" (assignment_expression "puVar16 = puVar6 + 5" identifier = (binary_expression "puVar6 + 5" identifier + number_literal)) ;) (expression_statement "puVar6[-2] = puVar6;" (assignment_expression "puVar6[-2] = puVar6" (subscript_expression "puVar6[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar9[8] = uVar19;" (assignment_expression "puVar9[8] = uVar19" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = puVar6 + 0xe;" (assignment_expression "puVar6 = puVar6 + 0xe" identifier = (binary_expression "puVar6 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar9 + 0xe;" (assignment_expression "puVar9 = puVar9 + 0xe" identifier = (binary_expression "puVar9 + 0xe" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar24 != puVar16)" ( (binary_expression "puVar24 != puVar16" identifier != identifier) )) ;) (labeled_statement "LAB_001a5a78:\n    puVar27 = puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;" statement_identifier : (expression_statement "puVar27 = puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;" (assignment_expression "puVar27 = puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" identifier = (binary_expression "puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" identifier + (binary_expression "((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" (parenthesized_expression "((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1)" ( (binary_expression "(((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1" (parenthesized_expression "(((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff)" ( (binary_expression "((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff" (binary_expression "((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7" (parenthesized_expression "((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3)" ( (binary_expression "(uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3" (call_expression "(uint)((int)puVar24 + (-0x38 - (int)puVar26))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar24 + (-0x38 - (int)puVar26))" ( (binary_expression "(int)puVar24 + (-0x38 - (int)puVar26)" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x38 - (int)puVar26)" ( (binary_expression "-0x38 - (int)puVar26" number_literal - (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) >> number_literal) )) * number_literal) & number_literal) )) + number_literal) )) * number_literal))) ;)) })) (while_statement "while (puVar18 != puVar24) {\n    puVar26 = puVar18 + 7;\n    puVar6 = puVar18 + 9;\n    puVar18 = puVar18 + 0xe;\n    if ((undefined4 *)*puVar26 != puVar6) {\n      (**(code **)(pcVar28 + 0x28cb34))();\n    }\n  }" while (parenthesized_expression "(puVar18 != puVar24)" ( (binary_expression "puVar18 != puVar24" identifier != identifier) )) (compound_statement "{\n    puVar26 = puVar18 + 7;\n    puVar6 = puVar18 + 9;\n    puVar18 = puVar18 + 0xe;\n    if ((undefined4 *)*puVar26 != puVar6) {\n      (**(code **)(pcVar28 + 0x28cb34))();\n    }\n  }" { (expression_statement "puVar26 = puVar18 + 7;" (assignment_expression "puVar26 = puVar18 + 7" identifier = (binary_expression "puVar18 + 7" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar18 + 9;" (assignment_expression "puVar6 = 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 *)*puVar26 != puVar6) {\n      (**(code **)(pcVar28 + 0x28cb34))();\n    }" if (parenthesized_expression "((undefined4 *)*puVar26 != puVar6)" ( (binary_expression "(undefined4 *)*puVar26 != puVar6" (cast_expression "(undefined4 *)*puVar26" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar26" * 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 (puVar13 != (undefined4 *)0x0) {\n    (**(code **)(pcVar28 + 0x28cb34))(puVar13);\n  }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar28 + 0x28cb34))(puVar13);\n  }" { (expression_statement "(**(code **)(pcVar28 + 0x28cb34))(puVar13);" (call_expression "(**(code **)(pcVar28 + 0x28cb34))(puVar13)" (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 "(puVar13)" ( identifier ))) ;) })) (expression_statement "*puVar8 = puVar5;" (assignment_expression "*puVar8 = puVar5" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "puVar8[1] = puVar27;" (assignment_expression "puVar8[1] = puVar27" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = iVar2;" (assignment_expression "puVar8[2] = iVar2" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) IDENT (ERROR < LIT) , (ERROR IDENT > ( IDENT) (pointer_declarator * IDENT) , (ERROR IDENT (pointer_declarator * IDENT) ) { IDENT) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (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 (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (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 IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT < LIT) > (parenthesized_expression ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))) ;) (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) ) IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , 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 (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) < LIT) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) (labeled_statement statement_identifier : (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 = IDENT) ;) }))) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement ;)) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( ))) ;) })) (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 = (binary_expression (subscript_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 + (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 IDENT * 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 * IDENT) + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ 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 = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < 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 IDENT * 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 * IDENT) + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 = (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 = (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_file_header::do_sized_write<64,true>(Output_file_header *this,Output_file *param_1)\n\n{\n  undefined *puVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Output_file_header::" (identifier "gold") (: ":") (: ":") (identifier "Output_file_header") (: ":") (: ":")) (identifier "do_sized_write") (ERROR "<64" (< "<") (number_literal "64")) (, ",") (ERROR "true>(Output_file_header" (identifier "true") (> ">") (( "(") (identifier "Output_file_header")) (pointer_declarator "*this" (* "*") (identifier "this")) (, ",") (ERROR "Output_file *param_1)\n\n{\n  undefined" (identifier "Output_file") (pointer_declarator "*param_1" (* "*") (identifier "param_1")) () ")") ({ "{") (identifier "undefined")) (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "undefined2 uVar7;" (type_identifier "undefined2") (identifier "uVar7") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint extraout_v1;" (type_identifier "uint") (identifier "extraout_v1") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "undefined4 *puVar16;" (type_identifier "undefined4") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined *puVar17;" (type_identifier "undefined") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined4 *puVar18;" (type_identifier "undefined4") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (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 uVar23;" (type_identifier "undefined4") (identifier "uVar23") (; ";")) (declaration "undefined4 *puVar24;" (type_identifier "undefined4") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "undefined4 uVar25;" (type_identifier "undefined4") (identifier "uVar25") (; ";")) (declaration "undefined4 *puVar26;" (type_identifier "undefined4") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "Output_file_header *unaff_s1;" (type_identifier "Output_file_header") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "uint unaff_s2;" (type_identifier "uint") (identifier "unaff_s2") (; ";")) (declaration "undefined4 *puVar27;" (type_identifier "undefined4") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "code *pcVar28;" (type_identifier "code") (pointer_declarator "*pcVar28" (* "*") (identifier "pcVar28")) (; ";")) (declaration "code *pcVar29;" (type_identifier "code") (pointer_declarator "*pcVar29" (* "*") (identifier "pcVar29")) (; ";")) (declaration "undefined8 uVar30;" (type_identifier "undefined8") (identifier "uVar30") (; ";")) (if_statement "if (-1 < *(int *)(this + 0x20) << 2) goto LAB_001a4c58;" (if "if") (parenthesized_expression "(-1 < *(int *)(this + 0x20) << 2)" (( "(") (binary_expression "-1 < *(int *)(this + 0x20) << 2" (number_literal "-1") (< "<") (binary_expression "*(int *)(this + 0x20) << 2" (pointer_expression "*(int *)(this + 0x20)" (* "*") (cast_expression "(int *)(this + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "2"))) () ")")) (goto_statement "goto LAB_001a4c58;" (goto "goto") (statement_identifier "LAB_001a4c58") (; ";"))) (expression_statement "unaff_s2 = *(uint *)(this + 0x1c);" (assignment_expression "unaff_s2 = *(uint *)(this + 0x1c)" (identifier "unaff_s2") (= "=") (pointer_expression "*(uint *)(this + 0x1c)" (* "*") (cast_expression "(uint *)(this + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x1c)" (( "(") (binary_expression "this + 0x1c" (identifier "this") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(this + 0x18) == 0 && unaff_s2 == 0) {\n    iVar2 = *(int *)(param_1 + 8);\n    if (iVar2 < 1) goto LAB_001a4cbc;\n    do {\n      puVar26 = *(undefined4 **)(param_1 + 0x10);\n      *puVar26 = 0x7f454c46;\n      puVar17 = PTR_parameters_00432be0;\n      puVar26[1] = 0x2020100;\n      puVar26[2] = 0;\n      puVar26[3] = 0;\n      iVar2 = *(int *)(*(int *)puVar17 + 8);\n      puVar17 = PTR_s_alize_xindex_004323b4;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }\n        *(undefined2 *)(puVar26 + 4) = uVar7;\n        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);\n        puVar26[5] = 1;\n        *(short *)((int)puVar26 + 0x12) = (short)uVar3;\n        uVar30 = entry<64>(this);\n        *(undefined8 *)(puVar26 + 6) = uVar30;\n        iVar2 = *(int *)(this + 0x2c);\n        unaff_s1 = this;\n        if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }\n        puVar17 = puVar17 + 0x7868;\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);\n      }\n      param_1 = (Output_file *)&DAT_0000005c;\n      iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc);\nLAB_001a4cbc:\n    } while ((iVar2 == 0) && (0x3f < *(uint *)(param_1 + 0xc)));\n    (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n  }" (if "if") (parenthesized_expression "(*(int *)(this + 0x18) == 0 && unaff_s2 == 0)" (( "(") (binary_expression "*(int *)(this + 0x18) == 0 && unaff_s2 == 0" (binary_expression "*(int *)(this + 0x18) == 0" (pointer_expression "*(int *)(this + 0x18)" (* "*") (cast_expression "(int *)(this + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x18)" (( "(") (binary_expression "this + 0x18" (identifier "this") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "unaff_s2 == 0" (identifier "unaff_s2") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n    iVar2 = *(int *)(param_1 + 8);\n    if (iVar2 < 1) goto LAB_001a4cbc;\n    do {\n      puVar26 = *(undefined4 **)(param_1 + 0x10);\n      *puVar26 = 0x7f454c46;\n      puVar17 = PTR_parameters_00432be0;\n      puVar26[1] = 0x2020100;\n      puVar26[2] = 0;\n      puVar26[3] = 0;\n      iVar2 = *(int *)(*(int *)puVar17 + 8);\n      puVar17 = PTR_s_alize_xindex_004323b4;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }\n        *(undefined2 *)(puVar26 + 4) = uVar7;\n        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);\n        puVar26[5] = 1;\n        *(short *)((int)puVar26 + 0x12) = (short)uVar3;\n        uVar30 = entry<64>(this);\n        *(undefined8 *)(puVar26 + 6) = uVar30;\n        iVar2 = *(int *)(this + 0x2c);\n        unaff_s1 = this;\n        if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }\n        puVar17 = puVar17 + 0x7868;\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);\n      }\n      param_1 = (Output_file *)&DAT_0000005c;\n      iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc);\nLAB_001a4cbc:\n    } while ((iVar2 == 0) && (0x3f < *(uint *)(param_1 + 0xc)));\n    (*(code *)(PTR_LAB_004346b8 + 0x2b60))();\n  }" ({ "{") (expression_statement "iVar2 = *(int *)(param_1 + 8);" (assignment_expression "iVar2 = *(int *)(param_1 + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar2 < 1) goto LAB_001a4cbc;" (if "if") (parenthesized_expression "(iVar2 < 1)" (( "(") (binary_expression "iVar2 < 1" (identifier "iVar2") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_001a4cbc;" (goto "goto") (statement_identifier "LAB_001a4cbc") (; ";"))) (do_statement "do {\n      puVar26 = *(undefined4 **)(param_1 + 0x10);\n      *puVar26 = 0x7f454c46;\n      puVar17 = PTR_parameters_00432be0;\n      puVar26[1] = 0x2020100;\n      puVar26[2] = 0;\n      puVar26[3] = 0;\n      iVar2 = *(int *)(*(int *)puVar17 + 8);\n      puVar17 = PTR_s_alize_xindex_004323b4;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }\n        *(undefined2 *)(puVar26 + 4) = uVar7;\n        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);\n        puVar26[5] = 1;\n        *(short *)((int)puVar26 + 0x12) = (short)uVar3;\n        uVar30 = entry<64>(this);\n        *(undefined8 *)(puVar26 + 6) = uVar30;\n        iVar2 = *(int *)(this + 0x2c);\n        unaff_s1 = this;\n        if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }\n        puVar17 = puVar17 + 0x7868;\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);\n      }\n      param_1 = (Output_file *)&DAT_0000005c;\n      iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc);\nLAB_001a4cbc:\n    } while ((iVar2 == 0) && (0x3f < *(uint *)(param_1 + 0xc)));" (do "do") (compound_statement "{\n      puVar26 = *(undefined4 **)(param_1 + 0x10);\n      *puVar26 = 0x7f454c46;\n      puVar17 = PTR_parameters_00432be0;\n      puVar26[1] = 0x2020100;\n      puVar26[2] = 0;\n      puVar26[3] = 0;\n      iVar2 = *(int *)(*(int *)puVar17 + 8);\n      puVar17 = PTR_s_alize_xindex_004323b4;\n      if (iVar2 != 0) {\n        if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }\n        *(undefined2 *)(puVar26 + 4) = uVar7;\n        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);\n        puVar26[5] = 1;\n        *(short *)((int)puVar26 + 0x12) = (short)uVar3;\n        uVar30 = entry<64>(this);\n        *(undefined8 *)(puVar26 + 6) = uVar30;\n        iVar2 = *(int *)(this + 0x2c);\n        unaff_s1 = this;\n        if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }\n        puVar17 = puVar17 + 0x7868;\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);\n      }\n      param_1 = (Output_file *)&DAT_0000005c;\n      iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc);\nLAB_001a4cbc:\n    }" ({ "{") (expression_statement "puVar26 = *(undefined4 **)(param_1 + 0x10);" (assignment_expression "puVar26 = *(undefined4 **)(param_1 + 0x10)" (identifier "puVar26") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*puVar26 = 0x7f454c46;" (assignment_expression "*puVar26 = 0x7f454c46" (pointer_expression "*puVar26" (* "*") (identifier "puVar26")) (= "=") (number_literal "0x7f454c46")) (; ";")) (expression_statement "puVar17 = PTR_parameters_00432be0;" (assignment_expression "puVar17 = PTR_parameters_00432be0" (identifier "puVar17") (= "=") (identifier "PTR_parameters_00432be0")) (; ";")) (expression_statement "puVar26[1] = 0x2020100;" (assignment_expression "puVar26[1] = 0x2020100" (subscript_expression "puVar26[1]" (identifier "puVar26") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x2020100")) (; ";")) (expression_statement "puVar26[2] = 0;" (assignment_expression "puVar26[2] = 0" (subscript_expression "puVar26[2]" (identifier "puVar26") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar26[3] = 0;" (assignment_expression "puVar26[3] = 0" (subscript_expression "puVar26[3]" (identifier "puVar26") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = *(int *)(*(int *)puVar17 + 8);" (assignment_expression "iVar2 = *(int *)(*(int *)puVar17 + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(int *)puVar17 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar17 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar17 + 8)" (( "(") (binary_expression "*(int *)puVar17 + 8" (pointer_expression "*(int *)puVar17" (* "*") (cast_expression "(int *)puVar17" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar17"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar17 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar17 = PTR_s_alize_xindex_004323b4" (identifier "puVar17") (= "=") (identifier "PTR_s_alize_xindex_004323b4")) (; ";")) (if_statement "if (iVar2 != 0) {\n        if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }\n        *(undefined2 *)(puVar26 + 4) = uVar7;\n        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);\n        puVar26[5] = 1;\n        *(short *)((int)puVar26 + 0x12) = (short)uVar3;\n        uVar30 = entry<64>(this);\n        *(undefined8 *)(puVar26 + 6) = uVar30;\n        iVar2 = *(int *)(this + 0x2c);\n        unaff_s1 = this;\n        if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }\n        puVar17 = puVar17 + 0x7868;\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }\n        *(undefined2 *)(puVar26 + 4) = uVar7;\n        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);\n        puVar26[5] = 1;\n        *(short *)((int)puVar26 + 0x12) = (short)uVar3;\n        uVar30 = entry<64>(this);\n        *(undefined8 *)(puVar26 + 6) = uVar30;\n        iVar2 = *(int *)(this + 0x2c);\n        unaff_s1 = this;\n        if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }\n        puVar17 = puVar17 + 0x7868;\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);\n      }" ({ "{") (if_statement "if (*(char *)(iVar2 + 0x3195) == '\0') {\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }\n        else {\n          uVar7 = 1;\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar2 + 0x3195) == '\0')" (( "(") (binary_expression "*(char *)(iVar2 + 0x3195) == '\0'" (pointer_expression "*(char *)(iVar2 + 0x3195)" (* "*") (cast_expression "(char *)(iVar2 + 0x3195)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3195)" (( "(") (binary_expression "iVar2 + 0x3195" (identifier "iVar2") (+ "+") (number_literal "0x3195")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }\n        }" ({ "{") (if_statement "if (*(char *)(iVar2 + 0x1a29) == '\0') {\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }\n          else {\n            uVar7 = 3;\n          }" (if "if") (parenthesized_expression "(*(char *)(iVar2 + 0x1a29) == '\0')" (( "(") (binary_expression "*(char *)(iVar2 + 0x1a29) == '\0'" (pointer_expression "*(char *)(iVar2 + 0x1a29)" (* "*") (cast_expression "(char *)(iVar2 + 0x1a29)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1a29)" (( "(") (binary_expression "iVar2 + 0x1a29" (identifier "iVar2") (+ "+") (number_literal "0x1a29")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            uVar7 = 2;\n            if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }\n          }" ({ "{") (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (if_statement "if (*(char *)(iVar2 + 0x2939) != '\0') {\n              uVar7 = 3;\n            }" (if "if") (parenthesized_expression "(*(char *)(iVar2 + 0x2939) != '\0')" (( "(") (binary_expression "*(char *)(iVar2 + 0x2939) != '\0'" (pointer_expression "*(char *)(iVar2 + 0x2939)" (* "*") (cast_expression "(char *)(iVar2 + 0x2939)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2939)" (( "(") (binary_expression "iVar2 + 0x2939" (identifier "iVar2") (+ "+") (number_literal "0x2939")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              uVar7 = 3;\n            }" ({ "{") (expression_statement "uVar7 = 3;" (assignment_expression "uVar7 = 3" (identifier "uVar7") (= "=") (number_literal "3")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            uVar7 = 3;\n          }" (else "else") (compound_statement "{\n            uVar7 = 3;\n          }" ({ "{") (expression_statement "uVar7 = 3;" (assignment_expression "uVar7 = 3" (identifier "uVar7") (= "=") (number_literal "3")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          uVar7 = 1;\n        }" (else "else") (compound_statement "{\n          uVar7 = 1;\n        }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "*(undefined2 *)(puVar26 + 4) = uVar7;" (assignment_expression "*(undefined2 *)(puVar26 + 4) = uVar7" (pointer_expression "*(undefined2 *)(puVar26 + 4)" (* "*") (cast_expression "(undefined2 *)(puVar26 + 4)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 4)" (( "(") (binary_expression "puVar26 + 4" (identifier "puVar26") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(this + 0x24) + 4) + 8)" (( "(") (binary_expression "*(int *)(*(int *)(this + 0x24) + 4) + 8" (pointer_expression "*(int *)(*(int *)(this + 0x24) + 4)" (* "*") (cast_expression "(int *)(*(int *)(this + 0x24) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(this + 0x24) + 4)" (( "(") (binary_expression "*(int *)(this + 0x24) + 4" (pointer_expression "*(int *)(this + 0x24)" (* "*") (cast_expression "(int *)(this + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar26[5] = 1;" (assignment_expression "puVar26[5] = 1" (subscript_expression "puVar26[5]" (identifier "puVar26") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(short *)((int)puVar26 + 0x12) = (short)uVar3;" (assignment_expression "*(short *)((int)puVar26 + 0x12) = (short)uVar3" (pointer_expression "*(short *)((int)puVar26 + 0x12)" (* "*") (cast_expression "(short *)((int)puVar26 + 0x12)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar26 + 0x12)" (( "(") (binary_expression "(int)puVar26 + 0x12" (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (cast_expression "(short)uVar3" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar3"))) (; ";")) (expression_statement "uVar30 = entry<64>(this);" (assignment_expression "uVar30 = entry<64>(this)" (identifier "uVar30") (= "=") (binary_expression "entry<64>(this)" (binary_expression "entry<64" (identifier "entry") (< "<") (number_literal "64")) (> ">") (parenthesized_expression "(this)" (( "(") (identifier "this") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar26 + 6) = uVar30;" (assignment_expression "*(undefined8 *)(puVar26 + 6) = uVar30" (pointer_expression "*(undefined8 *)(puVar26 + 6)" (* "*") (cast_expression "(undefined8 *)(puVar26 + 6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 6)" (( "(") (binary_expression "puVar26 + 6" (identifier "puVar26") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar30")) (; ";")) (expression_statement "iVar2 = *(int *)(this + 0x2c);" (assignment_expression "iVar2 = *(int *)(this + 0x2c)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(this + 0x2c)" (* "*") (cast_expression "(int *)(this + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x2c)" (( "(") (binary_expression "this + 0x2c" (identifier "this") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "unaff_s1 = this;" (assignment_expression "unaff_s1 = this" (identifier "unaff_s1") (= "=") (identifier "this")) (; ";")) (if_statement "if (iVar2 == 0) {\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }\n        else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar26[9] = 0;\n          puVar26[8] = 0;\nLAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;\n          uVar3 = *(undefined4 *)(iVar2 + 0x1c);\n          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);\n          puVar26[0xb] = uVar3;\n          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);\n          *(undefined2 *)(puVar26 + 0xd) = 0x40;\n          puVar26[0xc] = uVar3;\n          if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }\n          *(undefined2 *)((int)puVar26 + 0x36) = 0;\n          *(undefined2 *)(puVar26 + 0xe) = 0;\nLAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;\n          puVar1 = PTR_do_out_shndx_00432f04;\n          iVar2 = *(int *)(this + 0x30);\n          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;\n          iVar14 = *(int *)(iVar2 + 0x10);\n          uVar10 = *(uint *)(iVar2 + 0x14);\n          uVar4 = uVar10;\n          if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }\n          uVar4 = iVar14 << 0x1a | uVar4 >> 6;\n          if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }\n          *(short *)(puVar26 + 0xf) = (short)uVar4;\n          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n          if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }\n        }" ({ "{") (expression_statement "puVar26[9] = 0;" (assignment_expression "puVar26[9] = 0" (subscript_expression "puVar26[9]" (identifier "puVar26") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar26[8] = 0;" (assignment_expression "puVar26[8] = 0" (subscript_expression "puVar26[8]" (identifier "puVar26") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_001a4a64:\n          iVar2 = *(int *)(this + 0x30);" (statement_identifier "LAB_001a4a64") (: ":") (expression_statement "iVar2 = *(int *)(this + 0x30);" (assignment_expression "iVar2 = *(int *)(this + 0x30)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(this + 0x30)" (* "*") (cast_expression "(int *)(this + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x30)" (( "(") (binary_expression "this + 0x30" (identifier "this") (+ "+") (number_literal "0x30")) () ")"))))) (; ";"))) (if_statement "if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;" (if "if") (parenthesized_expression "(-1 < *(int *)(iVar2 + 0x20) << 2)" (( "(") (binary_expression "-1 < *(int *)(iVar2 + 0x20) << 2" (number_literal "-1") (< "<") (binary_expression "*(int *)(iVar2 + 0x20) << 2" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "2"))) () ")")) (goto_statement "goto LAB_001a4c58;" (goto "goto") (statement_identifier "LAB_001a4c58") (; ";"))) (expression_statement "uVar3 = *(undefined4 *)(iVar2 + 0x1c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar2 + 0x1c)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "puVar26[10] = *(undefined4 *)(iVar2 + 0x18);" (assignment_expression "puVar26[10] = *(undefined4 *)(iVar2 + 0x18)" (subscript_expression "puVar26[10]" (identifier "puVar26") ([ "[") (number_literal "10") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "puVar26[0xb] = uVar3;" (assignment_expression "puVar26[0xb] = uVar3" (subscript_expression "puVar26[0xb]" (identifier "puVar26") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(this + 0x24) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(this + 0x24) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(this + 0x24) + 8)" (( "(") (binary_expression "*(int *)(this + 0x24) + 8" (pointer_expression "*(int *)(this + 0x24)" (* "*") (cast_expression "(int *)(this + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined2 *)(puVar26 + 0xd) = 0x40;" (assignment_expression "*(undefined2 *)(puVar26 + 0xd) = 0x40" (pointer_expression "*(undefined2 *)(puVar26 + 0xd)" (* "*") (cast_expression "(undefined2 *)(puVar26 + 0xd)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0xd)" (( "(") (binary_expression "puVar26 + 0xd" (identifier "puVar26") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (number_literal "0x40")) (; ";")) (expression_statement "puVar26[0xc] = uVar3;" (assignment_expression "puVar26[0xc] = uVar3" (subscript_expression "puVar26[0xc]" (identifier "puVar26") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (if_statement "if (*(int *)(this + 0x2c) != 0) {\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }" (if "if") (parenthesized_expression "(*(int *)(this + 0x2c) != 0)" (( "(") (binary_expression "*(int *)(this + 0x2c) != 0" (pointer_expression "*(int *)(this + 0x2c)" (* "*") (cast_expression "(int *)(this + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x2c)" (( "(") (binary_expression "this + 0x2c" (identifier "this") (+ "+") (number_literal "0x2c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;\n            iVar2 = *(int *)(this + 0x2c);\n            if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }\n            goto LAB_001a4c74;\n          }" ({ "{") (expression_statement "*(undefined2 *)((int)puVar26 + 0x36) = 0x38;" (assignment_expression "*(undefined2 *)((int)puVar26 + 0x36) = 0x38" (pointer_expression "*(undefined2 *)((int)puVar26 + 0x36)" (* "*") (cast_expression "(undefined2 *)((int)puVar26 + 0x36)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar26 + 0x36)" (( "(") (binary_expression "(int)puVar26 + 0x36" (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26")) (+ "+") (number_literal "0x36")) () ")")))) (= "=") (number_literal "0x38")) (; ";")) (expression_statement "iVar2 = *(int *)(this + 0x2c);" (assignment_expression "iVar2 = *(int *)(this + 0x2c)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(this + 0x2c)" (* "*") (cast_expression "(int *)(this + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x2c)" (( "(") (binary_expression "this + 0x2c" (identifier "this") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x20) << 1 < 0) {\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x20) << 1 < 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x20) << 1 < 0" (binary_expression "*(int *)(iVar2 + 0x20) << 1" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "1")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              (*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);\n              uVar7 = 0xffff;\n              if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }\n              *(undefined2 *)(puVar26 + 0xe) = uVar7;\n              goto LAB_001a4aec;\n            }" ({ "{") (expression_statement "(*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);" (call_expression "(*(code *)PTR_FUN_00432fc8)\n                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38)" (parenthesized_expression "(*(code *)PTR_FUN_00432fc8)" (( "(") (pointer_expression "*(code *)PTR_FUN_00432fc8" (* "*") (cast_expression "(code *)PTR_FUN_00432fc8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00432fc8"))) () ")")) (argument_list "(*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38)" (( "(") (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar2 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0x38") () ")"))) (; ";")) (expression_statement "uVar7 = 0xffff;" (assignment_expression "uVar7 = 0xffff" (identifier "uVar7") (= "=") (number_literal "0xffff")) (; ";")) (if_statement "if (extraout_v1 < 0x10000) {\n                uVar7 = (undefined2)extraout_v1;\n              }" (if "if") (parenthesized_expression "(extraout_v1 < 0x10000)" (( "(") (binary_expression "extraout_v1 < 0x10000" (identifier "extraout_v1") (< "<") (number_literal "0x10000")) () ")")) (compound_statement "{\n                uVar7 = (undefined2)extraout_v1;\n              }" ({ "{") (expression_statement "uVar7 = (undefined2)extraout_v1;" (assignment_expression "uVar7 = (undefined2)extraout_v1" (identifier "uVar7") (= "=") (cast_expression "(undefined2)extraout_v1" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (identifier "extraout_v1"))) (; ";")) (} "}"))) (expression_statement "*(undefined2 *)(puVar26 + 0xe) = uVar7;" (assignment_expression "*(undefined2 *)(puVar26 + 0xe) = uVar7" (pointer_expression "*(undefined2 *)(puVar26 + 0xe)" (* "*") (cast_expression "(undefined2 *)(puVar26 + 0xe)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0xe)" (( "(") (binary_expression "puVar26 + 0xe" (identifier "puVar26") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (goto_statement "goto LAB_001a4aec;" (goto "goto") (statement_identifier "LAB_001a4aec") (; ";")) (} "}"))) (goto_statement "goto LAB_001a4c74;" (goto "goto") (statement_identifier "LAB_001a4c74") (; ";")) (} "}"))) (expression_statement "*(undefined2 *)((int)puVar26 + 0x36) = 0;" (assignment_expression "*(undefined2 *)((int)puVar26 + 0x36) = 0" (pointer_expression "*(undefined2 *)((int)puVar26 + 0x36)" (* "*") (cast_expression "(undefined2 *)((int)puVar26 + 0x36)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar26 + 0x36)" (( "(") (binary_expression "(int)puVar26 + 0x36" (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26")) (+ "+") (number_literal "0x36")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(puVar26 + 0xe) = 0;" (assignment_expression "*(undefined2 *)(puVar26 + 0xe) = 0" (pointer_expression "*(undefined2 *)(puVar26 + 0xe)" (* "*") (cast_expression "(undefined2 *)(puVar26 + 0xe)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0xe)" (( "(") (binary_expression "puVar26 + 0xe" (identifier "puVar26") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_001a4aec:\n          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;" (statement_identifier "LAB_001a4aec") (: ":") (expression_statement "*(undefined2 *)((int)puVar26 + 0x3a) = 0x40;" (assignment_expression "*(undefined2 *)((int)puVar26 + 0x3a) = 0x40" (pointer_expression "*(undefined2 *)((int)puVar26 + 0x3a)" (* "*") (cast_expression "(undefined2 *)((int)puVar26 + 0x3a)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar26 + 0x3a)" (( "(") (binary_expression "(int)puVar26 + 0x3a" (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26")) (+ "+") (number_literal "0x3a")) () ")")))) (= "=") (number_literal "0x40")) (; ";"))) (expression_statement "puVar1 = PTR_do_out_shndx_00432f04;" (assignment_expression "puVar1 = PTR_do_out_shndx_00432f04" (identifier "puVar1") (= "=") (identifier "PTR_do_out_shndx_00432f04")) (; ";")) (expression_statement "iVar2 = *(int *)(this + 0x30);" (assignment_expression "iVar2 = *(int *)(this + 0x30)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(this + 0x30)" (* "*") (cast_expression "(int *)(this + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x30)" (( "(") (binary_expression "this + 0x30" (identifier "this") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;" (if "if") (parenthesized_expression "(-1 < *(int *)(iVar2 + 0x20) << 1)" (( "(") (binary_expression "-1 < *(int *)(iVar2 + 0x20) << 1" (number_literal "-1") (< "<") (binary_expression "*(int *)(iVar2 + 0x20) << 1" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "1"))) () ")")) (goto_statement "goto LAB_001a4c74;" (goto "goto") (statement_identifier "LAB_001a4c74") (; ";"))) (expression_statement "iVar14 = *(int *)(iVar2 + 0x10);" (assignment_expression "iVar14 = *(int *)(iVar2 + 0x10)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar2 + 0x10)" (* "*") (cast_expression "(int *)(iVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(uint *)(iVar2 + 0x14);" (assignment_expression "uVar10 = *(uint *)(iVar2 + 0x14)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(iVar2 + 0x14)" (* "*") (cast_expression "(uint *)(iVar2 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar4 = uVar10;" (assignment_expression "uVar4 = uVar10" (identifier "uVar4") (= "=") (identifier "uVar10")) (; ";")) (if_statement "if (iVar14 < 0) {\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }" (if "if") (parenthesized_expression "(iVar14 < 0)" (( "(") (binary_expression "iVar14 < 0" (identifier "iVar14") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            uVar4 = uVar10 + 0x3f;\n            iVar14 = (uint)(uVar4 < uVar10) + iVar14;\n          }" ({ "{") (expression_statement "uVar4 = uVar10 + 0x3f;" (assignment_expression "uVar4 = uVar10 + 0x3f" (identifier "uVar4") (= "=") (binary_expression "uVar10 + 0x3f" (identifier "uVar10") (+ "+") (number_literal "0x3f"))) (; ";")) (expression_statement "iVar14 = (uint)(uVar4 < uVar10) + iVar14;" (assignment_expression "iVar14 = (uint)(uVar4 < uVar10) + iVar14" (identifier "iVar14") (= "=") (binary_expression "(uint)(uVar4 < uVar10) + iVar14" (call_expression "(uint)(uVar4 < uVar10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar4 < uVar10)" (( "(") (binary_expression "uVar4 < uVar10" (identifier "uVar4") (< "<") (identifier "uVar10")) () ")"))) (+ "+") (identifier "iVar14"))) (; ";")) (} "}"))) (expression_statement "uVar4 = iVar14 << 0x1a | uVar4 >> 6;" (assignment_expression "uVar4 = iVar14 << 0x1a | uVar4 >> 6" (identifier "uVar4") (= "=") (binary_expression "iVar14 << 0x1a | uVar4 >> 6" (binary_expression "iVar14 << 0x1a" (identifier "iVar14") (<< "<<") (number_literal "0x1a")) (| "|") (binary_expression "uVar4 >> 6" (identifier "uVar4") (>> ">>") (number_literal "6")))) (; ";")) (if_statement "if (0xfeff < uVar4) {\n            uVar4 = unaff_s2;\n          }" (if "if") (parenthesized_expression "(0xfeff < uVar4)" (( "(") (binary_expression "0xfeff < uVar4" (number_literal "0xfeff") (< "<") (identifier "uVar4")) () ")")) (compound_statement "{\n            uVar4 = unaff_s2;\n          }" ({ "{") (expression_statement "uVar4 = unaff_s2;" (assignment_expression "uVar4 = unaff_s2" (identifier "uVar4") (= "=") (identifier "unaff_s2")) (; ";")) (} "}"))) (expression_statement "*(short *)(puVar26 + 0xf) = (short)uVar4;" (assignment_expression "*(short *)(puVar26 + 0xf) = (short)uVar4" (pointer_expression "*(short *)(puVar26 + 0xf)" (* "*") (cast_expression "(short *)(puVar26 + 0xf)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0xf)" (( "(") (binary_expression "puVar26 + 0xf" (identifier "puVar26") (+ "+") (number_literal "0xf")) () ")")))) (= "=") (cast_expression "(short)uVar4" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar4"))) (; ";")) (expression_statement "pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);" (assignment_expression "pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(**(int **)(this + 0x34) + 0x2c)" (* "*") (cast_expression "(code **)(**(int **)(this + 0x34) + 0x2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(this + 0x34) + 0x2c)" (( "(") (binary_expression "**(int **)(this + 0x34) + 0x2c" (pointer_expression "**(int **)(this + 0x34)" (* "*") (pointer_expression "*(int **)(this + 0x34)" (* "*") (cast_expression "(int **)(this + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x34)" (( "(") (binary_expression "this + 0x34" (identifier "this") (+ "+") (number_literal "0x34")) () ")"))))) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (if_statement "if (pcVar28 == (code *)puVar1) {\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }\n          else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }" (if "if") (parenthesized_expression "(pcVar28 == (code *)puVar1)" (( "(") (binary_expression "pcVar28 == (code *)puVar1" (identifier "pcVar28") (== "==") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (compound_statement "{\n            uVar4 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (uVar4 != 0xffffffff) goto LAB_001a4b68;\n          }" ({ "{") (expression_statement "uVar4 = (*(int **)(this + 0x34))[0x19];" (assignment_expression "uVar4 = (*(int **)(this + 0x34))[0x19]" (identifier "uVar4") (= "=") (subscript_expression "(*(int **)(this + 0x34))[0x19]" (parenthesized_expression "(*(int **)(this + 0x34))" (( "(") (pointer_expression "*(int **)(this + 0x34)" (* "*") (cast_expression "(int **)(this + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x34)" (( "(") (binary_expression "this + 0x34" (identifier "this") (+ "+") (number_literal "0x34")) () ")")))) () ")")) ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "puVar17 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar17 = PTR_s_alize_xindex_004323b4" (identifier "puVar17") (= "=") (identifier "PTR_s_alize_xindex_004323b4")) (; ";")) (if_statement "if (uVar4 != 0xffffffff) goto LAB_001a4b68;" (if "if") (parenthesized_expression "(uVar4 != 0xffffffff)" (( "(") (binary_expression "uVar4 != 0xffffffff" (identifier "uVar4") (!= "!=") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_001a4b68;" (goto "goto") (statement_identifier "LAB_001a4b68") (; ";"))) (} "}")) (else_clause "else {\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }" (else "else") (compound_statement "{\n            uVar4 = (*pcVar28)();\nLAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);\n            if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }\n            iVar2 = (*(int **)(this + 0x34))[0x19];\n            puVar17 = PTR_s_alize_xindex_004323b4;\n            if (iVar2 != -1) goto LAB_001a4b98;\n          }" ({ "{") (expression_statement "uVar4 = (*pcVar28)();" (assignment_expression "uVar4 = (*pcVar28)()" (identifier "uVar4") (= "=") (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (labeled_statement "LAB_001a4b68:\n            if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }" (statement_identifier "LAB_001a4b68") (: ":") (if_statement "if (0xfeff < uVar4) {\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }" (if "if") (parenthesized_expression "(0xfeff < uVar4)" (( "(") (binary_expression "0xfeff < uVar4" (number_literal "0xfeff") (< "<") (identifier "uVar4")) () ")")) (compound_statement "{\n              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }" ({ "{") (expression_statement "*(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;" (assignment_expression "*(undefined2 *)((int)puVar26 + 0x3e) = 0xffff" (pointer_expression "*(undefined2 *)((int)puVar26 + 0x3e)" (* "*") (cast_expression "(undefined2 *)((int)puVar26 + 0x3e)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar26 + 0x3e)" (( "(") (binary_expression "(int)puVar26 + 0x3e" (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26")) (+ "+") (number_literal "0x3e")) () ")")))) (= "=") (number_literal "0xffff")) (; ";")) (expression_statement "(**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);" (call_expression "(**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40)" (parenthesized_expression "(**(code **)(**(int **)(this + 0x24) + 0x20))" (( "(") (pointer_expression "**(code **)(**(int **)(this + 0x24) + 0x20)" (* "*") (pointer_expression "*(code **)(**(int **)(this + 0x24) + 0x20)" (* "*") (cast_expression "(code **)(**(int **)(this + 0x24) + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(this + 0x24) + 0x20)" (( "(") (binary_expression "**(int **)(this + 0x24) + 0x20" (pointer_expression "**(int **)(this + 0x24)" (* "*") (pointer_expression "*(int **)(this + 0x24)" (* "*") (cast_expression "(int **)(this + 0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")"))))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(*(int **)(this + 0x24),puVar26,0x40)" (( "(") (pointer_expression "*(int **)(this + 0x24)" (* "*") (cast_expression "(int **)(this + 0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (identifier "puVar26") (, ",") (number_literal "0x40") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);" (assignment_expression "pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(**(int **)(this + 0x34) + 0x2c)" (* "*") (cast_expression "(code **)(**(int **)(this + 0x34) + 0x2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(this + 0x34) + 0x2c)" (( "(") (binary_expression "**(int **)(this + 0x34) + 0x2c" (pointer_expression "**(int **)(this + 0x34)" (* "*") (pointer_expression "*(int **)(this + 0x34)" (* "*") (cast_expression "(int **)(this + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x34)" (( "(") (binary_expression "this + 0x34" (identifier "this") (+ "+") (number_literal "0x34")) () ")"))))) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (if_statement "if (pcVar28 != (code *)puVar1) {\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }" (if "if") (parenthesized_expression "(pcVar28 != (code *)puVar1)" (( "(") (binary_expression "pcVar28 != (code *)puVar1" (identifier "pcVar28") (!= "!=") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (compound_statement "{\n              iVar2 = (*pcVar28)();\nLAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;\n                    \n                    \n              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);\n              return;\n            }" ({ "{") (expression_statement "iVar2 = (*pcVar28)();" (assignment_expression "iVar2 = (*pcVar28)()" (identifier "iVar2") (= "=") (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (labeled_statement "LAB_001a4b98:\n              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;" (statement_identifier "LAB_001a4b98") (: ":") (expression_statement "*(short *)((int)puVar26 + 0x3e) = (short)iVar2;" (assignment_expression "*(short *)((int)puVar26 + 0x3e) = (short)iVar2" (pointer_expression "*(short *)((int)puVar26 + 0x3e)" (* "*") (cast_expression "(short *)((int)puVar26 + 0x3e)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar26 + 0x3e)" (( "(") (binary_expression "(int)puVar26 + 0x3e" (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26")) (+ "+") (number_literal "0x3e")) () ")")))) (= "=") (cast_expression "(short)iVar2" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "iVar2"))) (; ";"))) (expression_statement "(**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);" (call_expression "(**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40)" (parenthesized_expression "(**(code **)(**(int **)(this + 0x24) + 0x20))" (( "(") (pointer_expression "**(code **)(**(int **)(this + 0x24) + 0x20)" (* "*") (pointer_expression "*(code **)(**(int **)(this + 0x24) + 0x20)" (* "*") (cast_expression "(code **)(**(int **)(this + 0x24) + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(this + 0x24) + 0x20)" (( "(") (binary_expression "**(int **)(this + 0x24) + 0x20" (pointer_expression "**(int **)(this + 0x24)" (* "*") (pointer_expression "*(int **)(this + 0x24)" (* "*") (cast_expression "(int **)(this + 0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")"))))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(*(int **)(this + 0x24),puVar26,0x40)" (( "(") (pointer_expression "*(int **)(this + 0x24)" (* "*") (cast_expression "(int **)(this + 0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (identifier "puVar26") (, ",") (number_literal "0x40") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar2 = (*(int **)(this + 0x34))[0x19];" (assignment_expression "iVar2 = (*(int **)(this + 0x34))[0x19]" (identifier "iVar2") (= "=") (subscript_expression "(*(int **)(this + 0x34))[0x19]" (parenthesized_expression "(*(int **)(this + 0x34))" (( "(") (pointer_expression "*(int **)(this + 0x34)" (* "*") (cast_expression "(int **)(this + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x34)" (( "(") (binary_expression "this + 0x34" (identifier "this") (+ "+") (number_literal "0x34")) () ")")))) () ")")) ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "puVar17 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar17 = PTR_s_alize_xindex_004323b4" (identifier "puVar17") (= "=") (identifier "PTR_s_alize_xindex_004323b4")) (; ";")) (if_statement "if (iVar2 != -1) goto LAB_001a4b98;" (if "if") (parenthesized_expression "(iVar2 != -1)" (( "(") (binary_expression "iVar2 != -1" (identifier "iVar2") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_001a4b98;" (goto "goto") (statement_identifier "LAB_001a4b98") (; ";"))) (} "}")))) (} "}")) (else_clause "else {\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }" (else "else") (compound_statement "{\n          if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }\nLAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );\nLAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);\n          this = unaff_s1;\n        }" ({ "{") (if_statement "if (*(int *)(iVar2 + 0x20) << 2 < 0) {\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x20) << 2 < 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x20) << 2 < 0" (binary_expression "*(int *)(iVar2 + 0x20) << 2" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "2")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            uVar3 = *(undefined4 *)(iVar2 + 0x18);\n            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);\n            puVar26[8] = uVar3;\n            goto LAB_001a4a64;\n          }" ({ "{") (expression_statement "uVar3 = *(undefined4 *)(iVar2 + 0x18);" (assignment_expression "uVar3 = *(undefined4 *)(iVar2 + 0x18)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);" (assignment_expression "puVar26[9] = *(undefined4 *)(iVar2 + 0x1c)" (subscript_expression "puVar26[9]" (identifier "puVar26") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "puVar26[8] = uVar3;" (assignment_expression "puVar26[8] = uVar3" (subscript_expression "puVar26[8]" (identifier "puVar26") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (goto_statement "goto LAB_001a4a64;" (goto "goto") (statement_identifier "LAB_001a4a64") (; ";")) (} "}"))) (labeled_statement "LAB_001a4c58:\n          (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );" (statement_identifier "LAB_001a4c58") (: ":") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    );" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    )" (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,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818\n                    )" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0xe3") (, ",") (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7818" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "0x7818")) () ")"))) (; ";"))) (labeled_statement "LAB_001a4c74:\n          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;" (statement_identifier "LAB_001a4c74") (: ":") (expression_statement "puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;" (assignment_expression "puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894" (identifier "puVar17") (= "=") (binary_expression "PTR_s_alize_xindex_004323b4 + 0x7894" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "0x7894"))) (; ";"))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,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 "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0xcf") (, ",") (identifier "puVar17") () ")"))) (; ";")) (expression_statement "this = unaff_s1;" (assignment_expression "this = unaff_s1" (identifier "this") (= "=") (identifier "unaff_s1")) (; ";")) (} "}")))) (expression_statement "puVar17 = puVar17 + 0x7868;" (assignment_expression "puVar17 = puVar17 + 0x7868" (identifier "puVar17") (= "=") (binary_expression "puVar17 + 0x7868" (identifier "puVar17") (+ "+") (number_literal "0x7868"))) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,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 "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0x1043") (, ",") (identifier "puVar17") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1 = (Output_file *)&DAT_0000005c;" (assignment_expression "param_1 = (Output_file *)&DAT_0000005c" (identifier "param_1") (= "=") (cast_expression "(Output_file *)&DAT_0000005c" (( "(") (type_descriptor "Output_file *" (type_identifier "Output_file") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000005c" (& "&") (identifier "DAT_0000005c")))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc);" (assignment_expression "iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc)" (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 + -0x5cec,0x5c,puVar17 + 0x78cc)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x5cec")) (, ",") (number_literal "0x5c") (, ",") (binary_expression "puVar17 + 0x78cc" (identifier "puVar17") (+ "+") (number_literal "0x78cc")) () ")")))) (; ";")) (labeled_statement "LAB_001a4cbc:" (statement_identifier "LAB_001a4cbc") (: ":") (expression_statement "" (; ""))) (} "}")) (while "while") (parenthesized_expression "((iVar2 == 0) && (0x3f < *(uint *)(param_1 + 0xc)))" (( "(") (binary_expression "(iVar2 == 0) && (0x3f < *(uint *)(param_1 + 0xc))" (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(0x3f < *(uint *)(param_1 + 0xc))" (( "(") (binary_expression "0x3f < *(uint *)(param_1 + 0xc)" (number_literal "0x3f") (< "<") (pointer_expression "*(uint *)(param_1 + 0xc)" (* "*") (cast_expression "(uint *)(param_1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) () ")"))) () ")")) (; ";")) (expression_statement "(*(code *)(PTR_LAB_004346b8 + 0x2b60))();" (call_expression "(*(code *)(PTR_LAB_004346b8 + 0x2b60))()" (parenthesized_expression "(*(code *)(PTR_LAB_004346b8 + 0x2b60))" (( "(") (pointer_expression "*(code *)(PTR_LAB_004346b8 + 0x2b60)" (* "*") (cast_expression "(code *)(PTR_LAB_004346b8 + 0x2b60)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_004346b8 + 0x2b60)" (( "(") (binary_expression "PTR_LAB_004346b8 + 0x2b60" (identifier "PTR_LAB_004346b8") (+ "+") (number_literal "0x2b60")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar15 = (int *)&DAT_000001ff;" (assignment_expression "piVar15 = (int *)&DAT_000001ff" (identifier "piVar15") (= "=") (cast_expression "(int *)&DAT_000001ff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000001ff" (& "&") (identifier "DAT_000001ff")))) (; ";")) (expression_statement "piVar11 = (int *)(PTR_s_alize_xindex_004323b4 + 0x59f0);" (assignment_expression "piVar11 = (int *)(PTR_s_alize_xindex_004323b4 + 0x59f0)" (identifier "piVar11") (= "=") (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + 0x59f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + 0x59f0)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + 0x59f0" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "0x59f0")) () ")")))) (; ";")) (expression_statement "puVar17 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar17 = PTR_do_gold_unreachable_004323c4" (identifier "puVar17") (= "=") (identifier "PTR_do_gold_unreachable_004323c4")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar11,0x1ff,PTR_s_alize_xindex_004323b4 + 0x769c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar11,0x1ff,PTR_s_alize_xindex_004323b4 + 0x769c)" (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 "(piVar11,0x1ff,PTR_s_alize_xindex_004323b4 + 0x769c)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x1ff") (, ",") (binary_expression "PTR_s_alize_xindex_004323b4 + 0x769c" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "0x769c")) () ")"))) (; ";")) (expression_statement "uVar4 = piVar11[3] + 5;" (assignment_expression "uVar4 = piVar11[3] + 5" (identifier "uVar4") (= "=") (binary_expression "piVar11[3] + 5" (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "5"))) (; ";")) (if_statement "if (uVar4 < 5) {\n                    \n                    \n    (*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0))();\n    return;\n  }" (if "if") (parenthesized_expression "(uVar4 < 5)" (( "(") (binary_expression "uVar4 < 5" (identifier "uVar4") (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                    \n                    \n    (*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0))();\n    return;\n  }" ({ "{") (expression_statement "(*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0))();" (call_expression "(*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0))()" (parenthesized_expression "(*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0))" (( "(") (pointer_expression "*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0)" (* "*") (cast_expression "(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0)" (( "(") (binary_expression "puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0" (binary_expression "puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4)" (identifier "puVar17") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4)" (( "(") (binary_expression "*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4" (binary_expression "*(int *)(puVar17 + 0x28d6b4) + 0x5dbc" (pointer_expression "*(int *)(puVar17 + 0x28d6b4)" (* "*") (cast_expression "(int *)(puVar17 + 0x28d6b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x28d6b4)" (( "(") (binary_expression "puVar17 + 0x28d6b4" (identifier "puVar17") (+ "+") (number_literal "0x28d6b4")) () ")")))) (+ "+") (number_literal "0x5dbc")) (+ "+") (binary_expression "uVar4 * 4" (identifier "uVar4") (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x2954d0")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(int *)(*piVar11 + 0x20) < 0) {\n    uVar4 = piVar11[3] + *(int *)(*piVar11 + 0xc);\n    uVar10 = piVar11[2];\n    piVar15[1] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n    *piVar15 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(*piVar11 + 0x20) < 0)" (( "(") (binary_expression "*(int *)(*piVar11 + 0x20) < 0" (pointer_expression "*(int *)(*piVar11 + 0x20)" (* "*") (cast_expression "(int *)(*piVar11 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar11 + 0x20)" (( "(") (binary_expression "*piVar11 + 0x20" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "0x20")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    uVar4 = piVar11[3] + *(int *)(*piVar11 + 0xc);\n    uVar10 = piVar11[2];\n    piVar15[1] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n    *piVar15 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    return;\n  }" ({ "{") (expression_statement "uVar4 = piVar11[3] + *(int *)(*piVar11 + 0xc);" (assignment_expression "uVar4 = piVar11[3] + *(int *)(*piVar11 + 0xc)" (identifier "uVar4") (= "=") (binary_expression "piVar11[3] + *(int *)(*piVar11 + 0xc)" (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")) (+ "+") (pointer_expression "*(int *)(*piVar11 + 0xc)" (* "*") (cast_expression "(int *)(*piVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar11 + 0xc)" (( "(") (binary_expression "*piVar11 + 0xc" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (expression_statement "uVar10 = piVar11[2];" (assignment_expression "uVar10 = piVar11[2]" (identifier "uVar10") (= "=") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "piVar15[1] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar15[1] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar15[1]" (identifier "piVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10" (binary_expression "(uVar4 >> 0x10) << 0x18" (parenthesized_expression "(uVar4 >> 0x10)" (( "(") (binary_expression "uVar4 >> 0x10" (identifier "uVar4") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar4 >> 0x18) << 0x10" (parenthesized_expression "(uVar4 >> 0x18)" (( "(") (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff)" (( "(") (binary_expression "(uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff" (binary_expression "(uVar4 & 0xff) << 8" (parenthesized_expression "(uVar4 & 0xff)" (( "(") (binary_expression "uVar4 & 0xff" (identifier "uVar4") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" (identifier "uVar4") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "*piVar15 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar15 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar15" (* "*") (identifier "piVar15")) (= "=") (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 "iVar2 = *(int *)(puVar17 + 0x28d6b4) + 0x7850;" (assignment_expression "iVar2 = *(int *)(puVar17 + 0x28d6b4) + 0x7850" (identifier "iVar2") (= "=") (binary_expression "*(int *)(puVar17 + 0x28d6b4) + 0x7850" (pointer_expression "*(int *)(puVar17 + 0x28d6b4)" (* "*") (cast_expression "(int *)(puVar17 + 0x28d6b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x28d6b4)" (( "(") (binary_expression "puVar17 + 0x28d6b4" (identifier "puVar17") (+ "+") (number_literal "0x28d6b4")) () ")")))) (+ "+") (number_literal "0x7850"))) (; ";")) (expression_statement "(**(code **)(puVar17 + 0x28d6c4))(*(int *)(puVar17 + 0x28d6b4) + -0x4fe0,0xc5,iVar2);" (call_expression "(**(code **)(puVar17 + 0x28d6c4))(*(int *)(puVar17 + 0x28d6b4) + -0x4fe0,0xc5,iVar2)" (parenthesized_expression "(**(code **)(puVar17 + 0x28d6c4))" (( "(") (pointer_expression "**(code **)(puVar17 + 0x28d6c4)" (* "*") (pointer_expression "*(code **)(puVar17 + 0x28d6c4)" (* "*") (cast_expression "(code **)(puVar17 + 0x28d6c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x28d6c4)" (( "(") (binary_expression "puVar17 + 0x28d6c4" (identifier "puVar17") (+ "+") (number_literal "0x28d6c4")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar17 + 0x28d6b4) + -0x4fe0,0xc5,iVar2)" (( "(") (binary_expression "*(int *)(puVar17 + 0x28d6b4) + -0x4fe0" (pointer_expression "*(int *)(puVar17 + 0x28d6b4)" (* "*") (cast_expression "(int *)(puVar17 + 0x28d6b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x28d6b4)" (( "(") (binary_expression "puVar17 + 0x28d6b4" (identifier "puVar17") (+ "+") (number_literal "0x28d6b4")) () ")")))) (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0xc5") (, ",") (identifier "iVar2") () ")"))) (; ";")) (expression_statement "piVar15 = (int *)&DAT_00000069;" (assignment_expression "piVar15 = (int *)&DAT_00000069" (identifier "piVar15") (= "=") (cast_expression "(int *)&DAT_00000069" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000069" (& "&") (identifier "DAT_00000069")))) (; ";")) (expression_statement "pcVar28 = *(code **)(puVar17 + 0x28d6c4);" (assignment_expression "pcVar28 = *(code **)(puVar17 + 0x28d6c4)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(puVar17 + 0x28d6c4)" (* "*") (cast_expression "(code **)(puVar17 + 0x28d6c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x28d6c4)" (( "(") (binary_expression "puVar17 + 0x28d6c4" (identifier "puVar17") (+ "+") (number_literal "0x28d6c4")) () ")"))))) (; ";")) (expression_statement "piVar11 = (int *)(*(int *)(puVar17 + 0x28d6b4) + -0x5cec);" (assignment_expression "piVar11 = (int *)(*(int *)(puVar17 + 0x28d6b4) + -0x5cec)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(puVar17 + 0x28d6b4) + -0x5cec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar17 + 0x28d6b4) + -0x5cec)" (( "(") (binary_expression "*(int *)(puVar17 + 0x28d6b4) + -0x5cec" (pointer_expression "*(int *)(puVar17 + 0x28d6b4)" (* "*") (cast_expression "(int *)(puVar17 + 0x28d6b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x28d6b4)" (( "(") (binary_expression "puVar17 + 0x28d6b4" (identifier "puVar17") (+ "+") (number_literal "0x28d6b4")) () ")")))) (+ "+") (number_literal "-0x5cec")) () ")")))) (; ";")) (expression_statement "(*pcVar28)(piVar11,0x69,iVar2 + 0x78f8);" (call_expression "(*pcVar28)(piVar11,0x69,iVar2 + 0x78f8)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(piVar11,0x69,iVar2 + 0x78f8)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x69") (, ",") (binary_expression "iVar2 + 0x78f8" (identifier "iVar2") (+ "+") (number_literal "0x78f8")) () ")"))) (; ";")) (expression_statement "uVar4 = piVar11[3] + 5;" (assignment_expression "uVar4 = piVar11[3] + 5" (identifier "uVar4") (= "=") (binary_expression "piVar11[3] + 5" (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "5"))) (; ";")) (if_statement "if (uVar4 < 5) {\n                    \n                    \n    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280))();\n    return;\n  }" (if "if") (parenthesized_expression "(uVar4 < 5)" (( "(") (binary_expression "uVar4 < 5" (identifier "uVar4") (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                    \n                    \n    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280))();\n    return;\n  }" ({ "{") (expression_statement "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280))();" (call_expression "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280))()" (parenthesized_expression "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280))" (( "(") (pointer_expression "*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280)" (* "*") (parenthesized_expression "(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280)" (( "(") (binary_expression "pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280" (binary_expression "pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4)" (identifier "pcVar28") (+ "+") (pointer_expression "*(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4)" (* "*") (cast_expression "(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4)" (( "(") (binary_expression "*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4" (binary_expression "*(int *)(pcVar28 + 0x28d464) + 0x5dd0" (pointer_expression "*(int *)(pcVar28 + 0x28d464)" (* "*") (cast_expression "(int *)(pcVar28 + 0x28d464)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0x28d464)" (( "(") (binary_expression "pcVar28 + 0x28d464" (identifier "pcVar28") (+ "+") (number_literal "0x28d464")) () ")")))) (+ "+") (number_literal "0x5dd0")) (+ "+") (binary_expression "uVar4 * 4" (identifier "uVar4") (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x295280")) () ")"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(int *)(*piVar11 + 0x20) < 0) {\n    iVar2 = piVar11[2];\n    piVar15[1] = piVar11[3] + *(int *)(*piVar11 + 0xc);\n    *piVar15 = iVar2;\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(*piVar11 + 0x20) < 0)" (( "(") (binary_expression "*(int *)(*piVar11 + 0x20) < 0" (pointer_expression "*(int *)(*piVar11 + 0x20)" (* "*") (cast_expression "(int *)(*piVar11 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar11 + 0x20)" (( "(") (binary_expression "*piVar11 + 0x20" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "0x20")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = piVar11[2];\n    piVar15[1] = piVar11[3] + *(int *)(*piVar11 + 0xc);\n    *piVar15 = iVar2;\n    return;\n  }" ({ "{") (expression_statement "iVar2 = piVar11[2];" (assignment_expression "iVar2 = piVar11[2]" (identifier "iVar2") (= "=") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "piVar15[1] = piVar11[3] + *(int *)(*piVar11 + 0xc);" (assignment_expression "piVar15[1] = piVar11[3] + *(int *)(*piVar11 + 0xc)" (subscript_expression "piVar15[1]" (identifier "piVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "piVar11[3] + *(int *)(*piVar11 + 0xc)" (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")) (+ "+") (pointer_expression "*(int *)(*piVar11 + 0xc)" (* "*") (cast_expression "(int *)(*piVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar11 + 0xc)" (( "(") (binary_expression "*piVar11 + 0xc" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (expression_statement "*piVar15 = iVar2;" (assignment_expression "*piVar15 = iVar2" (pointer_expression "*piVar15" (* "*") (identifier "piVar15")) (= "=") (identifier "iVar2")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(pcVar28 + 0x28d464) + 0x7850;" (assignment_expression "iVar2 = *(int *)(pcVar28 + 0x28d464) + 0x7850" (identifier "iVar2") (= "=") (binary_expression "*(int *)(pcVar28 + 0x28d464) + 0x7850" (pointer_expression "*(int *)(pcVar28 + 0x28d464)" (* "*") (cast_expression "(int *)(pcVar28 + 0x28d464)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0x28d464)" (( "(") (binary_expression "pcVar28 + 0x28d464" (identifier "pcVar28") (+ "+") (number_literal "0x28d464")) () ")")))) (+ "+") (number_literal "0x7850"))) (; ";")) (expression_statement "(**(code **)(pcVar28 + 0x28d474))(*(int *)(pcVar28 + 0x28d464) + -0x4fe0,0xc5,iVar2);" (call_expression "(**(code **)(pcVar28 + 0x28d474))(*(int *)(pcVar28 + 0x28d464) + -0x4fe0,0xc5,iVar2)" (parenthesized_expression "(**(code **)(pcVar28 + 0x28d474))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0x28d474)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0x28d474)" (* "*") (cast_expression "(code **)(pcVar28 + 0x28d474)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x28d474)" (( "(") (binary_expression "pcVar28 + 0x28d474" (identifier "pcVar28") (+ "+") (number_literal "0x28d474")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar28 + 0x28d464) + -0x4fe0,0xc5,iVar2)" (( "(") (binary_expression "*(int *)(pcVar28 + 0x28d464) + -0x4fe0" (pointer_expression "*(int *)(pcVar28 + 0x28d464)" (* "*") (cast_expression "(int *)(pcVar28 + 0x28d464)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0x28d464)" (( "(") (binary_expression "pcVar28 + 0x28d464" (identifier "pcVar28") (+ "+") (number_literal "0x28d464")) () ")")))) (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0xc5") (, ",") (identifier "iVar2") () ")"))) (; ";")) (expression_statement "piVar15 = (int *)&DAT_00000069;" (assignment_expression "piVar15 = (int *)&DAT_00000069" (identifier "piVar15") (= "=") (cast_expression "(int *)&DAT_00000069" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000069" (& "&") (identifier "DAT_00000069")))) (; ";")) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0x28d474);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0x28d474)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar28 + 0x28d474)" (* "*") (cast_expression "(code **)(pcVar28 + 0x28d474)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x28d474)" (( "(") (binary_expression "pcVar28 + 0x28d474" (identifier "pcVar28") (+ "+") (number_literal "0x28d474")) () ")"))))) (; ";")) (expression_statement "piVar11 = (int *)(*(int *)(pcVar28 + 0x28d464) + -0x5cec);" (assignment_expression "piVar11 = (int *)(*(int *)(pcVar28 + 0x28d464) + -0x5cec)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(pcVar28 + 0x28d464) + -0x5cec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0x28d464) + -0x5cec)" (( "(") (binary_expression "*(int *)(pcVar28 + 0x28d464) + -0x5cec" (pointer_expression "*(int *)(pcVar28 + 0x28d464)" (* "*") (cast_expression "(int *)(pcVar28 + 0x28d464)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0x28d464)" (( "(") (binary_expression "pcVar28 + 0x28d464" (identifier "pcVar28") (+ "+") (number_literal "0x28d464")) () ")")))) (+ "+") (number_literal "-0x5cec")) () ")")))) (; ";")) (expression_statement "(*pcVar29)(piVar11,0x69,iVar2 + 0x78f8);" (call_expression "(*pcVar29)(piVar11,0x69,iVar2 + 0x78f8)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(piVar11,0x69,iVar2 + 0x78f8)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x69") (, ",") (binary_expression "iVar2 + 0x78f8" (identifier "iVar2") (+ "+") (number_literal "0x78f8")) () ")"))) (; ";")) (expression_statement "uVar4 = piVar11[3];" (assignment_expression "uVar4 = piVar11[3]" (identifier "uVar4") (= "=") (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (uVar4 + 5 < 5) {\n                    \n                    \n    (*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090))();\n    return;\n  }" (if "if") (parenthesized_expression "(uVar4 + 5 < 5)" (( "(") (binary_expression "uVar4 + 5 < 5" (binary_expression "uVar4 + 5" (identifier "uVar4") (+ "+") (number_literal "5")) (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                    \n                    \n    (*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090))();\n    return;\n  }" ({ "{") (expression_statement "(*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090))();" (call_expression "(*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090))()" (parenthesized_expression "(*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090))" (( "(") (pointer_expression "*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090)" (* "*") (parenthesized_expression "(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090)" (( "(") (binary_expression "pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090" (binary_expression "pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4)" (identifier "pcVar29") (+ "+") (pointer_expression "*(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4)" (* "*") (cast_expression "(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4)" (( "(") (binary_expression "*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4" (binary_expression "*(int *)(pcVar29 + 0x28d274) + 0x5de4" (pointer_expression "*(int *)(pcVar29 + 0x28d274)" (* "*") (cast_expression "(int *)(pcVar29 + 0x28d274)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x28d274)" (( "(") (binary_expression "pcVar29 + 0x28d274" (identifier "pcVar29") (+ "+") (number_literal "0x28d274")) () ")")))) (+ "+") (number_literal "0x5de4")) (+ "+") (binary_expression "(uVar4 + 5) * 4" (parenthesized_expression "(uVar4 + 5)" (( "(") (binary_expression "uVar4 + 5" (identifier "uVar4") (+ "+") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x295090")) () ")"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar2 = *piVar11;" (assignment_expression "iVar2 = *piVar11" (identifier "iVar2") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x20) < 0) {\n    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);\n    uVar4 = (uint)(uVar10 < uVar4) + *(int *)(iVar2 + 8);\n    uVar12 = piVar11[2];\n    piVar15[1] = 0;\n    piVar15[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n    piVar15[2] = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    *piVar15 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x20) < 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x20) < 0" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);\n    uVar4 = (uint)(uVar10 < uVar4) + *(int *)(iVar2 + 8);\n    uVar12 = piVar11[2];\n    piVar15[1] = 0;\n    piVar15[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;\n    piVar15[2] = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;\n    *piVar15 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;\n    return;\n  }" ({ "{") (expression_statement "uVar10 = uVar4 + *(int *)(iVar2 + 0xc);" (assignment_expression "uVar10 = uVar4 + *(int *)(iVar2 + 0xc)" (identifier "uVar10") (= "=") (binary_expression "uVar4 + *(int *)(iVar2 + 0xc)" (identifier "uVar4") (+ "+") (pointer_expression "*(int *)(iVar2 + 0xc)" (* "*") (cast_expression "(int *)(iVar2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (expression_statement "uVar4 = (uint)(uVar10 < uVar4) + *(int *)(iVar2 + 8);" (assignment_expression "uVar4 = (uint)(uVar10 < uVar4) + *(int *)(iVar2 + 8)" (identifier "uVar4") (= "=") (binary_expression "(uint)(uVar10 < uVar4) + *(int *)(iVar2 + 8)" (call_expression "(uint)(uVar10 < uVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar10 < uVar4)" (( "(") (binary_expression "uVar10 < uVar4" (identifier "uVar10") (< "<") (identifier "uVar4")) () ")"))) (+ "+") (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "uVar12 = piVar11[2];" (assignment_expression "uVar12 = piVar11[2]" (identifier "uVar12") (= "=") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "piVar15[1] = 0;" (assignment_expression "piVar15[1] = 0" (subscript_expression "piVar15[1]" (identifier "piVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar15[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar15[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar15[3]" (identifier "piVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10" (binary_expression "(uVar4 >> 0x10) << 0x18" (parenthesized_expression "(uVar4 >> 0x10)" (( "(") (binary_expression "uVar4 >> 0x10" (identifier "uVar4") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar4 >> 0x18) << 0x10" (parenthesized_expression "(uVar4 >> 0x18)" (( "(") (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff)" (( "(") (binary_expression "(uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff" (binary_expression "(uVar4 & 0xff) << 8" (parenthesized_expression "(uVar4 & 0xff)" (( "(") (binary_expression "uVar4 & 0xff" (identifier "uVar4") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" (identifier "uVar4") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "piVar15[2] = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;" (assignment_expression "piVar15[2] = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +\n                 ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000" (subscript_expression "piVar15[2]" (identifier "piVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (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")))) (; ";")) (expression_statement "*piVar15 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;" (assignment_expression "*piVar15 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000" (pointer_expression "*piVar15" (* "*") (identifier "piVar15")) (= "=") (binary_expression "(((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +\n               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000" (parenthesized_expression "(((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10)" (( "(") (binary_expression "((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10" (parenthesized_expression "((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10)" (( "(") (binary_expression "(uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10" (binary_expression "(uVar12 >> 0x10) << 0x18" (parenthesized_expression "(uVar12 >> 0x10)" (( "(") (binary_expression "uVar12 >> 0x10" (identifier "uVar12") (>> ">>") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 >> 0x18) << 0x10" (parenthesized_expression "(uVar12 >> 0x18)" (( "(") (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) () ")")) (<< "<<") (number_literal "0x10"))) () ")")) (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000" (parenthesized_expression "((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff)" (( "(") (binary_expression "(uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff" (binary_expression "(uVar12 & 0xff) << 8" (parenthesized_expression "(uVar12 & 0xff)" (( "(") (binary_expression "uVar12 & 0xff" (identifier "uVar12") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar12 >> 8 & 0xff" (binary_expression "uVar12 >> 8" (identifier "uVar12") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) () ")")) (* "*") (number_literal "0x10000")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(pcVar29 + 0x28d274) + 0x7850;" (assignment_expression "iVar2 = *(int *)(pcVar29 + 0x28d274) + 0x7850" (identifier "iVar2") (= "=") (binary_expression "*(int *)(pcVar29 + 0x28d274) + 0x7850" (pointer_expression "*(int *)(pcVar29 + 0x28d274)" (* "*") (cast_expression "(int *)(pcVar29 + 0x28d274)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x28d274)" (( "(") (binary_expression "pcVar29 + 0x28d274" (identifier "pcVar29") (+ "+") (number_literal "0x28d274")) () ")")))) (+ "+") (number_literal "0x7850"))) (; ";")) (expression_statement "(**(code **)(pcVar29 + 0x28d284))(*(int *)(pcVar29 + 0x28d274) + -0x4fe0,0xc5,iVar2);" (call_expression "(**(code **)(pcVar29 + 0x28d284))(*(int *)(pcVar29 + 0x28d274) + -0x4fe0,0xc5,iVar2)" (parenthesized_expression "(**(code **)(pcVar29 + 0x28d284))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x28d284)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x28d284)" (* "*") (cast_expression "(code **)(pcVar29 + 0x28d284)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x28d284)" (( "(") (binary_expression "pcVar29 + 0x28d284" (identifier "pcVar29") (+ "+") (number_literal "0x28d284")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar29 + 0x28d274) + -0x4fe0,0xc5,iVar2)" (( "(") (binary_expression "*(int *)(pcVar29 + 0x28d274) + -0x4fe0" (pointer_expression "*(int *)(pcVar29 + 0x28d274)" (* "*") (cast_expression "(int *)(pcVar29 + 0x28d274)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x28d274)" (( "(") (binary_expression "pcVar29 + 0x28d274" (identifier "pcVar29") (+ "+") (number_literal "0x28d274")) () ")")))) (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0xc5") (, ",") (identifier "iVar2") () ")"))) (; ";")) (expression_statement "puVar26 = (undefined4 *)&DAT_00000069;" (assignment_expression "puVar26 = (undefined4 *)&DAT_00000069" (identifier "puVar26") (= "=") (cast_expression "(undefined4 *)&DAT_00000069" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000069" (& "&") (identifier "DAT_00000069")))) (; ";")) (expression_statement "pcVar28 = *(code **)(pcVar29 + 0x28d284);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + 0x28d284)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar29 + 0x28d284)" (* "*") (cast_expression "(code **)(pcVar29 + 0x28d284)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x28d284)" (( "(") (binary_expression "pcVar29 + 0x28d284" (identifier "pcVar29") (+ "+") (number_literal "0x28d284")) () ")"))))) (; ";")) (expression_statement "piVar11 = (int *)(*(int *)(pcVar29 + 0x28d274) + -0x5cec);" (assignment_expression "piVar11 = (int *)(*(int *)(pcVar29 + 0x28d274) + -0x5cec)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(pcVar29 + 0x28d274) + -0x5cec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar29 + 0x28d274) + -0x5cec)" (( "(") (binary_expression "*(int *)(pcVar29 + 0x28d274) + -0x5cec" (pointer_expression "*(int *)(pcVar29 + 0x28d274)" (* "*") (cast_expression "(int *)(pcVar29 + 0x28d274)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x28d274)" (( "(") (binary_expression "pcVar29 + 0x28d274" (identifier "pcVar29") (+ "+") (number_literal "0x28d274")) () ")")))) (+ "+") (number_literal "-0x5cec")) () ")")))) (; ";")) (expression_statement "(*pcVar28)(piVar11,0x69,iVar2 + 0x78f8);" (call_expression "(*pcVar28)(piVar11,0x69,iVar2 + 0x78f8)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(piVar11,0x69,iVar2 + 0x78f8)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x69") (, ",") (binary_expression "iVar2 + 0x78f8" (identifier "iVar2") (+ "+") (number_literal "0x78f8")) () ")"))) (; ";")) (expression_statement "uVar4 = piVar11[3];" (assignment_expression "uVar4 = piVar11[3]" (identifier "uVar4") (= "=") (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (uVar4 + 5 < 5) {\n                    \n                    \n    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8))();\n    return;\n  }" (if "if") (parenthesized_expression "(uVar4 + 5 < 5)" (( "(") (binary_expression "uVar4 + 5 < 5" (binary_expression "uVar4 + 5" (identifier "uVar4") (+ "+") (number_literal "5")) (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                    \n                    \n    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8))();\n    return;\n  }" ({ "{") (expression_statement "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8))();" (call_expression "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8))()" (parenthesized_expression "(*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8))" (( "(") (pointer_expression "*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8)" (* "*") (parenthesized_expression "(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8)" (( "(") (binary_expression "pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8" (binary_expression "pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4)" (identifier "pcVar28") (+ "+") (pointer_expression "*(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4)" (* "*") (cast_expression "(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4)" (( "(") (binary_expression "*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4" (binary_expression "*(int *)(pcVar28 + 0x28d0bc) + 0x5df8" (pointer_expression "*(int *)(pcVar28 + 0x28d0bc)" (* "*") (cast_expression "(int *)(pcVar28 + 0x28d0bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0x28d0bc)" (( "(") (binary_expression "pcVar28 + 0x28d0bc" (identifier "pcVar28") (+ "+") (number_literal "0x28d0bc")) () ")")))) (+ "+") (number_literal "0x5df8")) (+ "+") (binary_expression "(uVar4 + 5) * 4" (parenthesized_expression "(uVar4 + 5)" (( "(") (binary_expression "uVar4 + 5" (identifier "uVar4") (+ "+") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x294ed8")) () ")"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar2 = *piVar11;" (assignment_expression "iVar2 = *piVar11" (identifier "iVar2") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x20) < 0) {\n    iVar14 = *(int *)(iVar2 + 8);\n    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);\n    iVar2 = piVar11[2];\n    *puVar26 = 0;\n    puVar26[2] = (uint)(uVar10 < uVar4) + iVar14;\n    puVar26[1] = iVar2;\n    puVar26[3] = uVar10;\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x20) < 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x20) < 0" (pointer_expression "*(int *)(iVar2 + 0x20)" (* "*") (cast_expression "(int *)(iVar2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar14 = *(int *)(iVar2 + 8);\n    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);\n    iVar2 = piVar11[2];\n    *puVar26 = 0;\n    puVar26[2] = (uint)(uVar10 < uVar4) + iVar14;\n    puVar26[1] = iVar2;\n    puVar26[3] = uVar10;\n    return;\n  }" ({ "{") (expression_statement "iVar14 = *(int *)(iVar2 + 8);" (assignment_expression "iVar14 = *(int *)(iVar2 + 8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar10 = uVar4 + *(int *)(iVar2 + 0xc);" (assignment_expression "uVar10 = uVar4 + *(int *)(iVar2 + 0xc)" (identifier "uVar10") (= "=") (binary_expression "uVar4 + *(int *)(iVar2 + 0xc)" (identifier "uVar4") (+ "+") (pointer_expression "*(int *)(iVar2 + 0xc)" (* "*") (cast_expression "(int *)(iVar2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (expression_statement "iVar2 = piVar11[2];" (assignment_expression "iVar2 = piVar11[2]" (identifier "iVar2") (= "=") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*puVar26 = 0;" (assignment_expression "*puVar26 = 0" (pointer_expression "*puVar26" (* "*") (identifier "puVar26")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar26[2] = (uint)(uVar10 < uVar4) + iVar14;" (assignment_expression "puVar26[2] = (uint)(uVar10 < uVar4) + iVar14" (subscript_expression "puVar26[2]" (identifier "puVar26") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(uint)(uVar10 < uVar4) + iVar14" (call_expression "(uint)(uVar10 < uVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar10 < uVar4)" (( "(") (binary_expression "uVar10 < uVar4" (identifier "uVar10") (< "<") (identifier "uVar4")) () ")"))) (+ "+") (identifier "iVar14"))) (; ";")) (expression_statement "puVar26[1] = iVar2;" (assignment_expression "puVar26[1] = iVar2" (subscript_expression "puVar26[1]" (identifier "puVar26") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "puVar26[3] = uVar10;" (assignment_expression "puVar26[3] = uVar10" (subscript_expression "puVar26[3]" (identifier "puVar26") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(pcVar28 + 0x28d0bc) + 0x7850;" (assignment_expression "iVar2 = *(int *)(pcVar28 + 0x28d0bc) + 0x7850" (identifier "iVar2") (= "=") (binary_expression "*(int *)(pcVar28 + 0x28d0bc) + 0x7850" (pointer_expression "*(int *)(pcVar28 + 0x28d0bc)" (* "*") (cast_expression "(int *)(pcVar28 + 0x28d0bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0x28d0bc)" (( "(") (binary_expression "pcVar28 + 0x28d0bc" (identifier "pcVar28") (+ "+") (number_literal "0x28d0bc")) () ")")))) (+ "+") (number_literal "0x7850"))) (; ";")) (expression_statement "(**(code **)(pcVar28 + 0x28d0cc))(*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0,0xc5,iVar2);" (call_expression "(**(code **)(pcVar28 + 0x28d0cc))(*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0,0xc5,iVar2)" (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 "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x28d0cc)" (( "(") (binary_expression "pcVar28 + 0x28d0cc" (identifier "pcVar28") (+ "+") (number_literal "0x28d0cc")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0,0xc5,iVar2)" (( "(") (binary_expression "*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0" (pointer_expression "*(int *)(pcVar28 + 0x28d0bc)" (* "*") (cast_expression "(int *)(pcVar28 + 0x28d0bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0x28d0bc)" (( "(") (binary_expression "pcVar28 + 0x28d0bc" (identifier "pcVar28") (+ "+") (number_literal "0x28d0bc")) () ")")))) (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0xc5") (, ",") (identifier "iVar2") () ")"))) (; ";")) (expression_statement "uVar4 = 0x69;" (assignment_expression "uVar4 = 0x69" (identifier "uVar4") (= "=") (number_literal "0x69")) (; ";")) (expression_statement "pcVar29 = *(code **)(pcVar28 + 0x28d0cc);" (assignment_expression "pcVar29 = *(code **)(pcVar28 + 0x28d0cc)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar28 + 0x28d0cc)" (* "*") (cast_expression "(code **)(pcVar28 + 0x28d0cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x28d0cc)" (( "(") (binary_expression "pcVar28 + 0x28d0cc" (identifier "pcVar28") (+ "+") (number_literal "0x28d0cc")) () ")"))))) (; ";")) (expression_statement "piVar11 = (int *)(*(int *)(pcVar28 + 0x28d0bc) + -0x5cec);" (assignment_expression "piVar11 = (int *)(*(int *)(pcVar28 + 0x28d0bc) + -0x5cec)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(pcVar28 + 0x28d0bc) + -0x5cec)" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0x28d0bc)" (( "(") (binary_expression "pcVar28 + 0x28d0bc" (identifier "pcVar28") (+ "+") (number_literal "0x28d0bc")) () ")")))) (+ "+") (number_literal "-0x5cec")) () ")")))) (; ";")) (expression_statement "(*pcVar29)(piVar11,0x69,iVar2 + 0x78f8);" (call_expression "(*pcVar29)(piVar11,0x69,iVar2 + 0x78f8)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(piVar11,0x69,iVar2 + 0x78f8)" (( "(") (identifier "piVar11") (, ",") (number_literal "0x69") (, ",") (binary_expression "iVar2 + 0x78f8" (identifier "iVar2") (+ "+") (number_literal "0x78f8")) () ")"))) (; ";")) (if_statement "if (uVar4 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar8 = (undefined4 *)piVar11[1];" (assignment_expression "puVar8 = (undefined4 *)piVar11[1]" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)piVar11[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar18 = (undefined4 *)&DAT_aaaaaaab;" (assignment_expression "puVar18 = (undefined4 *)&DAT_aaaaaaab" (identifier "puVar18") (= "=") (cast_expression "(undefined4 *)&DAT_aaaaaaab" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_aaaaaaab" (& "&") (identifier "DAT_aaaaaaab")))) (; ";")) (expression_statement "puVar26 = puVar8;" (assignment_expression "puVar26 = puVar8" (identifier "puVar26") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "uVar10 = uVar4;" (assignment_expression "uVar10 = uVar4" (identifier "uVar10") (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (uVar4 <= (uint)((piVar11[2] - (int)puVar8 >> 3) * -0x55555555)) {\n    do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar10 != 0);\n    piVar11[1] = (int)(puVar8 + uVar4 * 6);\n    return;\n  }" (if "if") (parenthesized_expression "(uVar4 <= (uint)((piVar11[2] - (int)puVar8 >> 3) * -0x55555555))" (( "(") (binary_expression "uVar4 <= (uint)((piVar11[2] - (int)puVar8 >> 3) * -0x55555555)" (identifier "uVar4") (<= "<=") (call_expression "(uint)((piVar11[2] - (int)puVar8 >> 3) * -0x55555555)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((piVar11[2] - (int)puVar8 >> 3) * -0x55555555)" (( "(") (binary_expression "(piVar11[2] - (int)puVar8 >> 3) * -0x55555555" (parenthesized_expression "(piVar11[2] - (int)puVar8 >> 3)" (( "(") (binary_expression "piVar11[2] - (int)puVar8 >> 3" (binary_expression "piVar11[2] - (int)puVar8" (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")) (- "-") (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8"))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x55555555")) () ")")))) () ")")) (compound_statement "{\n    do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar10 != 0);\n    piVar11[1] = (int)(puVar8 + uVar4 * 6);\n    return;\n  }" ({ "{") (do_statement "do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar10 != 0);" (do "do") (compound_statement "{\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar10 = uVar10 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    }" ({ "{") (expression_statement "*puVar26 = 0;" (assignment_expression "*puVar26 = 0" (pointer_expression "*puVar26" (* "*") (identifier "puVar26")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar26[1] = 0;" (assignment_expression "puVar26[1] = 0" (subscript_expression "puVar26[1]" (identifier "puVar26") ([ "[") (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 "puVar26[3] = 0;" (assignment_expression "puVar26[3] = 0" (subscript_expression "puVar26[3]" (identifier "puVar26") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar26[2] = 0;" (assignment_expression "puVar26[2] = 0" (subscript_expression "puVar26[2]" (identifier "puVar26") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar26[4] = 0;" (assignment_expression "puVar26[4] = 0" (subscript_expression "puVar26[4]" (identifier "puVar26") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar26 = puVar26 + 6;" (assignment_expression "puVar26 = puVar26 + 6" (identifier "puVar26") (= "=") (binary_expression "puVar26 + 6" (identifier "puVar26") (+ "+") (number_literal "6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar10 != 0)" (( "(") (binary_expression "uVar10 != 0" (identifier "uVar10") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "piVar11[1] = (int)(puVar8 + uVar4 * 6);" (assignment_expression "piVar11[1] = (int)(puVar8 + uVar4 * 6)" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)(puVar8 + uVar4 * 6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar8 + uVar4 * 6)" (( "(") (binary_expression "puVar8 + uVar4 * 6" (identifier "puVar8") (+ "+") (binary_expression "uVar4 * 6" (identifier "uVar4") (* "*") (number_literal "6"))) () ")")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar2 = *piVar11;" (assignment_expression "iVar2 = *piVar11" (identifier "iVar2") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "puVar26 = (undefined4 *)((int)puVar8 - iVar2 >> 3);" (assignment_expression "puVar26 = (undefined4 *)((int)puVar8 - iVar2 >> 3)" (identifier "puVar26") (= "=") (cast_expression "(undefined4 *)((int)puVar8 - iVar2 >> 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 - iVar2 >> 3)" (( "(") (binary_expression "(int)puVar8 - iVar2 >> 3" (binary_expression "(int)puVar8 - iVar2" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (- "-") (identifier "iVar2")) (>> ">>") (number_literal "3")) () ")")))) (; ";")) (expression_statement "uVar10 = (int)puVar26 * -0x55555555;" (assignment_expression "uVar10 = (int)puVar26 * -0x55555555" (identifier "uVar10") (= "=") (binary_expression "(int)puVar26 * -0x55555555" (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26")) (* "*") (number_literal "-0x55555555"))) (; ";")) (if_statement "if (uVar4 <= (int)puVar26 * 0x55555555 + 0xaaaaaaaU) {\n    uVar12 = uVar10;\n    if (uVar10 <= uVar4) {\n      uVar12 = uVar4;\n    }\n    uVar12 = uVar12 + uVar10;\n    iVar14 = -0x10;\n    if (uVar10 <= uVar12) {\n      if (0xaaaaaaa < uVar12) {\n        uVar12 = 0xaaaaaaa;\n      }\n      iVar14 = uVar12 * 0x18;\n    }\n    puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar14);\n    puVar26 = (undefined4 *)((int)puVar18 + ((int)puVar8 - iVar2));\n    uVar12 = uVar4;\n    do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar12 = uVar12 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar12 != 0);\n    puVar24 = (undefined4 *)piVar11[1];\n    puVar13 = (undefined4 *)*piVar11;\n    puVar8 = puVar18;\n    for (puVar26 = puVar13; puVar26 != puVar24; puVar26 = puVar26 + 6) {\n      uVar22 = puVar26[1];\n      uVar21 = puVar26[2];\n      uVar20 = puVar26[3];\n      uVar19 = puVar26[4];\n      uVar3 = puVar26[5];\n      *puVar8 = *puVar26;\n      puVar8[1] = uVar22;\n      puVar8[2] = uVar21;\n      puVar8[3] = uVar20;\n      puVar8[4] = uVar19;\n      puVar8[5] = uVar3;\n      puVar8 = puVar8 + 6;\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      (**(code **)(pcVar29 + 0x28cd40))();\n    }\n    *piVar11 = (int)puVar18;\n    piVar11[2] = (int)puVar18 + iVar14;\n    piVar11[1] = (int)(puVar18 + (uVar4 + uVar10) * 6);\n    return;\n  }" (if "if") (parenthesized_expression "(uVar4 <= (int)puVar26 * 0x55555555 + 0xaaaaaaaU)" (( "(") (binary_expression "uVar4 <= (int)puVar26 * 0x55555555 + 0xaaaaaaaU" (identifier "uVar4") (<= "<=") (binary_expression "(int)puVar26 * 0x55555555 + 0xaaaaaaaU" (binary_expression "(int)puVar26 * 0x55555555" (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26")) (* "*") (number_literal "0x55555555")) (+ "+") (number_literal "0xaaaaaaaU"))) () ")")) (compound_statement "{\n    uVar12 = uVar10;\n    if (uVar10 <= uVar4) {\n      uVar12 = uVar4;\n    }\n    uVar12 = uVar12 + uVar10;\n    iVar14 = -0x10;\n    if (uVar10 <= uVar12) {\n      if (0xaaaaaaa < uVar12) {\n        uVar12 = 0xaaaaaaa;\n      }\n      iVar14 = uVar12 * 0x18;\n    }\n    puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar14);\n    puVar26 = (undefined4 *)((int)puVar18 + ((int)puVar8 - iVar2));\n    uVar12 = uVar4;\n    do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar12 = uVar12 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar12 != 0);\n    puVar24 = (undefined4 *)piVar11[1];\n    puVar13 = (undefined4 *)*piVar11;\n    puVar8 = puVar18;\n    for (puVar26 = puVar13; puVar26 != puVar24; puVar26 = puVar26 + 6) {\n      uVar22 = puVar26[1];\n      uVar21 = puVar26[2];\n      uVar20 = puVar26[3];\n      uVar19 = puVar26[4];\n      uVar3 = puVar26[5];\n      *puVar8 = *puVar26;\n      puVar8[1] = uVar22;\n      puVar8[2] = uVar21;\n      puVar8[3] = uVar20;\n      puVar8[4] = uVar19;\n      puVar8[5] = uVar3;\n      puVar8 = puVar8 + 6;\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      (**(code **)(pcVar29 + 0x28cd40))();\n    }\n    *piVar11 = (int)puVar18;\n    piVar11[2] = (int)puVar18 + iVar14;\n    piVar11[1] = (int)(puVar18 + (uVar4 + uVar10) * 6);\n    return;\n  }" ({ "{") (expression_statement "uVar12 = uVar10;" (assignment_expression "uVar12 = uVar10" (identifier "uVar12") (= "=") (identifier "uVar10")) (; ";")) (if_statement "if (uVar10 <= uVar4) {\n      uVar12 = uVar4;\n    }" (if "if") (parenthesized_expression "(uVar10 <= uVar4)" (( "(") (binary_expression "uVar10 <= uVar4" (identifier "uVar10") (<= "<=") (identifier "uVar4")) () ")")) (compound_statement "{\n      uVar12 = uVar4;\n    }" ({ "{") (expression_statement "uVar12 = uVar4;" (assignment_expression "uVar12 = uVar4" (identifier "uVar12") (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (expression_statement "uVar12 = uVar12 + uVar10;" (assignment_expression "uVar12 = uVar12 + uVar10" (identifier "uVar12") (= "=") (binary_expression "uVar12 + uVar10" (identifier "uVar12") (+ "+") (identifier "uVar10"))) (; ";")) (expression_statement "iVar14 = -0x10;" (assignment_expression "iVar14 = -0x10" (identifier "iVar14") (= "=") (number_literal "-0x10")) (; ";")) (if_statement "if (uVar10 <= uVar12) {\n      if (0xaaaaaaa < uVar12) {\n        uVar12 = 0xaaaaaaa;\n      }\n      iVar14 = uVar12 * 0x18;\n    }" (if "if") (parenthesized_expression "(uVar10 <= uVar12)" (( "(") (binary_expression "uVar10 <= uVar12" (identifier "uVar10") (<= "<=") (identifier "uVar12")) () ")")) (compound_statement "{\n      if (0xaaaaaaa < uVar12) {\n        uVar12 = 0xaaaaaaa;\n      }\n      iVar14 = uVar12 * 0x18;\n    }" ({ "{") (if_statement "if (0xaaaaaaa < uVar12) {\n        uVar12 = 0xaaaaaaa;\n      }" (if "if") (parenthesized_expression "(0xaaaaaaa < uVar12)" (( "(") (binary_expression "0xaaaaaaa < uVar12" (number_literal "0xaaaaaaa") (< "<") (identifier "uVar12")) () ")")) (compound_statement "{\n        uVar12 = 0xaaaaaaa;\n      }" ({ "{") (expression_statement "uVar12 = 0xaaaaaaa;" (assignment_expression "uVar12 = 0xaaaaaaa" (identifier "uVar12") (= "=") (number_literal "0xaaaaaaa")) (; ";")) (} "}"))) (expression_statement "iVar14 = uVar12 * 0x18;" (assignment_expression "iVar14 = uVar12 * 0x18" (identifier "iVar14") (= "=") (binary_expression "uVar12 * 0x18" (identifier "uVar12") (* "*") (number_literal "0x18"))) (; ";")) (} "}"))) (expression_statement "puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar14);" (assignment_expression "puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar14)" (identifier "puVar18") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar29 + 0x28cdf0))(iVar14)" (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 "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x28cdf0)" (( "(") (binary_expression "pcVar29 + 0x28cdf0" (identifier "pcVar29") (+ "+") (number_literal "0x28cdf0")) () ")"))))) () ")")) (argument_list "(iVar14)" (( "(") (identifier "iVar14") () ")"))))) (; ";")) (expression_statement "puVar26 = (undefined4 *)((int)puVar18 + ((int)puVar8 - iVar2));" (assignment_expression "puVar26 = (undefined4 *)((int)puVar18 + ((int)puVar8 - iVar2))" (identifier "puVar26") (= "=") (cast_expression "(undefined4 *)((int)puVar18 + ((int)puVar8 - iVar2))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + ((int)puVar8 - iVar2))" (( "(") (binary_expression "(int)puVar18 + ((int)puVar8 - iVar2)" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (parenthesized_expression "((int)puVar8 - iVar2)" (( "(") (binary_expression "(int)puVar8 - iVar2" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (- "-") (identifier "iVar2")) () ")"))) () ")")))) (; ";")) (expression_statement "uVar12 = uVar4;" (assignment_expression "uVar12 = uVar4" (identifier "uVar12") (= "=") (identifier "uVar4")) (; ";")) (do_statement "do {\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar12 = uVar12 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    } while (uVar12 != 0);" (do "do") (compound_statement "{\n      *puVar26 = 0;\n      puVar26[1] = 0;\n      uVar12 = uVar12 - 1;\n      puVar26[3] = 0;\n      puVar26[2] = 0;\n      puVar26[4] = 0;\n      puVar26 = puVar26 + 6;\n    }" ({ "{") (expression_statement "*puVar26 = 0;" (assignment_expression "*puVar26 = 0" (pointer_expression "*puVar26" (* "*") (identifier "puVar26")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar26[1] = 0;" (assignment_expression "puVar26[1] = 0" (subscript_expression "puVar26[1]" (identifier "puVar26") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1"))) (; ";")) (expression_statement "puVar26[3] = 0;" (assignment_expression "puVar26[3] = 0" (subscript_expression "puVar26[3]" (identifier "puVar26") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar26[2] = 0;" (assignment_expression "puVar26[2] = 0" (subscript_expression "puVar26[2]" (identifier "puVar26") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar26[4] = 0;" (assignment_expression "puVar26[4] = 0" (subscript_expression "puVar26[4]" (identifier "puVar26") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar26 = puVar26 + 6;" (assignment_expression "puVar26 = puVar26 + 6" (identifier "puVar26") (= "=") (binary_expression "puVar26 + 6" (identifier "puVar26") (+ "+") (number_literal "6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "puVar24 = (undefined4 *)piVar11[1];" (assignment_expression "puVar24 = (undefined4 *)piVar11[1]" (identifier "puVar24") (= "=") (cast_expression "(undefined4 *)piVar11[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar13 = (undefined4 *)*piVar11;" (assignment_expression "puVar13 = (undefined4 *)*piVar11" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)*piVar11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar11" (* "*") (identifier "piVar11")))) (; ";")) (expression_statement "puVar8 = puVar18;" (assignment_expression "puVar8 = puVar18" (identifier "puVar8") (= "=") (identifier "puVar18")) (; ";")) (for_statement "for (puVar26 = puVar13; puVar26 != puVar24; puVar26 = puVar26 + 6) {\n      uVar22 = puVar26[1];\n      uVar21 = puVar26[2];\n      uVar20 = puVar26[3];\n      uVar19 = puVar26[4];\n      uVar3 = puVar26[5];\n      *puVar8 = *puVar26;\n      puVar8[1] = uVar22;\n      puVar8[2] = uVar21;\n      puVar8[3] = uVar20;\n      puVar8[4] = uVar19;\n      puVar8[5] = uVar3;\n      puVar8 = puVar8 + 6;\n    }" (for "for") (( "(") (assignment_expression "puVar26 = puVar13" (identifier "puVar26") (= "=") (identifier "puVar13")) (; ";") (binary_expression "puVar26 != puVar24" (identifier "puVar26") (!= "!=") (identifier "puVar24")) (; ";") (assignment_expression "puVar26 = puVar26 + 6" (identifier "puVar26") (= "=") (binary_expression "puVar26 + 6" (identifier "puVar26") (+ "+") (number_literal "6"))) () ")") (compound_statement "{\n      uVar22 = puVar26[1];\n      uVar21 = puVar26[2];\n      uVar20 = puVar26[3];\n      uVar19 = puVar26[4];\n      uVar3 = puVar26[5];\n      *puVar8 = *puVar26;\n      puVar8[1] = uVar22;\n      puVar8[2] = uVar21;\n      puVar8[3] = uVar20;\n      puVar8[4] = uVar19;\n      puVar8[5] = uVar3;\n      puVar8 = puVar8 + 6;\n    }" ({ "{") (expression_statement "uVar22 = puVar26[1];" (assignment_expression "uVar22 = puVar26[1]" (identifier "uVar22") (= "=") (subscript_expression "puVar26[1]" (identifier "puVar26") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar21 = puVar26[2];" (assignment_expression "uVar21 = puVar26[2]" (identifier "uVar21") (= "=") (subscript_expression "puVar26[2]" (identifier "puVar26") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar20 = puVar26[3];" (assignment_expression "uVar20 = puVar26[3]" (identifier "uVar20") (= "=") (subscript_expression "puVar26[3]" (identifier "puVar26") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar26[4];" (assignment_expression "uVar19 = puVar26[4]" (identifier "uVar19") (= "=") (subscript_expression "puVar26[4]" (identifier "puVar26") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar3 = puVar26[5];" (assignment_expression "uVar3 = puVar26[5]" (identifier "uVar3") (= "=") (subscript_expression "puVar26[5]" (identifier "puVar26") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*puVar8 = *puVar26;" (assignment_expression "*puVar8 = *puVar26" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (pointer_expression "*puVar26" (* "*") (identifier "puVar26"))) (; ";")) (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] = uVar3;" (assignment_expression "puVar8[5] = uVar3" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "puVar8 = puVar8 + 6;" (assignment_expression "puVar8 = puVar8 + 6" (identifier "puVar8") (= "=") (binary_expression "puVar8 + 6" (identifier "puVar8") (+ "+") (number_literal "6"))) (; ";")) (} "}"))) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n      (**(code **)(pcVar29 + 0x28cd40))();\n    }" (if "if") (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (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 "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x28cd40)" (( "(") (binary_expression "pcVar29 + 0x28cd40" (identifier "pcVar29") (+ "+") (number_literal "0x28cd40")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*piVar11 = (int)puVar18;" (assignment_expression "*piVar11 = (int)puVar18" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18"))) (; ";")) (expression_statement "piVar11[2] = (int)puVar18 + iVar14;" (assignment_expression "piVar11[2] = (int)puVar18 + iVar14" (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(int)puVar18 + iVar14" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (identifier "iVar14"))) (; ";")) (expression_statement "piVar11[1] = (int)(puVar18 + (uVar4 + uVar10) * 6);" (assignment_expression "piVar11[1] = (int)(puVar18 + (uVar4 + uVar10) * 6)" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)(puVar18 + (uVar4 + uVar10) * 6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar18 + (uVar4 + uVar10) * 6)" (( "(") (binary_expression "puVar18 + (uVar4 + uVar10) * 6" (identifier "puVar18") (+ "+") (binary_expression "(uVar4 + uVar10) * 6" (parenthesized_expression "(uVar4 + uVar10)" (( "(") (binary_expression "uVar4 + uVar10" (identifier "uVar4") (+ "+") (identifier "uVar10")) () ")")) (* "*") (number_literal "6"))) () ")")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar28 = *(code **)(pcVar29 + 0x28cf34);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + 0x28cf34)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar29 + 0x28cf34)" (* "*") (cast_expression "(code **)(pcVar29 + 0x28cf34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x28cf34)" (( "(") (binary_expression "pcVar29 + 0x28cf34" (identifier "pcVar29") (+ "+") (number_literal "0x28cf34")) () ")"))))) (; ";")) (expression_statement "puVar8 = (undefined4 *)(*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c);" (assignment_expression "puVar8 = (undefined4 *)(*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x28ccc0)" (( "(") (binary_expression "pcVar29 + 0x28ccc0" (identifier "pcVar29") (+ "+") (number_literal "0x28ccc0")) () ")")))) (+ "+") (number_literal "0x4d8c")) () ")")))) (; ";")) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar24 = (undefined4 *)puVar8[1];" (assignment_expression "puVar24 = (undefined4 *)puVar8[1]" (identifier "puVar24") (= "=") (cast_expression "(undefined4 *)puVar8[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar13 = (undefined4 *)*puVar8;" (assignment_expression "puVar13 = (undefined4 *)*puVar8" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)*puVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")))) (; ";")) (expression_statement "iVar2 = (int)puVar24 - (int)puVar13 >> 3;" (assignment_expression "iVar2 = (int)puVar24 - (int)puVar13 >> 3" (identifier "iVar2") (= "=") (binary_expression "(int)puVar24 - (int)puVar13 >> 3" (binary_expression "(int)puVar24 - (int)puVar13" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (- "-") (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13"))) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "uVar4 = iVar2 * -0x49249249;" (assignment_expression "uVar4 = iVar2 * -0x49249249" (identifier "uVar4") (= "=") (binary_expression "iVar2 * -0x49249249" (identifier "iVar2") (* "*") (number_literal "-0x49249249"))) (; ";")) (if_statement "if (uVar4 == 0) {\n    uVar10 = 1;\nLAB_001a5b4c:\n    iVar2 = uVar10 * 0x38;\n  }\n  else {\n    uVar10 = iVar2 * 0x6db6db6e;\n    if (uVar10 < uVar4) {\n      iVar2 = -0x20;\n    }\n    else {\n      iVar2 = -0x20;\n      if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar10 = 1;\nLAB_001a5b4c:\n    iVar2 = uVar10 * 0x38;\n  }" ({ "{") (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" (identifier "uVar10") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_001a5b4c:\n    iVar2 = uVar10 * 0x38;" (statement_identifier "LAB_001a5b4c") (: ":") (expression_statement "iVar2 = uVar10 * 0x38;" (assignment_expression "iVar2 = uVar10 * 0x38" (identifier "iVar2") (= "=") (binary_expression "uVar10 * 0x38" (identifier "uVar10") (* "*") (number_literal "0x38"))) (; ";"))) (} "}")) (else_clause "else {\n    uVar10 = iVar2 * 0x6db6db6e;\n    if (uVar10 < uVar4) {\n      iVar2 = -0x20;\n    }\n    else {\n      iVar2 = -0x20;\n      if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    uVar10 = iVar2 * 0x6db6db6e;\n    if (uVar10 < uVar4) {\n      iVar2 = -0x20;\n    }\n    else {\n      iVar2 = -0x20;\n      if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }\n  }" ({ "{") (expression_statement "uVar10 = iVar2 * 0x6db6db6e;" (assignment_expression "uVar10 = iVar2 * 0x6db6db6e" (identifier "uVar10") (= "=") (binary_expression "iVar2 * 0x6db6db6e" (identifier "iVar2") (* "*") (number_literal "0x6db6db6e"))) (; ";")) (if_statement "if (uVar10 < uVar4) {\n      iVar2 = -0x20;\n    }\n    else {\n      iVar2 = -0x20;\n      if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" (if "if") (parenthesized_expression "(uVar10 < uVar4)" (( "(") (binary_expression "uVar10 < uVar4" (identifier "uVar10") (< "<") (identifier "uVar4")) () ")")) (compound_statement "{\n      iVar2 = -0x20;\n    }" ({ "{") (expression_statement "iVar2 = -0x20;" (assignment_expression "iVar2 = -0x20" (identifier "iVar2") (= "=") (number_literal "-0x20")) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = -0x20;\n      if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" (else "else") (compound_statement "{\n      iVar2 = -0x20;\n      if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }\n    }" ({ "{") (expression_statement "iVar2 = -0x20;" (assignment_expression "iVar2 = -0x20" (identifier "iVar2") (= "=") (number_literal "-0x20")) (; ";")) (if_statement "if (uVar10 < 0x4924925) {\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }" (if "if") (parenthesized_expression "(uVar10 < 0x4924925)" (( "(") (binary_expression "uVar10 < 0x4924925" (identifier "uVar10") (< "<") (number_literal "0x4924925")) () ")")) (compound_statement "{\n        puVar27 = (undefined4 *)&DAT_00000038;\n        if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }\n        goto LAB_001a5b4c;\n      }" ({ "{") (expression_statement "puVar27 = (undefined4 *)&DAT_00000038;" (assignment_expression "puVar27 = (undefined4 *)&DAT_00000038" (identifier "puVar27") (= "=") (cast_expression "(undefined4 *)&DAT_00000038" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000038" (& "&") (identifier "DAT_00000038")))) (; ";")) (if_statement "if (uVar10 == 0) {\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }" (if "if") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar2 = 0;\n          puVar5 = (undefined4 *)0x0;\n          goto LAB_001a57f4;\n        }" ({ "{") (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" (identifier "puVar5") (= "=") (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 "puVar5 = (undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar2);" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar2)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar28 + 0x28cbe4))(iVar2)" (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 "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x28cbe4)" (( "(") (binary_expression "pcVar28 + 0x28cbe4" (identifier "pcVar28") (+ "+") (number_literal "0x28cbe4")) () ")"))))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))))) (; ";")) (expression_statement "iVar2 = (int)puVar5 + iVar2;" (assignment_expression "iVar2 = (int)puVar5 + iVar2" (identifier "iVar2") (= "=") (binary_expression "(int)puVar5 + iVar2" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (identifier "iVar2"))) (; ";")) (expression_statement "puVar27 = puVar5 + 0xe;" (assignment_expression "puVar27 = puVar5 + 0xe" (identifier "puVar27") (= "=") (binary_expression "puVar5 + 0xe" (identifier "puVar5") (+ "+") (number_literal "0xe"))) (; ";")) (labeled_statement "LAB_001a57f4:\n  puVar6 = (undefined4 *)((int)puVar5 + ((int)puVar26 - (int)puVar13));" (statement_identifier "LAB_001a57f4") (: ":") (expression_statement "puVar6 = (undefined4 *)((int)puVar5 + ((int)puVar26 - (int)puVar13));" (assignment_expression "puVar6 = (undefined4 *)((int)puVar5 + ((int)puVar26 - (int)puVar13))" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)((int)puVar5 + ((int)puVar26 - (int)puVar13))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 + ((int)puVar26 - (int)puVar13))" (( "(") (binary_expression "(int)puVar5 + ((int)puVar26 - (int)puVar13)" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (parenthesized_expression "((int)puVar26 - (int)puVar13)" (( "(") (binary_expression "(int)puVar26 - (int)puVar13" (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26")) (- "-") (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13"))) () ")"))) () ")")))) (; ";"))) (expression_statement "uVar23 = puVar18[1];" (assignment_expression "uVar23 = puVar18[1]" (identifier "uVar23") (= "=") (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar9 = puVar18 + 9;" (assignment_expression "puVar9 = puVar18 + 9" (identifier "puVar9") (= "=") (binary_expression "puVar18 + 9" (identifier "puVar18") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "uVar22 = puVar18[2];" (assignment_expression "uVar22 = puVar18[2]" (identifier "uVar22") (= "=") (subscript_expression "puVar18[2]" (identifier "puVar18") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar21 = puVar18[3];" (assignment_expression "uVar21 = puVar18[3]" (identifier "uVar21") (= "=") (subscript_expression "puVar18[3]" (identifier "puVar18") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar20 = puVar18[4];" (assignment_expression "uVar20 = puVar18[4]" (identifier "uVar20") (= "=") (subscript_expression "puVar18[4]" (identifier "puVar18") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar18[5];" (assignment_expression "uVar19 = puVar18[5]" (identifier "uVar19") (= "=") (subscript_expression "puVar18[5]" (identifier "puVar18") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar3 = puVar18[6];" (assignment_expression "uVar3 = puVar18[6]" (identifier "uVar3") (= "=") (subscript_expression "puVar18[6]" (identifier "puVar18") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar16 = (undefined4 *)puVar18[7];" (assignment_expression "puVar16 = (undefined4 *)puVar18[7]" (identifier "puVar16") (= "=") (cast_expression "(undefined4 *)puVar18[7]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar18[7]" (identifier "puVar18") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "*puVar6 = *puVar18;" (assignment_expression "*puVar6 = *puVar18" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "*puVar18" (* "*") (identifier "puVar18"))) (; ";")) (expression_statement "puVar6[1] = uVar23;" (assignment_expression "puVar6[1] = uVar23" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "puVar6[2] = uVar22;" (assignment_expression "puVar6[2] = uVar22" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "puVar6[3] = uVar21;" (assignment_expression "puVar6[3] = uVar21" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "puVar6[4] = uVar20;" (assignment_expression "puVar6[4] = uVar20" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "puVar6[5] = uVar19;" (assignment_expression "puVar6[5] = uVar19" (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar6[6] = uVar3;" (assignment_expression "puVar6[6] = uVar3" (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "puVar6[7] = puVar6 + 9;" (assignment_expression "puVar6[7] = puVar6 + 9" (subscript_expression "puVar6[7]" (identifier "puVar6") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "puVar6 + 9" (identifier "puVar6") (+ "+") (number_literal "9"))) (; ";")) (if_statement "if (puVar16 == puVar9) {\n    uVar20 = puVar18[10];\n    uVar19 = puVar18[0xb];\n    uVar3 = puVar18[0xc];\n    puVar6[9] = *puVar9;\n    puVar6[10] = uVar20;\n    puVar6[0xb] = uVar19;\n    puVar6[0xc] = uVar3;\n  }\n  else {\n    uVar3 = puVar18[9];\n    puVar6[7] = puVar16;\n    puVar6[9] = uVar3;\n  }" (if "if") (parenthesized_expression "(puVar16 == puVar9)" (( "(") (binary_expression "puVar16 == puVar9" (identifier "puVar16") (== "==") (identifier "puVar9")) () ")")) (compound_statement "{\n    uVar20 = puVar18[10];\n    uVar19 = puVar18[0xb];\n    uVar3 = puVar18[0xc];\n    puVar6[9] = *puVar9;\n    puVar6[10] = uVar20;\n    puVar6[0xb] = uVar19;\n    puVar6[0xc] = uVar3;\n  }" ({ "{") (expression_statement "uVar20 = puVar18[10];" (assignment_expression "uVar20 = puVar18[10]" (identifier "uVar20") (= "=") (subscript_expression "puVar18[10]" (identifier "puVar18") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar18[0xb];" (assignment_expression "uVar19 = puVar18[0xb]" (identifier "uVar19") (= "=") (subscript_expression "puVar18[0xb]" (identifier "puVar18") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "uVar3 = puVar18[0xc];" (assignment_expression "uVar3 = puVar18[0xc]" (identifier "uVar3") (= "=") (subscript_expression "puVar18[0xc]" (identifier "puVar18") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "puVar6[9] = *puVar9;" (assignment_expression "puVar6[9] = *puVar9" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar6[10] = uVar20;" (assignment_expression "puVar6[10] = uVar20" (subscript_expression "puVar6[10]" (identifier "puVar6") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "puVar6[0xb] = uVar19;" (assignment_expression "puVar6[0xb] = uVar19" (subscript_expression "puVar6[0xb]" (identifier "puVar6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar6[0xc] = uVar3;" (assignment_expression "puVar6[0xc] = uVar3" (subscript_expression "puVar6[0xc]" (identifier "puVar6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (} "}")) (else_clause "else {\n    uVar3 = puVar18[9];\n    puVar6[7] = puVar16;\n    puVar6[9] = uVar3;\n  }" (else "else") (compound_statement "{\n    uVar3 = puVar18[9];\n    puVar6[7] = puVar16;\n    puVar6[9] = uVar3;\n  }" ({ "{") (expression_statement "uVar3 = puVar18[9];" (assignment_expression "uVar3 = puVar18[9]" (identifier "uVar3") (= "=") (subscript_expression "puVar18[9]" (identifier "puVar18") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "puVar6[7] = puVar16;" (assignment_expression "puVar6[7] = puVar16" (subscript_expression "puVar6[7]" (identifier "puVar6") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "puVar16")) (; ";")) (expression_statement "puVar6[9] = uVar3;" (assignment_expression "puVar6[9] = uVar3" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (} "}")))) (expression_statement "uVar3 = puVar18[8];" (assignment_expression "uVar3 = puVar18[8]" (identifier "uVar3") (= "=") (subscript_expression "puVar18[8]" (identifier "puVar18") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar18[7] = puVar9;" (assignment_expression "puVar18[7] = puVar9" (subscript_expression "puVar18[7]" (identifier "puVar18") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar18[8] = 0;" (assignment_expression "puVar18[8] = 0" (subscript_expression "puVar18[8]" (identifier "puVar18") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[8] = uVar3;" (assignment_expression "puVar6[8] = uVar3" (subscript_expression "puVar6[8]" (identifier "puVar6") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (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 "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 9)" (( "(") (binary_expression "puVar18 + 9" (identifier "puVar18") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar13 != puVar26) {\n    puVar27 = puVar13 + 9;\n    puVar18 = puVar5;\n    while( true ) {\n      uVar3 = puVar27[-4];\n      uVar22 = puVar27[-8];\n      uVar21 = puVar27[-7];\n      uVar20 = puVar27[-6];\n      uVar19 = puVar27[-5];\n      *puVar18 = puVar27[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar3;\n      uVar3 = puVar27[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar3;\n      if ((undefined4 *)puVar27[-2] == puVar27) {\n        uVar20 = puVar27[1];\n        uVar19 = puVar27[2];\n        uVar3 = puVar27[3];\n        puVar18[9] = *puVar27;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar3;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      if (puVar26 == puVar27 + 5) break;\n      puVar27 = puVar27 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }\n    puVar27 = puVar5 + ((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }" (if "if") (parenthesized_expression "(puVar13 != puVar26)" (( "(") (binary_expression "puVar13 != puVar26" (identifier "puVar13") (!= "!=") (identifier "puVar26")) () ")")) (compound_statement "{\n    puVar27 = puVar13 + 9;\n    puVar18 = puVar5;\n    while( true ) {\n      uVar3 = puVar27[-4];\n      uVar22 = puVar27[-8];\n      uVar21 = puVar27[-7];\n      uVar20 = puVar27[-6];\n      uVar19 = puVar27[-5];\n      *puVar18 = puVar27[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar3;\n      uVar3 = puVar27[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar3;\n      if ((undefined4 *)puVar27[-2] == puVar27) {\n        uVar20 = puVar27[1];\n        uVar19 = puVar27[2];\n        uVar3 = puVar27[3];\n        puVar18[9] = *puVar27;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar3;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      if (puVar26 == puVar27 + 5) break;\n      puVar27 = puVar27 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }\n    puVar27 = puVar5 + ((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;\n  }" ({ "{") (expression_statement "puVar27 = puVar13 + 9;" (assignment_expression "puVar27 = puVar13 + 9" (identifier "puVar27") (= "=") (binary_expression "puVar13 + 9" (identifier "puVar13") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "puVar18 = puVar5;" (assignment_expression "puVar18 = puVar5" (identifier "puVar18") (= "=") (identifier "puVar5")) (; ";")) (while_statement "while( true ) {\n      uVar3 = puVar27[-4];\n      uVar22 = puVar27[-8];\n      uVar21 = puVar27[-7];\n      uVar20 = puVar27[-6];\n      uVar19 = puVar27[-5];\n      *puVar18 = puVar27[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar3;\n      uVar3 = puVar27[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar3;\n      if ((undefined4 *)puVar27[-2] == puVar27) {\n        uVar20 = puVar27[1];\n        uVar19 = puVar27[2];\n        uVar3 = puVar27[3];\n        puVar18[9] = *puVar27;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar3;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      if (puVar26 == puVar27 + 5) break;\n      puVar27 = puVar27 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      uVar3 = puVar27[-4];\n      uVar22 = puVar27[-8];\n      uVar21 = puVar27[-7];\n      uVar20 = puVar27[-6];\n      uVar19 = puVar27[-5];\n      *puVar18 = puVar27[-9];\n      puVar18[1] = uVar22;\n      puVar18[2] = uVar21;\n      puVar18[3] = uVar20;\n      puVar18[4] = uVar19;\n      puVar18[5] = uVar3;\n      uVar3 = puVar27[-3];\n      puVar18[7] = puVar18 + 9;\n      puVar18[6] = uVar3;\n      if ((undefined4 *)puVar27[-2] == puVar27) {\n        uVar20 = puVar27[1];\n        uVar19 = puVar27[2];\n        uVar3 = puVar27[3];\n        puVar18[9] = *puVar27;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar3;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      if (puVar26 == puVar27 + 5) break;\n      puVar27 = puVar27 + 0xe;\n      puVar18 = puVar18 + 0xe;\n    }" ({ "{") (expression_statement "uVar3 = puVar27[-4];" (assignment_expression "uVar3 = puVar27[-4]" (identifier "uVar3") (= "=") (subscript_expression "puVar27[-4]" (identifier "puVar27") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "uVar22 = puVar27[-8];" (assignment_expression "uVar22 = puVar27[-8]" (identifier "uVar22") (= "=") (subscript_expression "puVar27[-8]" (identifier "puVar27") ([ "[") (number_literal "-8") (] "]"))) (; ";")) (expression_statement "uVar21 = puVar27[-7];" (assignment_expression "uVar21 = puVar27[-7]" (identifier "uVar21") (= "=") (subscript_expression "puVar27[-7]" (identifier "puVar27") ([ "[") (number_literal "-7") (] "]"))) (; ";")) (expression_statement "uVar20 = puVar27[-6];" (assignment_expression "uVar20 = puVar27[-6]" (identifier "uVar20") (= "=") (subscript_expression "puVar27[-6]" (identifier "puVar27") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar27[-5];" (assignment_expression "uVar19 = puVar27[-5]" (identifier "uVar19") (= "=") (subscript_expression "puVar27[-5]" (identifier "puVar27") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "*puVar18 = puVar27[-9];" (assignment_expression "*puVar18 = puVar27[-9]" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (subscript_expression "puVar27[-9]" (identifier "puVar27") ([ "[") (number_literal "-9") (] "]"))) (; ";")) (expression_statement "puVar18[1] = uVar22;" (assignment_expression "puVar18[1] = uVar22" (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "puVar18[2] = uVar21;" (assignment_expression "puVar18[2] = uVar21" (subscript_expression "puVar18[2]" (identifier "puVar18") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "puVar18[3] = uVar20;" (assignment_expression "puVar18[3] = uVar20" (subscript_expression "puVar18[3]" (identifier "puVar18") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "puVar18[4] = uVar19;" (assignment_expression "puVar18[4] = uVar19" (subscript_expression "puVar18[4]" (identifier "puVar18") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar18[5] = uVar3;" (assignment_expression "puVar18[5] = uVar3" (subscript_expression "puVar18[5]" (identifier "puVar18") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "uVar3 = puVar27[-3];" (assignment_expression "uVar3 = puVar27[-3]" (identifier "uVar3") (= "=") (subscript_expression "puVar27[-3]" (identifier "puVar27") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (expression_statement "puVar18[7] = puVar18 + 9;" (assignment_expression "puVar18[7] = puVar18 + 9" (subscript_expression "puVar18[7]" (identifier "puVar18") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "puVar18 + 9" (identifier "puVar18") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "puVar18[6] = uVar3;" (assignment_expression "puVar18[6] = uVar3" (subscript_expression "puVar18[6]" (identifier "puVar18") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (if_statement "if ((undefined4 *)puVar27[-2] == puVar27) {\n        uVar20 = puVar27[1];\n        uVar19 = puVar27[2];\n        uVar3 = puVar27[3];\n        puVar18[9] = *puVar27;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar3;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }\n      else {\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }" (if "if") (parenthesized_expression "((undefined4 *)puVar27[-2] == puVar27)" (( "(") (binary_expression "(undefined4 *)puVar27[-2] == puVar27" (cast_expression "(undefined4 *)puVar27[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar27[-2]" (identifier "puVar27") ([ "[") (number_literal "-2") (] "]"))) (== "==") (identifier "puVar27")) () ")")) (compound_statement "{\n        uVar20 = puVar27[1];\n        uVar19 = puVar27[2];\n        uVar3 = puVar27[3];\n        puVar18[9] = *puVar27;\n        puVar18[10] = uVar20;\n        puVar18[0xb] = uVar19;\n        puVar18[0xc] = uVar3;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }" ({ "{") (expression_statement "uVar20 = puVar27[1];" (assignment_expression "uVar20 = puVar27[1]" (identifier "uVar20") (= "=") (subscript_expression "puVar27[1]" (identifier "puVar27") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar27[2];" (assignment_expression "uVar19 = puVar27[2]" (identifier "uVar19") (= "=") (subscript_expression "puVar27[2]" (identifier "puVar27") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar3 = puVar27[3];" (assignment_expression "uVar3 = puVar27[3]" (identifier "uVar3") (= "=") (subscript_expression "puVar27[3]" (identifier "puVar27") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar18[9] = *puVar27;" (assignment_expression "puVar18[9] = *puVar27" (subscript_expression "puVar18[9]" (identifier "puVar18") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*puVar27" (* "*") (identifier "puVar27"))) (; ";")) (expression_statement "puVar18[10] = uVar20;" (assignment_expression "puVar18[10] = uVar20" (subscript_expression "puVar18[10]" (identifier "puVar18") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "puVar18[0xb] = uVar19;" (assignment_expression "puVar18[0xb] = uVar19" (subscript_expression "puVar18[0xb]" (identifier "puVar18") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar18[0xc] = uVar3;" (assignment_expression "puVar18[0xc] = uVar3" (subscript_expression "puVar18[0xc]" (identifier "puVar18") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "puVar18[8] = puVar27[-1];" (assignment_expression "puVar18[8] = puVar27[-1]" (subscript_expression "puVar18[8]" (identifier "puVar18") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "puVar27[-1]" (identifier "puVar27") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar27[-2] = puVar27;" (assignment_expression "puVar27[-2] = puVar27" (subscript_expression "puVar27[-2]" (identifier "puVar27") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar27")) (; ";")) (expression_statement "puVar27[-1] = 0;" (assignment_expression "puVar27[-1] = 0" (subscript_expression "puVar27[-1]" (identifier "puVar27") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar27 = 0;" (assignment_expression "*(undefined1 *)puVar27 = 0" (pointer_expression "*(undefined1 *)puVar27" (* "*") (cast_expression "(undefined1 *)puVar27" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar27"))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }" (else "else") (compound_statement "{\n        puVar18[7] = (undefined4 *)puVar27[-2];\n        puVar18[9] = *puVar27;\n        puVar18[8] = puVar27[-1];\n        puVar27[-2] = puVar27;\n        puVar27[-1] = 0;\n        *(undefined1 *)puVar27 = 0;\n      }" ({ "{") (expression_statement "puVar18[7] = (undefined4 *)puVar27[-2];" (assignment_expression "puVar18[7] = (undefined4 *)puVar27[-2]" (subscript_expression "puVar18[7]" (identifier "puVar18") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(undefined4 *)puVar27[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar27[-2]" (identifier "puVar27") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "puVar18[9] = *puVar27;" (assignment_expression "puVar18[9] = *puVar27" (subscript_expression "puVar18[9]" (identifier "puVar18") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*puVar27" (* "*") (identifier "puVar27"))) (; ";")) (expression_statement "puVar18[8] = puVar27[-1];" (assignment_expression "puVar18[8] = puVar27[-1]" (subscript_expression "puVar18[8]" (identifier "puVar18") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "puVar27[-1]" (identifier "puVar27") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar27[-2] = puVar27;" (assignment_expression "puVar27[-2] = puVar27" (subscript_expression "puVar27[-2]" (identifier "puVar27") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar27")) (; ";")) (expression_statement "puVar27[-1] = 0;" (assignment_expression "puVar27[-1] = 0" (subscript_expression "puVar27[-1]" (identifier "puVar27") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar27 = 0;" (assignment_expression "*(undefined1 *)puVar27 = 0" (pointer_expression "*(undefined1 *)puVar27" (* "*") (cast_expression "(undefined1 *)puVar27" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar27"))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (puVar26 == puVar27 + 5) break;" (if "if") (parenthesized_expression "(puVar26 == puVar27 + 5)" (( "(") (binary_expression "puVar26 == puVar27 + 5" (identifier "puVar26") (== "==") (binary_expression "puVar27 + 5" (identifier "puVar27") (+ "+") (number_literal "5"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar27 = puVar27 + 0xe;" (assignment_expression "puVar27 = puVar27 + 0xe" (identifier "puVar27") (= "=") (binary_expression "puVar27 + 0xe" (identifier "puVar27") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "puVar18 = puVar18 + 0xe;" (assignment_expression "puVar18 = puVar18 + 0xe" (identifier "puVar18") (= "=") (binary_expression "puVar18 + 0xe" (identifier "puVar18") (+ "+") (number_literal "0xe"))) (; ";")) (} "}"))) (expression_statement "puVar27 = puVar5 + ((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe;" (assignment_expression "puVar27 = puVar5 + ((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" (identifier "puVar27") (= "=") (binary_expression "puVar5 + ((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" (identifier "puVar5") (+ "+") (binary_expression "((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2) * 0xe" (parenthesized_expression "((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2)" (( "(") (binary_expression "(((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff) + 2" (parenthesized_expression "(((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff)" (( "(") (binary_expression "((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &\n                        0x1fffffff" (binary_expression "((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7" (parenthesized_expression "((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3)" (( "(") (binary_expression "(uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3" (call_expression "(uint)((int)puVar27 + (-0x24 - (int)puVar13))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar27 + (-0x24 - (int)puVar13))" (( "(") (binary_expression "(int)puVar27 + (-0x24 - (int)puVar13)" (cast_expression "(int)puVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar27")) (+ "+") (parenthesized_expression "(-0x24 - (int)puVar13)" (( "(") (binary_expression "-0x24 - (int)puVar13" (number_literal "-0x24") (- "-") (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13"))) () ")"))) () ")"))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "0x16db6db7")) (& "&") (number_literal "0x1fffffff")) () ")")) (+ "+") (number_literal "2")) () ")")) (* "*") (number_literal "0xe")))) (; ";")) (} "}"))) (expression_statement "puVar6 = puVar26 + 9;" (assignment_expression "puVar6 = puVar26 + 9" (identifier "puVar6") (= "=") (binary_expression "puVar26 + 9" (identifier "puVar26") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "puVar9 = puVar27;" (assignment_expression "puVar9 = puVar27" (identifier "puVar9") (= "=") (identifier "puVar27")) (; ";")) (expression_statement "puVar18 = puVar13;" (assignment_expression "puVar18 = puVar13" (identifier "puVar18") (= "=") (identifier "puVar13")) (; ";")) (if_statement "if (puVar24 != puVar26) {\n    do {\n      while( true ) {\n        uVar25 = puVar6[-9];\n        uVar23 = puVar6[-8];\n        uVar22 = puVar6[-7];\n        uVar21 = puVar6[-6];\n        uVar20 = puVar6[-5];\n        uVar19 = puVar6[-4];\n        uVar3 = puVar6[-3];\n        puVar16 = (undefined4 *)puVar6[-2];\n        puVar9[7] = puVar9 + 9;\n        *puVar9 = uVar25;\n        puVar9[1] = uVar23;\n        puVar9[2] = uVar22;\n        puVar9[3] = uVar21;\n        puVar9[4] = uVar20;\n        puVar9[5] = uVar19;\n        puVar9[6] = uVar3;\n        if (puVar6 != puVar16) break;\n        uVar20 = puVar6[1];\n        uVar19 = puVar6[2];\n        uVar3 = puVar6[3];\n        puVar9[9] = *puVar6;\n        puVar9[10] = uVar20;\n        puVar9[0xb] = uVar19;\n        puVar9[0xc] = uVar3;\n        puVar16 = puVar6 + 5;\n        puVar6[-2] = puVar6;\n        *(undefined1 *)puVar6 = 0;\n        uVar3 = puVar6[-1];\n        puVar6[-1] = 0;\n        puVar9[8] = uVar3;\n        puVar6 = puVar6 + 0xe;\n        puVar9 = puVar9 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar3 = *puVar6;\n      uVar19 = puVar6[-1];\n      puVar9[7] = puVar16;\n      puVar9[9] = uVar3;\n      puVar16 = puVar6 + 5;\n      puVar6[-2] = puVar6;\n      puVar6[-1] = 0;\n      *(undefined1 *)puVar6 = 0;\n      puVar9[8] = uVar19;\n      puVar6 = puVar6 + 0xe;\n      puVar9 = puVar9 + 0xe;\n    } while (puVar24 != puVar16);\nLAB_001a5a78:\n    puVar27 = puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }" (if "if") (parenthesized_expression "(puVar24 != puVar26)" (( "(") (binary_expression "puVar24 != puVar26" (identifier "puVar24") (!= "!=") (identifier "puVar26")) () ")")) (compound_statement "{\n    do {\n      while( true ) {\n        uVar25 = puVar6[-9];\n        uVar23 = puVar6[-8];\n        uVar22 = puVar6[-7];\n        uVar21 = puVar6[-6];\n        uVar20 = puVar6[-5];\n        uVar19 = puVar6[-4];\n        uVar3 = puVar6[-3];\n        puVar16 = (undefined4 *)puVar6[-2];\n        puVar9[7] = puVar9 + 9;\n        *puVar9 = uVar25;\n        puVar9[1] = uVar23;\n        puVar9[2] = uVar22;\n        puVar9[3] = uVar21;\n        puVar9[4] = uVar20;\n        puVar9[5] = uVar19;\n        puVar9[6] = uVar3;\n        if (puVar6 != puVar16) break;\n        uVar20 = puVar6[1];\n        uVar19 = puVar6[2];\n        uVar3 = puVar6[3];\n        puVar9[9] = *puVar6;\n        puVar9[10] = uVar20;\n        puVar9[0xb] = uVar19;\n        puVar9[0xc] = uVar3;\n        puVar16 = puVar6 + 5;\n        puVar6[-2] = puVar6;\n        *(undefined1 *)puVar6 = 0;\n        uVar3 = puVar6[-1];\n        puVar6[-1] = 0;\n        puVar9[8] = uVar3;\n        puVar6 = puVar6 + 0xe;\n        puVar9 = puVar9 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar3 = *puVar6;\n      uVar19 = puVar6[-1];\n      puVar9[7] = puVar16;\n      puVar9[9] = uVar3;\n      puVar16 = puVar6 + 5;\n      puVar6[-2] = puVar6;\n      puVar6[-1] = 0;\n      *(undefined1 *)puVar6 = 0;\n      puVar9[8] = uVar19;\n      puVar6 = puVar6 + 0xe;\n      puVar9 = puVar9 + 0xe;\n    } while (puVar24 != puVar16);\nLAB_001a5a78:\n    puVar27 = puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;\n  }" ({ "{") (do_statement "do {\n      while( true ) {\n        uVar25 = puVar6[-9];\n        uVar23 = puVar6[-8];\n        uVar22 = puVar6[-7];\n        uVar21 = puVar6[-6];\n        uVar20 = puVar6[-5];\n        uVar19 = puVar6[-4];\n        uVar3 = puVar6[-3];\n        puVar16 = (undefined4 *)puVar6[-2];\n        puVar9[7] = puVar9 + 9;\n        *puVar9 = uVar25;\n        puVar9[1] = uVar23;\n        puVar9[2] = uVar22;\n        puVar9[3] = uVar21;\n        puVar9[4] = uVar20;\n        puVar9[5] = uVar19;\n        puVar9[6] = uVar3;\n        if (puVar6 != puVar16) break;\n        uVar20 = puVar6[1];\n        uVar19 = puVar6[2];\n        uVar3 = puVar6[3];\n        puVar9[9] = *puVar6;\n        puVar9[10] = uVar20;\n        puVar9[0xb] = uVar19;\n        puVar9[0xc] = uVar3;\n        puVar16 = puVar6 + 5;\n        puVar6[-2] = puVar6;\n        *(undefined1 *)puVar6 = 0;\n        uVar3 = puVar6[-1];\n        puVar6[-1] = 0;\n        puVar9[8] = uVar3;\n        puVar6 = puVar6 + 0xe;\n        puVar9 = puVar9 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar3 = *puVar6;\n      uVar19 = puVar6[-1];\n      puVar9[7] = puVar16;\n      puVar9[9] = uVar3;\n      puVar16 = puVar6 + 5;\n      puVar6[-2] = puVar6;\n      puVar6[-1] = 0;\n      *(undefined1 *)puVar6 = 0;\n      puVar9[8] = uVar19;\n      puVar6 = puVar6 + 0xe;\n      puVar9 = puVar9 + 0xe;\n    } while (puVar24 != puVar16);" (do "do") (compound_statement "{\n      while( true ) {\n        uVar25 = puVar6[-9];\n        uVar23 = puVar6[-8];\n        uVar22 = puVar6[-7];\n        uVar21 = puVar6[-6];\n        uVar20 = puVar6[-5];\n        uVar19 = puVar6[-4];\n        uVar3 = puVar6[-3];\n        puVar16 = (undefined4 *)puVar6[-2];\n        puVar9[7] = puVar9 + 9;\n        *puVar9 = uVar25;\n        puVar9[1] = uVar23;\n        puVar9[2] = uVar22;\n        puVar9[3] = uVar21;\n        puVar9[4] = uVar20;\n        puVar9[5] = uVar19;\n        puVar9[6] = uVar3;\n        if (puVar6 != puVar16) break;\n        uVar20 = puVar6[1];\n        uVar19 = puVar6[2];\n        uVar3 = puVar6[3];\n        puVar9[9] = *puVar6;\n        puVar9[10] = uVar20;\n        puVar9[0xb] = uVar19;\n        puVar9[0xc] = uVar3;\n        puVar16 = puVar6 + 5;\n        puVar6[-2] = puVar6;\n        *(undefined1 *)puVar6 = 0;\n        uVar3 = puVar6[-1];\n        puVar6[-1] = 0;\n        puVar9[8] = uVar3;\n        puVar6 = puVar6 + 0xe;\n        puVar9 = puVar9 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }\n      uVar3 = *puVar6;\n      uVar19 = puVar6[-1];\n      puVar9[7] = puVar16;\n      puVar9[9] = uVar3;\n      puVar16 = puVar6 + 5;\n      puVar6[-2] = puVar6;\n      puVar6[-1] = 0;\n      *(undefined1 *)puVar6 = 0;\n      puVar9[8] = uVar19;\n      puVar6 = puVar6 + 0xe;\n      puVar9 = puVar9 + 0xe;\n    }" ({ "{") (while_statement "while( true ) {\n        uVar25 = puVar6[-9];\n        uVar23 = puVar6[-8];\n        uVar22 = puVar6[-7];\n        uVar21 = puVar6[-6];\n        uVar20 = puVar6[-5];\n        uVar19 = puVar6[-4];\n        uVar3 = puVar6[-3];\n        puVar16 = (undefined4 *)puVar6[-2];\n        puVar9[7] = puVar9 + 9;\n        *puVar9 = uVar25;\n        puVar9[1] = uVar23;\n        puVar9[2] = uVar22;\n        puVar9[3] = uVar21;\n        puVar9[4] = uVar20;\n        puVar9[5] = uVar19;\n        puVar9[6] = uVar3;\n        if (puVar6 != puVar16) break;\n        uVar20 = puVar6[1];\n        uVar19 = puVar6[2];\n        uVar3 = puVar6[3];\n        puVar9[9] = *puVar6;\n        puVar9[10] = uVar20;\n        puVar9[0xb] = uVar19;\n        puVar9[0xc] = uVar3;\n        puVar16 = puVar6 + 5;\n        puVar6[-2] = puVar6;\n        *(undefined1 *)puVar6 = 0;\n        uVar3 = puVar6[-1];\n        puVar6[-1] = 0;\n        puVar9[8] = uVar3;\n        puVar6 = puVar6 + 0xe;\n        puVar9 = puVar9 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        uVar25 = puVar6[-9];\n        uVar23 = puVar6[-8];\n        uVar22 = puVar6[-7];\n        uVar21 = puVar6[-6];\n        uVar20 = puVar6[-5];\n        uVar19 = puVar6[-4];\n        uVar3 = puVar6[-3];\n        puVar16 = (undefined4 *)puVar6[-2];\n        puVar9[7] = puVar9 + 9;\n        *puVar9 = uVar25;\n        puVar9[1] = uVar23;\n        puVar9[2] = uVar22;\n        puVar9[3] = uVar21;\n        puVar9[4] = uVar20;\n        puVar9[5] = uVar19;\n        puVar9[6] = uVar3;\n        if (puVar6 != puVar16) break;\n        uVar20 = puVar6[1];\n        uVar19 = puVar6[2];\n        uVar3 = puVar6[3];\n        puVar9[9] = *puVar6;\n        puVar9[10] = uVar20;\n        puVar9[0xb] = uVar19;\n        puVar9[0xc] = uVar3;\n        puVar16 = puVar6 + 5;\n        puVar6[-2] = puVar6;\n        *(undefined1 *)puVar6 = 0;\n        uVar3 = puVar6[-1];\n        puVar6[-1] = 0;\n        puVar9[8] = uVar3;\n        puVar6 = puVar6 + 0xe;\n        puVar9 = puVar9 + 0xe;\n        if (puVar24 == puVar16) goto LAB_001a5a78;\n      }" ({ "{") (expression_statement "uVar25 = puVar6[-9];" (assignment_expression "uVar25 = puVar6[-9]" (identifier "uVar25") (= "=") (subscript_expression "puVar6[-9]" (identifier "puVar6") ([ "[") (number_literal "-9") (] "]"))) (; ";")) (expression_statement "uVar23 = puVar6[-8];" (assignment_expression "uVar23 = puVar6[-8]" (identifier "uVar23") (= "=") (subscript_expression "puVar6[-8]" (identifier "puVar6") ([ "[") (number_literal "-8") (] "]"))) (; ";")) (expression_statement "uVar22 = puVar6[-7];" (assignment_expression "uVar22 = puVar6[-7]" (identifier "uVar22") (= "=") (subscript_expression "puVar6[-7]" (identifier "puVar6") ([ "[") (number_literal "-7") (] "]"))) (; ";")) (expression_statement "uVar21 = puVar6[-6];" (assignment_expression "uVar21 = puVar6[-6]" (identifier "uVar21") (= "=") (subscript_expression "puVar6[-6]" (identifier "puVar6") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "uVar20 = puVar6[-5];" (assignment_expression "uVar20 = puVar6[-5]" (identifier "uVar20") (= "=") (subscript_expression "puVar6[-5]" (identifier "puVar6") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar6[-4];" (assignment_expression "uVar19 = puVar6[-4]" (identifier "uVar19") (= "=") (subscript_expression "puVar6[-4]" (identifier "puVar6") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "uVar3 = puVar6[-3];" (assignment_expression "uVar3 = puVar6[-3]" (identifier "uVar3") (= "=") (subscript_expression "puVar6[-3]" (identifier "puVar6") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (expression_statement "puVar16 = (undefined4 *)puVar6[-2];" (assignment_expression "puVar16 = (undefined4 *)puVar6[-2]" (identifier "puVar16") (= "=") (cast_expression "(undefined4 *)puVar6[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[-2]" (identifier "puVar6") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "puVar9[7] = puVar9 + 9;" (assignment_expression "puVar9[7] = puVar9 + 9" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "puVar9 + 9" (identifier "puVar9") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "*puVar9 = uVar25;" (assignment_expression "*puVar9 = uVar25" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (identifier "uVar25")) (; ";")) (expression_statement "puVar9[1] = uVar23;" (assignment_expression "puVar9[1] = uVar23" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "puVar9[2] = uVar22;" (assignment_expression "puVar9[2] = uVar22" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "puVar9[3] = uVar21;" (assignment_expression "puVar9[3] = uVar21" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "puVar9[4] = uVar20;" (assignment_expression "puVar9[4] = uVar20" (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "puVar9[5] = uVar19;" (assignment_expression "puVar9[5] = uVar19" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar9[6] = uVar3;" (assignment_expression "puVar9[6] = uVar3" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (if_statement "if (puVar6 != puVar16) break;" (if "if") (parenthesized_expression "(puVar6 != puVar16)" (( "(") (binary_expression "puVar6 != puVar16" (identifier "puVar6") (!= "!=") (identifier "puVar16")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar20 = puVar6[1];" (assignment_expression "uVar20 = puVar6[1]" (identifier "uVar20") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar19 = puVar6[2];" (assignment_expression "uVar19 = puVar6[2]" (identifier "uVar19") (= "=") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar3 = puVar6[3];" (assignment_expression "uVar3 = puVar6[3]" (identifier "uVar3") (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar9[9] = *puVar6;" (assignment_expression "puVar9[9] = *puVar6" (subscript_expression "puVar9[9]" (identifier "puVar9") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "puVar9[10] = uVar20;" (assignment_expression "puVar9[10] = uVar20" (subscript_expression "puVar9[10]" (identifier "puVar9") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "puVar9[0xb] = uVar19;" (assignment_expression "puVar9[0xb] = uVar19" (subscript_expression "puVar9[0xb]" (identifier "puVar9") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar9[0xc] = uVar3;" (assignment_expression "puVar9[0xc] = uVar3" (subscript_expression "puVar9[0xc]" (identifier "puVar9") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "puVar16 = puVar6 + 5;" (assignment_expression "puVar16 = puVar6 + 5" (identifier "puVar16") (= "=") (binary_expression "puVar6 + 5" (identifier "puVar6") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "puVar6[-2] = puVar6;" (assignment_expression "puVar6[-2] = puVar6" (subscript_expression "puVar6[-2]" (identifier "puVar6") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" (* "*") (cast_expression "(undefined1 *)puVar6" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = puVar6[-1];" (assignment_expression "uVar3 = puVar6[-1]" (identifier "uVar3") (= "=") (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[8] = uVar3;" (assignment_expression "puVar9[8] = uVar3" (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "puVar6 = puVar6 + 0xe;" (assignment_expression "puVar6 = puVar6 + 0xe" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 0xe" (identifier "puVar6") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "puVar9 = puVar9 + 0xe;" (assignment_expression "puVar9 = puVar9 + 0xe" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 0xe" (identifier "puVar9") (+ "+") (number_literal "0xe"))) (; ";")) (if_statement "if (puVar24 == puVar16) goto LAB_001a5a78;" (if "if") (parenthesized_expression "(puVar24 == puVar16)" (( "(") (binary_expression "puVar24 == puVar16" (identifier "puVar24") (== "==") (identifier "puVar16")) () ")")) (goto_statement "goto LAB_001a5a78;" (goto "goto") (statement_identifier "LAB_001a5a78") (; ";"))) (} "}"))) (expression_statement "uVar3 = *puVar6;" (assignment_expression "uVar3 = *puVar6" (identifier "uVar3") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "uVar19 = puVar6[-1];" (assignment_expression "uVar19 = puVar6[-1]" (identifier "uVar19") (= "=") (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar9[7] = puVar16;" (assignment_expression "puVar9[7] = puVar16" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "puVar16")) (; ";")) (expression_statement "puVar9[9] = uVar3;" (assignment_expression "puVar9[9] = uVar3" (subscript_expression "puVar9[9]" (identifier "puVar9") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "puVar16 = puVar6 + 5;" (assignment_expression "puVar16 = puVar6 + 5" (identifier "puVar16") (= "=") (binary_expression "puVar6 + 5" (identifier "puVar6") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "puVar6[-2] = puVar6;" (assignment_expression "puVar6[-2] = puVar6" (subscript_expression "puVar6[-2]" (identifier "puVar6") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" (* "*") (cast_expression "(undefined1 *)puVar6" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[8] = uVar19;" (assignment_expression "puVar9[8] = uVar19" (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar6 = puVar6 + 0xe;" (assignment_expression "puVar6 = puVar6 + 0xe" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 0xe" (identifier "puVar6") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "puVar9 = puVar9 + 0xe;" (assignment_expression "puVar9 = puVar9 + 0xe" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 0xe" (identifier "puVar9") (+ "+") (number_literal "0xe"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar24 != puVar16)" (( "(") (binary_expression "puVar24 != puVar16" (identifier "puVar24") (!= "!=") (identifier "puVar16")) () ")")) (; ";")) (labeled_statement "LAB_001a5a78:\n    puVar27 = puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;" (statement_identifier "LAB_001a5a78") (: ":") (expression_statement "puVar27 = puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe;" (assignment_expression "puVar27 = puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" (identifier "puVar27") (= "=") (binary_expression "puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" (identifier "puVar27") (+ "+") (binary_expression "((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1) * 0xe" (parenthesized_expression "((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1)" (( "(") (binary_expression "(((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff) + 1" (parenthesized_expression "(((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff)" (( "(") (binary_expression "((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &\n                         0x1fffffff" (binary_expression "((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7" (parenthesized_expression "((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3)" (( "(") (binary_expression "(uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3" (call_expression "(uint)((int)puVar24 + (-0x38 - (int)puVar26))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar24 + (-0x38 - (int)puVar26))" (( "(") (binary_expression "(int)puVar24 + (-0x38 - (int)puVar26)" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (+ "+") (parenthesized_expression "(-0x38 - (int)puVar26)" (( "(") (binary_expression "-0x38 - (int)puVar26" (number_literal "-0x38") (- "-") (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26"))) () ")"))) () ")"))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "0x16db6db7")) (& "&") (number_literal "0x1fffffff")) () ")")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "0xe")))) (; ";"))) (} "}"))) (while_statement "while (puVar18 != puVar24) {\n    puVar26 = puVar18 + 7;\n    puVar6 = puVar18 + 9;\n    puVar18 = puVar18 + 0xe;\n    if ((undefined4 *)*puVar26 != puVar6) {\n      (**(code **)(pcVar28 + 0x28cb34))();\n    }\n  }" (while "while") (parenthesized_expression "(puVar18 != puVar24)" (( "(") (binary_expression "puVar18 != puVar24" (identifier "puVar18") (!= "!=") (identifier "puVar24")) () ")")) (compound_statement "{\n    puVar26 = puVar18 + 7;\n    puVar6 = puVar18 + 9;\n    puVar18 = puVar18 + 0xe;\n    if ((undefined4 *)*puVar26 != puVar6) {\n      (**(code **)(pcVar28 + 0x28cb34))();\n    }\n  }" ({ "{") (expression_statement "puVar26 = puVar18 + 7;" (assignment_expression "puVar26 = puVar18 + 7" (identifier "puVar26") (= "=") (binary_expression "puVar18 + 7" (identifier "puVar18") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "puVar6 = puVar18 + 9;" (assignment_expression "puVar6 = puVar18 + 9" (identifier "puVar6") (= "=") (binary_expression "puVar18 + 9" (identifier "puVar18") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "puVar18 = puVar18 + 0xe;" (assignment_expression "puVar18 = puVar18 + 0xe" (identifier "puVar18") (= "=") (binary_expression "puVar18 + 0xe" (identifier "puVar18") (+ "+") (number_literal "0xe"))) (; ";")) (if_statement "if ((undefined4 *)*puVar26 != puVar6) {\n      (**(code **)(pcVar28 + 0x28cb34))();\n    }" (if "if") (parenthesized_expression "((undefined4 *)*puVar26 != puVar6)" (( "(") (binary_expression "(undefined4 *)*puVar26 != puVar6" (cast_expression "(undefined4 *)*puVar26" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar26" (* "*") (identifier "puVar26"))) (!= "!=") (identifier "puVar6")) () ")")) (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 "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x28cb34)" (( "(") (binary_expression "pcVar28 + 0x28cb34" (identifier "pcVar28") (+ "+") (number_literal "0x28cb34")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n    (**(code **)(pcVar28 + 0x28cb34))(puVar13);\n  }" (if "if") (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(pcVar28 + 0x28cb34))(puVar13);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar28 + 0x28cb34))(puVar13);" (call_expression "(**(code **)(pcVar28 + 0x28cb34))(puVar13)" (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 "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x28cb34)" (( "(") (binary_expression "pcVar28 + 0x28cb34" (identifier "pcVar28") (+ "+") (number_literal "0x28cb34")) () ")"))))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "*puVar8 = puVar5;" (assignment_expression "*puVar8 = puVar5" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar8[1] = puVar27;" (assignment_expression "puVar8[1] = puVar27" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar27")) (; ";")) (expression_statement "puVar8[2] = iVar2;" (assignment_expression "puVar8[2] = iVar2" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))
(translation_unit (declaration type: (primitive_type) declarator: (ms_call_modifier) (ERROR (identifier) (identifier)) declarator: (identifier) (ERROR (number_literal)) (ERROR (identifier) (identifier)) declarator: (pointer_declarator declarator: (identifier)) (ERROR (identifier) (pointer_declarator declarator: (identifier)) (identifier)) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (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: (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)) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) 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: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) 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))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))))))) (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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (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: (identifier))) (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (identifier))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (labeled_statement label: (statement_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (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: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (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: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (number_literal)))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (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: (subscript_expression argument: (identifier) index: (number_literal)) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_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))))) (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: (identifier)))))) (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (MISSING ";")))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) 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 (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: (identifier) right: (number_literal)))))) arguments: (argument_list))))) (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: (binary_expression left: (subscript_expression argument: (identifier) index: (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) 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: (identifier) 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: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (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: (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: (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: (primitive_type) 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: (binary_expression left: (subscript_expression argument: (identifier) index: (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: (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: (identifier) 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: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (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: (binary_expression left: (subscript_expression argument: (identifier) index: (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: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) 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: (cast_expression type: (type_descriptor type: (primitive_type) 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: (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_file_header::do_sized_write<64, true>(gold::Output_file*) */

void __thiscall
gold::Output_file_header::MASKED(Output_file_header *this,Output_file *param_1)

{
  undefined *puVar1;
  int iVar2;
  undefined4 uVar3;
  uint uVar4;
  undefined2 uVar7;
  undefined4 *puVar5;
  undefined4 *puVar6;
  uint extraout_v1;
  undefined4 *puVar8;
  undefined4 *puVar9;
  uint uVar10;
  int *piVar11;
  uint uVar12;
  undefined4 *puVar13;
  int iVar14;
  int *piVar15;
  undefined4 *puVar16;
  undefined *puVar17;
  undefined4 *puVar18;
  undefined4 uVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  undefined4 uVar22;
  undefined4 uVar23;
  undefined4 *puVar24;
  undefined4 uVar25;
  undefined4 *puVar26;
  Output_file_header *unaff_s1;
  uint unaff_s2;
  undefined4 *puVar27;
  code *pcVar28;
  code *pcVar29;
  undefined8 uVar30;
  
  if (-1 < *(int *)(this + 0x20) << 2) goto LAB_001a4c58;
  unaff_s2 = *(uint *)(this + 0x1c);
  if (*(int *)(this + 0x18) == 0 && unaff_s2 == 0) {
    iVar2 = *(int *)(param_1 + 8);
    if (iVar2 < 1) goto LAB_001a4cbc;
    do {
      puVar26 = *(undefined4 **)(param_1 + 0x10);
      *puVar26 = 0x7f454c46;
      puVar17 = PTR_parameters_00432be0;
      puVar26[1] = 0x2020100;
      puVar26[2] = 0;
      puVar26[3] = 0;
      iVar2 = *(int *)(*(int *)puVar17 + 8);
      puVar17 = PTR_s_alize_xindex_004323b4;
      if (iVar2 != 0) {
        if (*(char *)(iVar2 + 0x3195) == '\0') {
          if (*(char *)(iVar2 + 0x1a29) == '\0') {
            uVar7 = 2;
            if (*(char *)(iVar2 + 0x2939) != '\0') {
              uVar7 = 3;
            }
          }
          else {
            uVar7 = 3;
          }
        }
        else {
          uVar7 = 1;
        }
        *(undefined2 *)(puVar26 + 4) = uVar7;
        uVar3 = *(undefined4 *)(*(int *)(*(int *)(this + 0x24) + 4) + 8);
        puVar26[5] = 1;
        *(short *)((int)puVar26 + 0x12) = (short)uVar3;
        uVar30 = entry<64>(this);
        *(undefined8 *)(puVar26 + 6) = uVar30;
        iVar2 = *(int *)(this + 0x2c);
        unaff_s1 = this;
        if (iVar2 == 0) {
          puVar26[9] = 0;
          puVar26[8] = 0;
LAB_001a4a64:
          iVar2 = *(int *)(this + 0x30);
          if (-1 < *(int *)(iVar2 + 0x20) << 2) goto LAB_001a4c58;
          uVar3 = *(undefined4 *)(iVar2 + 0x1c);
          puVar26[10] = *(undefined4 *)(iVar2 + 0x18);
          puVar26[0xb] = uVar3;
          uVar3 = *(undefined4 *)(*(int *)(this + 0x24) + 8);
          *(undefined2 *)(puVar26 + 0xd) = 0x40;
          puVar26[0xc] = uVar3;
          if (*(int *)(this + 0x2c) != 0) {
            *(undefined2 *)((int)puVar26 + 0x36) = 0x38;
            iVar2 = *(int *)(this + 0x2c);
            if (*(int *)(iVar2 + 0x20) << 1 < 0) {
              (*(code *)PTR_FUN_00432fc8)
                        (*(undefined4 *)(iVar2 + 0x10),*(undefined4 *)(iVar2 + 0x14),0,0x38);
              uVar7 = 0xffff;
              if (extraout_v1 < 0x10000) {
                uVar7 = (undefined2)extraout_v1;
              }
              *(undefined2 *)(puVar26 + 0xe) = uVar7;
              goto LAB_001a4aec;
            }
            goto LAB_001a4c74;
          }
          *(undefined2 *)((int)puVar26 + 0x36) = 0;
          *(undefined2 *)(puVar26 + 0xe) = 0;
LAB_001a4aec:
          *(undefined2 *)((int)puVar26 + 0x3a) = 0x40;
          puVar1 = PTR_do_out_shndx_00432f04;
          iVar2 = *(int *)(this + 0x30);
          if (-1 < *(int *)(iVar2 + 0x20) << 1) goto LAB_001a4c74;
          iVar14 = *(int *)(iVar2 + 0x10);
          uVar10 = *(uint *)(iVar2 + 0x14);
          uVar4 = uVar10;
          if (iVar14 < 0) {
            uVar4 = uVar10 + 0x3f;
            iVar14 = (uint)(uVar4 < uVar10) + iVar14;
          }
          uVar4 = iVar14 << 0x1a | uVar4 >> 6;
          if (0xfeff < uVar4) {
            uVar4 = unaff_s2;
          }
          *(short *)(puVar26 + 0xf) = (short)uVar4;
          pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);
          if (pcVar28 == (code *)puVar1) {
            uVar4 = (*(int **)(this + 0x34))[0x19];
            puVar17 = PTR_s_alize_xindex_004323b4;
            if (uVar4 != 0xffffffff) goto LAB_001a4b68;
          }
          else {
            uVar4 = (*pcVar28)();
LAB_001a4b68:
            if (0xfeff < uVar4) {
              *(undefined2 *)((int)puVar26 + 0x3e) = 0xffff;
                    /* WARNING: Could not recover jumptable at 0x001a4c08. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);
              return;
            }
            pcVar28 = *(code **)(**(int **)(this + 0x34) + 0x2c);
            if (pcVar28 != (code *)puVar1) {
              iVar2 = (*pcVar28)();
LAB_001a4b98:
              *(short *)((int)puVar26 + 0x3e) = (short)iVar2;
                    /* WARNING: Could not recover jumptable at 0x001a4bc8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              (**(code **)(**(int **)(this + 0x24) + 0x20))(*(int **)(this + 0x24),puVar26,0x40);
              return;
            }
            iVar2 = (*(int **)(this + 0x34))[0x19];
            puVar17 = PTR_s_alize_xindex_004323b4;
            if (iVar2 != -1) goto LAB_001a4b98;
          }
        }
        else {
          if (*(int *)(iVar2 + 0x20) << 2 < 0) {
            uVar3 = *(undefined4 *)(iVar2 + 0x18);
            puVar26[9] = *(undefined4 *)(iVar2 + 0x1c);
            puVar26[8] = uVar3;
            goto LAB_001a4a64;
          }
LAB_001a4c58:
          (*(code *)PTR_do_gold_unreachable_004323c4)
                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xe3,PTR_s_alize_xindex_004323b4 + 0x7818
                    );
LAB_001a4c74:
          puVar17 = PTR_s_alize_xindex_004323b4 + 0x7894;
          (*(code *)PTR_do_gold_unreachable_004323c4)
                    (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xcf,puVar17);
          this = unaff_s1;
        }
        puVar17 = puVar17 + 0x7868;
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_s_alize_xindex_004323b4 + -0x4fe0,0x1043,puVar17);
      }
      param_1 = (Output_file *)&DAT_0000005c;
      iVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)
                        (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,puVar17 + 0x78cc);
LAB_001a4cbc:
    } while ((iVar2 == 0) && (0x3f < *(uint *)(param_1 + 0xc)));
    (*(code *)(PTR_LAB_004346b8 + 0x2b60))();
  }
  piVar15 = (int *)&DAT_000001ff;
  piVar11 = (int *)(PTR_s_alize_xindex_004323b4 + 0x59f0);
  puVar17 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar11,0x1ff,PTR_s_alize_xindex_004323b4 + 0x769c);
  uVar4 = piVar11[3] + 5;
  if (uVar4 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a4d50. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(code *)(puVar17 + *(int *)(*(int *)(puVar17 + 0x28d6b4) + 0x5dbc + uVar4 * 4) + 0x2954d0))();
    return;
  }
  if (*(int *)(*piVar11 + 0x20) < 0) {
    uVar4 = piVar11[3] + *(int *)(*piVar11 + 0xc);
    uVar10 = piVar11[2];
    piVar15[1] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +
                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;
    *piVar15 = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
               ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
    return;
  }
  iVar2 = *(int *)(puVar17 + 0x28d6b4) + 0x7850;
  (**(code **)(puVar17 + 0x28d6c4))(*(int *)(puVar17 + 0x28d6b4) + -0x4fe0,0xc5,iVar2);
  piVar15 = (int *)&DAT_00000069;
  pcVar28 = *(code **)(puVar17 + 0x28d6c4);
  piVar11 = (int *)(*(int *)(puVar17 + 0x28d6b4) + -0x5cec);
  (*pcVar28)(piVar11,0x69,iVar2 + 0x78f8);
  uVar4 = piVar11[3] + 5;
  if (uVar4 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a4fa0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d464) + 0x5dd0 + uVar4 * 4) + 0x295280))();
    return;
  }
  if (*(int *)(*piVar11 + 0x20) < 0) {
    iVar2 = piVar11[2];
    piVar15[1] = piVar11[3] + *(int *)(*piVar11 + 0xc);
    *piVar15 = iVar2;
    return;
  }
  iVar2 = *(int *)(pcVar28 + 0x28d464) + 0x7850;
  (**(code **)(pcVar28 + 0x28d474))(*(int *)(pcVar28 + 0x28d464) + -0x4fe0,0xc5,iVar2);
  piVar15 = (int *)&DAT_00000069;
  pcVar29 = *(code **)(pcVar28 + 0x28d474);
  piVar11 = (int *)(*(int *)(pcVar28 + 0x28d464) + -0x5cec);
  (*pcVar29)(piVar11,0x69,iVar2 + 0x78f8);
  uVar4 = piVar11[3];
  if (uVar4 + 5 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a5190. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(pcVar29 + *(int *)(*(int *)(pcVar29 + 0x28d274) + 0x5de4 + (uVar4 + 5) * 4) + 0x295090))();
    return;
  }
  iVar2 = *piVar11;
  if (*(int *)(iVar2 + 0x20) < 0) {
    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);
    uVar4 = (uint)(uVar10 < uVar4) + *(int *)(iVar2 + 8);
    uVar12 = piVar11[2];
    piVar15[1] = 0;
    piVar15[3] = (((uVar4 >> 0x10) << 0x18 | (uVar4 >> 0x18) << 0x10) >> 0x10) +
                 ((uVar4 & 0xff) << 8 | uVar4 >> 8 & 0xff) * 0x10000;
    piVar15[2] = (((uVar10 >> 0x10) << 0x18 | (uVar10 >> 0x18) << 0x10) >> 0x10) +
                 ((uVar10 & 0xff) << 8 | uVar10 >> 8 & 0xff) * 0x10000;
    *piVar15 = (((uVar12 >> 0x10) << 0x18 | (uVar12 >> 0x18) << 0x10) >> 0x10) +
               ((uVar12 & 0xff) << 8 | uVar12 >> 8 & 0xff) * 0x10000;
    return;
  }
  iVar2 = *(int *)(pcVar29 + 0x28d274) + 0x7850;
  (**(code **)(pcVar29 + 0x28d284))(*(int *)(pcVar29 + 0x28d274) + -0x4fe0,0xc5,iVar2);
  puVar26 = (undefined4 *)&DAT_00000069;
  pcVar28 = *(code **)(pcVar29 + 0x28d284);
  piVar11 = (int *)(*(int *)(pcVar29 + 0x28d274) + -0x5cec);
  (*pcVar28)(piVar11,0x69,iVar2 + 0x78f8);
  uVar4 = piVar11[3];
  if (uVar4 + 5 < 5) {
                    /* WARNING: Could not recover jumptable at 0x001a5348. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*(pcVar28 + *(int *)(*(int *)(pcVar28 + 0x28d0bc) + 0x5df8 + (uVar4 + 5) * 4) + 0x294ed8))();
    return;
  }
  iVar2 = *piVar11;
  if (*(int *)(iVar2 + 0x20) < 0) {
    iVar14 = *(int *)(iVar2 + 8);
    uVar10 = uVar4 + *(int *)(iVar2 + 0xc);
    iVar2 = piVar11[2];
    *puVar26 = 0;
    puVar26[2] = (uint)(uVar10 < uVar4) + iVar14;
    puVar26[1] = iVar2;
    puVar26[3] = uVar10;
    return;
  }
  iVar2 = *(int *)(pcVar28 + 0x28d0bc) + 0x7850;
  (**(code **)(pcVar28 + 0x28d0cc))(*(int *)(pcVar28 + 0x28d0bc) + -0x4fe0,0xc5,iVar2);
  uVar4 = 0x69;
  pcVar29 = *(code **)(pcVar28 + 0x28d0cc);
  piVar11 = (int *)(*(int *)(pcVar28 + 0x28d0bc) + -0x5cec);
  (*pcVar29)(piVar11,0x69,iVar2 + 0x78f8);
  if (uVar4 == 0) {
    return;
  }
  puVar8 = (undefined4 *)piVar11[1];
  puVar18 = (undefined4 *)&DAT_aaaaaaab;
  puVar26 = puVar8;
  uVar10 = uVar4;
  if (uVar4 <= (uint)((piVar11[2] - (int)puVar8 >> 3) * -0x55555555)) {
    do {
      *puVar26 = 0;
      puVar26[1] = 0;
      uVar10 = uVar10 - 1;
      puVar26[3] = 0;
      puVar26[2] = 0;
      puVar26[4] = 0;
      puVar26 = puVar26 + 6;
    } while (uVar10 != 0);
    piVar11[1] = (int)(puVar8 + uVar4 * 6);
    return;
  }
  iVar2 = *piVar11;
  puVar26 = (undefined4 *)((int)puVar8 - iVar2 >> 3);
  uVar10 = (int)puVar26 * -0x55555555;
  if (uVar4 <= (int)puVar26 * 0x55555555 + 0xaaaaaaaU) {
    uVar12 = uVar10;
    if (uVar10 <= uVar4) {
      uVar12 = uVar4;
    }
    uVar12 = uVar12 + uVar10;
    iVar14 = -0x10;
    if (uVar10 <= uVar12) {
      if (0xaaaaaaa < uVar12) {
        uVar12 = 0xaaaaaaa;
      }
      iVar14 = uVar12 * 0x18;
    }
    puVar18 = (undefined4 *)(**(code **)(pcVar29 + 0x28cdf0))(iVar14);
    puVar26 = (undefined4 *)((int)puVar18 + ((int)puVar8 - iVar2));
    uVar12 = uVar4;
    do {
      *puVar26 = 0;
      puVar26[1] = 0;
      uVar12 = uVar12 - 1;
      puVar26[3] = 0;
      puVar26[2] = 0;
      puVar26[4] = 0;
      puVar26 = puVar26 + 6;
    } while (uVar12 != 0);
    puVar24 = (undefined4 *)piVar11[1];
    puVar13 = (undefined4 *)*piVar11;
    puVar8 = puVar18;
    for (puVar26 = puVar13; puVar26 != puVar24; puVar26 = puVar26 + 6) {
      uVar22 = puVar26[1];
      uVar21 = puVar26[2];
      uVar20 = puVar26[3];
      uVar19 = puVar26[4];
      uVar3 = puVar26[5];
      *puVar8 = *puVar26;
      puVar8[1] = uVar22;
      puVar8[2] = uVar21;
      puVar8[3] = uVar20;
      puVar8[4] = uVar19;
      puVar8[5] = uVar3;
      puVar8 = puVar8 + 6;
    }
    if (puVar13 != (undefined4 *)0x0) {
      (**(code **)(pcVar29 + 0x28cd40))();
    }
    *piVar11 = (int)puVar18;
    piVar11[2] = (int)puVar18 + iVar14;
    piVar11[1] = (int)(puVar18 + (uVar4 + uVar10) * 6);
    return;
  }
  pcVar28 = *(code **)(pcVar29 + 0x28cf34);
  puVar8 = (undefined4 *)(*(int *)(pcVar29 + 0x28ccc0) + 0x4d8c);
  (*pcVar28)();
  puVar24 = (undefined4 *)puVar8[1];
  puVar13 = (undefined4 *)*puVar8;
  iVar2 = (int)puVar24 - (int)puVar13 >> 3;
  uVar4 = iVar2 * -0x49249249;
  if (uVar4 == 0) {
    uVar10 = 1;
LAB_001a5b4c:
    iVar2 = uVar10 * 0x38;
  }
  else {
    uVar10 = iVar2 * 0x6db6db6e;
    if (uVar10 < uVar4) {
      iVar2 = -0x20;
    }
    else {
      iVar2 = -0x20;
      if (uVar10 < 0x4924925) {
        puVar27 = (undefined4 *)&DAT_00000038;
        if (uVar10 == 0) {
          iVar2 = 0;
          puVar5 = (undefined4 *)0x0;
          goto LAB_001a57f4;
        }
        goto LAB_001a5b4c;
      }
    }
  }
  puVar5 = (undefined4 *)(**(code **)(pcVar28 + 0x28cbe4))(iVar2);
  iVar2 = (int)puVar5 + iVar2;
  puVar27 = puVar5 + 0xe;
LAB_001a57f4:
  puVar6 = (undefined4 *)((int)puVar5 + ((int)puVar26 - (int)puVar13));
  uVar23 = puVar18[1];
  puVar9 = puVar18 + 9;
  uVar22 = puVar18[2];
  uVar21 = puVar18[3];
  uVar20 = puVar18[4];
  uVar19 = puVar18[5];
  uVar3 = puVar18[6];
  puVar16 = (undefined4 *)puVar18[7];
  *puVar6 = *puVar18;
  puVar6[1] = uVar23;
  puVar6[2] = uVar22;
  puVar6[3] = uVar21;
  puVar6[4] = uVar20;
  puVar6[5] = uVar19;
  puVar6[6] = uVar3;
  puVar6[7] = puVar6 + 9;
  if (puVar16 == puVar9) {
    uVar20 = puVar18[10];
    uVar19 = puVar18[0xb];
    uVar3 = puVar18[0xc];
    puVar6[9] = *puVar9;
    puVar6[10] = uVar20;
    puVar6[0xb] = uVar19;
    puVar6[0xc] = uVar3;
  }
  else {
    uVar3 = puVar18[9];
    puVar6[7] = puVar16;
    puVar6[9] = uVar3;
  }
  uVar3 = puVar18[8];
  puVar18[7] = puVar9;
  puVar18[8] = 0;
  puVar6[8] = uVar3;
  *(undefined1 *)(puVar18 + 9) = 0;
  if (puVar13 != puVar26) {
    puVar27 = puVar13 + 9;
    puVar18 = puVar5;
    while( true ) {
      uVar3 = puVar27[-4];
      uVar22 = puVar27[-8];
      uVar21 = puVar27[-7];
      uVar20 = puVar27[-6];
      uVar19 = puVar27[-5];
      *puVar18 = puVar27[-9];
      puVar18[1] = uVar22;
      puVar18[2] = uVar21;
      puVar18[3] = uVar20;
      puVar18[4] = uVar19;
      puVar18[5] = uVar3;
      uVar3 = puVar27[-3];
      puVar18[7] = puVar18 + 9;
      puVar18[6] = uVar3;
      if ((undefined4 *)puVar27[-2] == puVar27) {
        uVar20 = puVar27[1];
        uVar19 = puVar27[2];
        uVar3 = puVar27[3];
        puVar18[9] = *puVar27;
        puVar18[10] = uVar20;
        puVar18[0xb] = uVar19;
        puVar18[0xc] = uVar3;
        puVar18[8] = puVar27[-1];
        puVar27[-2] = puVar27;
        puVar27[-1] = 0;
        *(undefined1 *)puVar27 = 0;
      }
      else {
        puVar18[7] = (undefined4 *)puVar27[-2];
        puVar18[9] = *puVar27;
        puVar18[8] = puVar27[-1];
        puVar27[-2] = puVar27;
        puVar27[-1] = 0;
        *(undefined1 *)puVar27 = 0;
      }
      if (puVar26 == puVar27 + 5) break;
      puVar27 = puVar27 + 0xe;
      puVar18 = puVar18 + 0xe;
    }
    puVar27 = puVar5 + ((((uint)((int)puVar27 + (-0x24 - (int)puVar13)) >> 3) * 0x16db6db7 &
                        0x1fffffff) + 2) * 0xe;
  }
  puVar6 = puVar26 + 9;
  puVar9 = puVar27;
  puVar18 = puVar13;
  if (puVar24 != puVar26) {
    do {
      while( true ) {
        uVar25 = puVar6[-9];
        uVar23 = puVar6[-8];
        uVar22 = puVar6[-7];
        uVar21 = puVar6[-6];
        uVar20 = puVar6[-5];
        uVar19 = puVar6[-4];
        uVar3 = puVar6[-3];
        puVar16 = (undefined4 *)puVar6[-2];
        puVar9[7] = puVar9 + 9;
        *puVar9 = uVar25;
        puVar9[1] = uVar23;
        puVar9[2] = uVar22;
        puVar9[3] = uVar21;
        puVar9[4] = uVar20;
        puVar9[5] = uVar19;
        puVar9[6] = uVar3;
        if (puVar6 != puVar16) break;
        uVar20 = puVar6[1];
        uVar19 = puVar6[2];
        uVar3 = puVar6[3];
        puVar9[9] = *puVar6;
        puVar9[10] = uVar20;
        puVar9[0xb] = uVar19;
        puVar9[0xc] = uVar3;
        puVar16 = puVar6 + 5;
        puVar6[-2] = puVar6;
        *(undefined1 *)puVar6 = 0;
        uVar3 = puVar6[-1];
        puVar6[-1] = 0;
        puVar9[8] = uVar3;
        puVar6 = puVar6 + 0xe;
        puVar9 = puVar9 + 0xe;
        if (puVar24 == puVar16) goto LAB_001a5a78;
      }
      uVar3 = *puVar6;
      uVar19 = puVar6[-1];
      puVar9[7] = puVar16;
      puVar9[9] = uVar3;
      puVar16 = puVar6 + 5;
      puVar6[-2] = puVar6;
      puVar6[-1] = 0;
      *(undefined1 *)puVar6 = 0;
      puVar9[8] = uVar19;
      puVar6 = puVar6 + 0xe;
      puVar9 = puVar9 + 0xe;
    } while (puVar24 != puVar16);
LAB_001a5a78:
    puVar27 = puVar27 + ((((uint)((int)puVar24 + (-0x38 - (int)puVar26)) >> 3) * 0x16db6db7 &
                         0x1fffffff) + 1) * 0xe;
  }
  while (puVar18 != puVar24) {
    puVar26 = puVar18 + 7;
    puVar6 = puVar18 + 9;
    puVar18 = puVar18 + 0xe;
    if ((undefined4 *)*puVar26 != puVar6) {
      (**(code **)(pcVar28 + 0x28cb34))();
    }
  }
  if (puVar13 != (undefined4 *)0x0) {
    (**(code **)(pcVar28 + 0x28cb34))(puVar13);
  }
  *puVar8 = puVar5;
  puVar8[1] = puVar27;
  puVar8[2] = iVar2;
  return;
}

